Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp11403921ybi; Thu, 25 Jul 2019 15:53:14 -0700 (PDT) X-Google-Smtp-Source: APXvYqyDiLFBWbM7hyGMzK++Fs2PQNeyHDJ7XYaMhsygT7YceLxPt75WC4/X/spZ2sHEvbf5W1GS X-Received: by 2002:a65:5183:: with SMTP id h3mr88166090pgq.250.1564095194141; Thu, 25 Jul 2019 15:53:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1564095194; cv=none; d=google.com; s=arc-20160816; b=PsgCyWBmUr4Teg0kBXoHp94NS5zhxn9/vUDiVynEolTSplsd6gBr3q4p+rgExKT3s/ pblDUbhBE3u40IVJaiU14m2NpDJfuFqukZVfJ3+zuVOfL12TS0ztQx/iq/9LpzRa4CTh Tu974EvVhkWYH663v+/ZFgOjHNItsoENjvdsnPMUqIcFdM5nlUscrNd0Nvt11axppX+7 48FFVXb4b6jqDvpJFYygdaDpy8hexjWOfZSgV2uV5J6B0sfT/aWnwPu1aRgmd9Z7vVyD 4zSzTL6gfnZV82NOBn0aXKunfQzxTeUP1U6qDAwmsWckzF2BR5yaG2scjNKQYkIh8D5b durg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :message-id:in-reply-to:subject:cc:to:from:date; bh=otHoJpiBdqrRdscZYNURmFNYehkCWUJi7dji4E+ibnk=; b=V6YwLtXAZ8qDGTrFxP2SmTHMMQ92ioqr4RzYyfgL9R/crGZr3M8WRyklm8NkAwRCmN UPXr7KSYf6WrNu5+KZeZMr+RytTDCEGtEf6OcGt+1WBStDdyi+NKlYOJJbKx50d8GAFs xQ3j8LsAbxXSlB2aucf5C84haZpXNPli+/CCuzVwFNg4IriPqoFulE3wwbksOknmVWnZ 7aojmThpevBuMrhZj8oHACbxEo+hXWZ7XaQK+RLKhLIwsWncMRsk41i3LPdy6ae4dRUW k5TrPjT9z3gHJNpsRBtPOedVijgdTs8oH4tyeX5KctLN8mRd2KiYbb4kqOcTLi7PeFCb Z+3Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j27si8280891pgj.571.2019.07.25.15.52.58; Thu, 25 Jul 2019 15:53:14 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726951AbfGYWwA (ORCPT + 99 others); Thu, 25 Jul 2019 18:52:00 -0400 Received: from mail2-relais-roc.national.inria.fr ([192.134.164.83]:15219 "EHLO mail2-relais-roc.national.inria.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726803AbfGYWwA (ORCPT ); Thu, 25 Jul 2019 18:52:00 -0400 X-IronPort-AV: E=Sophos;i="5.64,308,1559512800"; d="out'?scan'208";a="393349961" Received: from unknown (HELO eduroamprvnat-172-16-51-239.near.illinois.edu) ([72.36.113.122]) by mail2-relais-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Jul 2019 00:51:23 +0200 Date: Thu, 25 Jul 2019 17:51:22 -0500 (CDT) From: Julia Lawall X-X-Sender: jll@hadrien To: Joe Perches cc: David Laight , cocci , LKML Subject: Re: [Fwd: [PATCH 1/2] string: Add stracpy and stracpy_pad mechanisms] In-Reply-To: Message-ID: References: <7ab8957eaf9b0931a59eff6e2bd8c5169f2f6c41.1563841972.git.joe@perches.com> <66fcdbf607d7d0bea41edb39e5579d63b62b7d84.camel@perches.com> <0f3ba090dfc956f5651e6c7c430abdba94ddcb8b.camel@perches.com> <563222fbfdbb44daa98078db9d404972@AcuMS.aculab.com> User-Agent: Alpine 2.21 (DEB 202 2017-01-01) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="8323329-977020579-1564095084=:2494" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323329-977020579-1564095084=:2494 Content-Type: text/plain; charset=US-ASCII > > > Perhaps this "x =" should also include += and + > > > and the various other operators that are possible > > > or does SmPL grammar already do that? This is now done. It seems to have had no impact. > Anywhere the return value of strlcpy is used, not just as > an assignment, is an instance that should not be changed. Mostly what is changed for strlcpy is the case where there is a ; after the call, so that is not going to match an if test, etc. It also doesn't match the right side of an assignment. The only case of an assignment that is matched is when the variable is not used afterwards. The rule now properly checks that the third argument is the size of the first argument. This made a small reduction in the number of results. julia --8323329-977020579-1564095084=:2494 Content-Type: text/plain; charset=US-ASCII; name=stracpy.cocci Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=stracpy.cocci Ly8gc3BhdGNoLm9wdCAtaiA0NCB+L2xpbnV4LW5leHQgc3RyYWNweS5jb2Nj aSAtLXJlY3Vyc2l2ZS1pbmNsdWRlcyAtLXZlcnktcXVpZXQgPiBzdHJhY3B5 Lm91dA0KDQpAckANCmlkZW50aWZpZXIgZixpMSxpMjsNCnN0cnVjdCBpMSBl MTsNCmV4cHJlc3Npb24gZTI7DQpwb3NpdGlvbiBwOw0KQEANClwoc3Ryc2Nw eVx8c3RybGNweVwpKGUxLmYsIGUyLCBpMilAcA0KDQpAb2tADQppZGVudGlm aWVyIHIuaTEsci5pMixyLmY7DQp0eXBlIFQ7DQpAQA0Kc3RydWN0IGkxIHsg Li4uIFQgZltpMl07IC4uLiB9DQoNCkBkZXBlbmRzIG9uIG9rQA0KaWRlbnRp ZmllciBmLGkyLGkxOw0Kc3RydWN0IGkxIGUxOw0KZXhwcmVzc2lvbiBlMjsN CmxvY2FsIGlkZXhwcmVzc2lvbiB4Ow0KcG9zaXRpb24gci5wOw0KYXNzaWdu bWVudCBvcGVyYXRvciBhb3A7DQpAQA0KKA0KLXggYW9wIHN0cmxjcHkNCitz dHJhY3B5DQogIChlMS5mLCBlMg0KLSAgICAsIGkyDQogIClAcDsNCiAgLi4u IHdoZW4gIT0geA0KDQp8DQotc3RybGNweQ0KK3N0cmFjcHkNCiAgKGUxLmYs IGUyDQotICAgICwgaTINCiAgKUBwOw0KfA0KLXN0cnNjcHkNCitzdHJhY3B5 DQogIChlMS5mLCBlMg0KLSAgICAsIGkyDQogIClAcA0KLi4uIHdoZW4gYW55 DQopDQo= --8323329-977020579-1564095084=:2494 Content-Type: text/plain; charset=US-ASCII; name=stracpy.out Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=stracpy.out ZGlmZiAtdSAtcCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50LmMgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudC5jDQotLS0gYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2NsaWVudC5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2NsaWVudC5jDQpAQCAtMzQ3LDcgKzM0Nyw3IEBAIHN0YXRpYyBpbnQgZHJt X2NsaWVudF9idWZmZXJfYWRkZmIoc3RydWMNCiAJLyogZHJvcCB0aGUgcmVm ZXJlbmNlIHdlIHBpY2tlZCB1cCBpbiBmcmFtZWJ1ZmZlciBsb29rdXAgKi8N CiAJZHJtX2ZyYW1lYnVmZmVyX3B1dChidWZmZXItPmZiKTsNCiANCi0Jc3Ry c2NweShidWZmZXItPmZiLT5jb21tLCBjbGllbnQtPm5hbWUsIFRBU0tfQ09N TV9MRU4pOw0KKwlzdHJhY3B5KGJ1ZmZlci0+ZmItPmNvbW0sIGNsaWVudC0+ bmFtZSk7DQogDQogCXJldHVybiAwOw0KIH0NCmRpZmYgLXUgLXAgYS9kcml2 ZXJzL2h3bW9uL21heDY2MzkuYyBiL2RyaXZlcnMvaHdtb24vbWF4NjYzOS5j DQotLS0gYS9kcml2ZXJzL2h3bW9uL21heDY2MzkuYw0KKysrIGIvZHJpdmVy cy9od21vbi9tYXg2NjM5LmMNCkBAIC01MTEsNyArNTExLDcgQEAgc3RhdGlj IGludCBtYXg2NjM5X2RldGVjdChzdHJ1Y3QgaTJjX2NsaQ0KIAlpZiAoZGV2 X2lkICE9IDB4NTggfHwgbWFudV9pZCAhPSAweDREKQ0KIAkJcmV0dXJuIC1F Tk9ERVY7DQogDQotCXN0cmxjcHkoaW5mby0+dHlwZSwgIm1heDY2MzkiLCBJ MkNfTkFNRV9TSVpFKTsNCisJc3RyYWNweShpbmZvLT50eXBlLCAibWF4NjYz OSIpOw0KIA0KIAlyZXR1cm4gMDsNCiB9DQpkaWZmIC11IC1wIGEvZHJpdmVy cy9tZWRpYS9kdmItZnJvbnRlbmRzL2N4ZDI4MjByX2NvcmUuYyBiL2RyaXZl cnMvbWVkaWEvZHZiLWZyb250ZW5kcy9jeGQyODIwcl9jb3JlLmMNCi0tLSBh L2RyaXZlcnMvbWVkaWEvZHZiLWZyb250ZW5kcy9jeGQyODIwcl9jb3JlLmMN CisrKyBiL2RyaXZlcnMvbWVkaWEvZHZiLWZyb250ZW5kcy9jeGQyODIwcl9j b3JlLmMNCkBAIC01MjcsNyArNTI3LDcgQEAgc3RydWN0IGR2Yl9mcm9udGVu ZCAqY3hkMjgyMHJfYXR0YWNoKGNvbg0KIAlwZGF0YS5hdHRhY2hfaW5fdXNl ID0gdHJ1ZTsNCiANCiAJbWVtc2V0KCZib2FyZF9pbmZvLCAwLCBzaXplb2Yo Ym9hcmRfaW5mbykpOw0KLQlzdHJzY3B5KGJvYXJkX2luZm8udHlwZSwgImN4 ZDI4MjByIiwgSTJDX05BTUVfU0laRSk7DQorCXN0cmFjcHkoYm9hcmRfaW5m by50eXBlLCAiY3hkMjgyMHIiKTsNCiAJYm9hcmRfaW5mby5hZGRyID0gY29u ZmlnLT5pMmNfYWRkcmVzczsNCiAJYm9hcmRfaW5mby5wbGF0Zm9ybV9kYXRh ID0gJnBkYXRhOw0KIAljbGllbnQgPSBpMmNfbmV3X2RldmljZShhZGFwdGVy LCAmYm9hcmRfaW5mbyk7DQpkaWZmIC11IC1wIGEvZHJpdmVycy9zMzkwL2Np by9xZGlvX2RlYnVnLmMgYi9kcml2ZXJzL3MzOTAvY2lvL3FkaW9fZGVidWcu Yw0KLS0tIGEvZHJpdmVycy9zMzkwL2Npby9xZGlvX2RlYnVnLmMNCisrKyBi L2RyaXZlcnMvczM5MC9jaW8vcWRpb19kZWJ1Zy5jDQpAQCAtMTAxLDcgKzEw MSw3IEBAIGludCBxZGlvX2FsbG9jYXRlX2RiZihzdHJ1Y3QgcWRpb19pbml0 aWENCiAJCQlkZWJ1Z191bnJlZ2lzdGVyKGlycV9wdHItPmRlYnVnX2FyZWEp Ow0KIAkJCXJldHVybiAtRU5PTUVNOw0KIAkJfQ0KLQkJc3RybGNweShuZXdf ZW50cnktPmRiZl9uYW1lLCB0ZXh0LCBRRElPX0RCRl9OQU1FX0xFTik7DQor CQlzdHJhY3B5KG5ld19lbnRyeS0+ZGJmX25hbWUsIHRleHQpOw0KIAkJbmV3 X2VudHJ5LT5kYmZfaW5mbyA9IGlycV9wdHItPmRlYnVnX2FyZWE7DQogCQlt dXRleF9sb2NrKCZxZGlvX2RiZl9saXN0X211dGV4KTsNCiAJCWxpc3RfYWRk KCZuZXdfZW50cnktPmRiZl9saXN0LCAmcWRpb19kYmZfbGlzdCk7DQpkaWZm IC11IC1wIGEvZHJpdmVycy9zdGFnaW5nL2NvbWVkaS9jb21lZGlfZm9wcy5j IGIvZHJpdmVycy9zdGFnaW5nL2NvbWVkaS9jb21lZGlfZm9wcy5jDQotLS0g YS9kcml2ZXJzL3N0YWdpbmcvY29tZWRpL2NvbWVkaV9mb3BzLmMNCisrKyBi L2RyaXZlcnMvc3RhZ2luZy9jb21lZGkvY29tZWRpX2ZvcHMuYw0KQEAgLTkz Nyw4ICs5MzcsOCBAQCBzdGF0aWMgaW50IGRvX2RldmluZm9faW9jdGwoc3Ry dWN0IGNvbWVkDQogCS8qIGZpbGwgZGV2aW5mbyBzdHJ1Y3R1cmUgKi8NCiAJ ZGV2aW5mby52ZXJzaW9uX2NvZGUgPSBDT01FRElfVkVSU0lPTl9DT0RFOw0K IAlkZXZpbmZvLm5fc3ViZGV2cyA9IGRldi0+bl9zdWJkZXZpY2VzOw0KLQlz dHJsY3B5KGRldmluZm8uZHJpdmVyX25hbWUsIGRldi0+ZHJpdmVyLT5kcml2 ZXJfbmFtZSwgQ09NRURJX05BTUVMRU4pOw0KLQlzdHJsY3B5KGRldmluZm8u Ym9hcmRfbmFtZSwgZGV2LT5ib2FyZF9uYW1lLCBDT01FRElfTkFNRUxFTik7 DQorCXN0cmFjcHkoZGV2aW5mby5kcml2ZXJfbmFtZSwgZGV2LT5kcml2ZXIt PmRyaXZlcl9uYW1lKTsNCisJc3RyYWNweShkZXZpbmZvLmJvYXJkX25hbWUs IGRldi0+Ym9hcmRfbmFtZSk7DQogDQogCXMgPSBjb21lZGlfZmlsZV9yZWFk X3N1YmRldmljZShmaWxlKTsNCiAJaWYgKHMpDQpkaWZmIC11IC1wIGEvY3J5 cHRvL2FwaS5jIGIvY3J5cHRvL2FwaS5jDQotLS0gYS9jcnlwdG8vYXBpLmMN CisrKyBiL2NyeXB0by9hcGkuYw0KQEAgLTExNSw3ICsxMTUsNyBAQCBzdHJ1 Y3QgY3J5cHRvX2xhcnZhbCAqY3J5cHRvX2xhcnZhbF9hbGxvDQogCWxhcnZh bC0+YWxnLmNyYV9wcmlvcml0eSA9IC0xOw0KIAlsYXJ2YWwtPmFsZy5jcmFf ZGVzdHJveSA9IGNyeXB0b19sYXJ2YWxfZGVzdHJveTsNCiANCi0Jc3RybGNw eShsYXJ2YWwtPmFsZy5jcmFfbmFtZSwgbmFtZSwgQ1JZUFRPX01BWF9BTEdf TkFNRSk7DQorCXN0cmFjcHkobGFydmFsLT5hbGcuY3JhX25hbWUsIG5hbWUp Ow0KIAlpbml0X2NvbXBsZXRpb24oJmxhcnZhbC0+Y29tcGxldGlvbik7DQog DQogCXJldHVybiBsYXJ2YWw7DQpkaWZmIC11IC1wIGEvZHJpdmVycy9od21v bi9hZG0xMDI2LmMgYi9kcml2ZXJzL2h3bW9uL2FkbTEwMjYuYw0KLS0tIGEv ZHJpdmVycy9od21vbi9hZG0xMDI2LmMNCisrKyBiL2RyaXZlcnMvaHdtb24v YWRtMTAyNi5jDQpAQCAtMTYxMCw3ICsxNjEwLDcgQEAgc3RhdGljIGludCBh ZG0xMDI2X2RldGVjdChzdHJ1Y3QgaTJjX2NsaQ0KIAkJcmV0dXJuIC1FTk9E RVY7DQogCX0NCiANCi0Jc3RybGNweShpbmZvLT50eXBlLCAiYWRtMTAyNiIs IEkyQ19OQU1FX1NJWkUpOw0KKwlzdHJhY3B5KGluZm8tPnR5cGUsICJhZG0x MDI2Iik7DQogDQogCXJldHVybiAwOw0KIH0NCmRpZmYgLXUgLXAgYS9kcml2 ZXJzL2h3bW9uL3RtcDQyMS5jIGIvZHJpdmVycy9od21vbi90bXA0MjEuYw0K LS0tIGEvZHJpdmVycy9od21vbi90bXA0MjEuYw0KKysrIGIvZHJpdmVycy9o d21vbi90bXA0MjEuYw0KQEAgLTI2Niw3ICsyNjYsNyBAQCBzdGF0aWMgaW50 IHRtcDQyMV9kZXRlY3Qoc3RydWN0IGkyY19jbGllDQogCQlyZXR1cm4gLUVO T0RFVjsNCiAJfQ0KIA0KLQlzdHJsY3B5KGluZm8tPnR5cGUsIHRtcDQyMV9p ZFtraW5kXS5uYW1lLCBJMkNfTkFNRV9TSVpFKTsNCisJc3RyYWNweShpbmZv LT50eXBlLCB0bXA0MjFfaWRba2luZF0ubmFtZSk7DQogCWRldl9pbmZvKCZh ZGFwdGVyLT5kZXYsICJEZXRlY3RlZCBUSSAlcyBjaGlwIGF0IDB4JTAyeFxu IiwNCiAJCSBuYW1lc1traW5kXSwgY2xpZW50LT5hZGRyKTsNCiANCmRpZmYg LXUgLXAgYS9uZXQvYnJpZGdlL2JyX3N5c2ZzX2lmLmMgYi9uZXQvYnJpZGdl L2JyX3N5c2ZzX2lmLmMNCi0tLSBhL25ldC9icmlkZ2UvYnJfc3lzZnNfaWYu Yw0KKysrIGIvbmV0L2JyaWRnZS9icl9zeXNmc19pZi5jDQpAQCAtMzc0LDcg KzM3NCw3IEBAIGludCBicl9zeXNmc19hZGRpZihzdHJ1Y3QgbmV0X2JyaWRn ZV9wb3INCiAJCQlyZXR1cm4gZXJyOw0KIAl9DQogDQotCXN0cmxjcHkocC0+ c3lzZnNfbmFtZSwgcC0+ZGV2LT5uYW1lLCBJRk5BTVNJWik7DQorCXN0cmFj cHkocC0+c3lzZnNfbmFtZSwgcC0+ZGV2LT5uYW1lKTsNCiAJcmV0dXJuIHN5 c2ZzX2NyZWF0ZV9saW5rKGJyLT5pZm9iaiwgJnAtPmtvYmosIHAtPnN5c2Zz X25hbWUpOw0KIH0NCiANCkBAIC0zOTYsNyArMzk2LDcgQEAgaW50IGJyX3N5 c2ZzX3JlbmFtZWlmKHN0cnVjdCBuZXRfYnJpZGdlXw0KIAkJbmV0ZGV2X25v dGljZShici0+ZGV2LCAidW5hYmxlIHRvIHJlbmFtZSBsaW5rICVzIHRvICVz IiwNCiAJCQkgICAgICBwLT5zeXNmc19uYW1lLCBwLT5kZXYtPm5hbWUpOw0K IAllbHNlDQotCQlzdHJsY3B5KHAtPnN5c2ZzX25hbWUsIHAtPmRldi0+bmFt ZSwgSUZOQU1TSVopOw0KKwkJc3RyYWNweShwLT5zeXNmc19uYW1lLCBwLT5k ZXYtPm5hbWUpOw0KIA0KIAlyZXR1cm4gZXJyOw0KIH0NCmRpZmYgLXUgLXAg YS9kcml2ZXJzL2h3bW9uL2pjNDIuYyBiL2RyaXZlcnMvaHdtb24vamM0Mi5j DQotLS0gYS9kcml2ZXJzL2h3bW9uL2pjNDIuYw0KKysrIGIvZHJpdmVycy9o d21vbi9qYzQyLmMNCkBAIC00MzEsNyArNDMxLDcgQEAgc3RhdGljIGludCBq YzQyX2RldGVjdChzdHJ1Y3QgaTJjX2NsaWVudA0KIAkJc3RydWN0IGpjNDJf Y2hpcHMgKmNoaXAgPSAmamM0Ml9jaGlwc1tpXTsNCiAJCWlmIChtYW5pZCA9 PSBjaGlwLT5tYW5pZCAmJg0KIAkJICAgIChkZXZpZCAmIGNoaXAtPmRldmlk X21hc2spID09IGNoaXAtPmRldmlkKSB7DQotCQkJc3RybGNweShpbmZvLT50 eXBlLCAiamM0MiIsIEkyQ19OQU1FX1NJWkUpOw0KKwkJCXN0cmFjcHkoaW5m by0+dHlwZSwgImpjNDIiKTsNCiAJCQlyZXR1cm4gMDsNCiAJCX0NCiAJfQ0K ZGlmZiAtdSAtcCBhL2RyaXZlcnMvaHdtb24vbG03My5jIGIvZHJpdmVycy9o d21vbi9sbTczLmMNCi0tLSBhL2RyaXZlcnMvaHdtb24vbG03My5jDQorKysg Yi9kcml2ZXJzL2h3bW9uL2xtNzMuYw0KQEAgLTI1Nyw3ICsyNTcsNyBAQCBz dGF0aWMgaW50IGxtNzNfZGV0ZWN0KHN0cnVjdCBpMmNfY2xpZW50DQogCWlm IChpZCA8IDAgfHwgaWQgIT0gTE03M19JRCkNCiAJCXJldHVybiAtRU5PREVW Ow0KIA0KLQlzdHJsY3B5KGluZm8tPnR5cGUsICJsbTczIiwgSTJDX05BTUVf U0laRSk7DQorCXN0cmFjcHkoaW5mby0+dHlwZSwgImxtNzMiKTsNCiANCiAJ cmV0dXJuIDA7DQogfQ0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvbWVkaWEvdXNi L2R2Yi11c2ItdjIvYWY5MDM1LmMgYi9kcml2ZXJzL21lZGlhL3VzYi9kdmIt dXNiLXYyL2FmOTAzNS5jDQotLS0gYS9kcml2ZXJzL21lZGlhL3VzYi9kdmIt dXNiLXYyL2FmOTAzNS5jDQorKysgYi9kcml2ZXJzL21lZGlhL3VzYi9kdmIt dXNiLXYyL2FmOTAzNS5jDQpAQCAtMTg5LDcgKzE4OSw3IEBAIHN0YXRpYyBp bnQgYWY5MDM1X2FkZF9pMmNfZGV2KHN0cnVjdCBkdmINCiAJCS5wbGF0Zm9y bV9kYXRhID0gcGxhdGZvcm1fZGF0YSwNCiAJfTsNCiANCi0Jc3Ryc2NweShi b2FyZF9pbmZvLnR5cGUsIHR5cGUsIEkyQ19OQU1FX1NJWkUpOw0KKwlzdHJh Y3B5KGJvYXJkX2luZm8udHlwZSwgdHlwZSk7DQogDQogCS8qIGZpbmQgZmly c3QgZnJlZSBjbGllbnQgKi8NCiAJZm9yIChudW0gPSAwOyBudW0gPCBBRjkw MzVfSTJDX0NMSUVOVF9NQVg7IG51bSsrKSB7DQpkaWZmIC11IC1wIGEvZHJp dmVycy9od21vbi9hZHQ3NDYyLmMgYi9kcml2ZXJzL2h3bW9uL2FkdDc0NjIu Yw0KLS0tIGEvZHJpdmVycy9od21vbi9hZHQ3NDYyLmMNCisrKyBiL2RyaXZl cnMvaHdtb24vYWR0NzQ2Mi5jDQpAQCAtMTc4Miw3ICsxNzgyLDcgQEAgc3Rh dGljIGludCBhZHQ3NDYyX2RldGVjdChzdHJ1Y3QgaTJjX2NsaQ0KIAlpZiAo cmV2aXNpb24gIT0gQURUNzQ2Ml9SRVZJU0lPTikNCiAJCXJldHVybiAtRU5P REVWOw0KIA0KLQlzdHJsY3B5KGluZm8tPnR5cGUsICJhZHQ3NDYyIiwgSTJD X05BTUVfU0laRSk7DQorCXN0cmFjcHkoaW5mby0+dHlwZSwgImFkdDc0NjIi KTsNCiANCiAJcmV0dXJuIDA7DQogfQ0KZGlmZiAtdSAtcCBhL2RyaXZlcnMv aHdtb24vc21zYzQ3bTE5Mi5jIGIvZHJpdmVycy9od21vbi9zbXNjNDdtMTky LmMNCi0tLSBhL2RyaXZlcnMvaHdtb24vc21zYzQ3bTE5Mi5jDQorKysgYi9k cml2ZXJzL2h3bW9uL3Ntc2M0N20xOTIuYw0KQEAgLTU4Miw3ICs1ODIsNyBA QCBzdGF0aWMgaW50IHNtc2M0N20xOTJfZGV0ZWN0KHN0cnVjdCBpMmNfDQog CQlyZXR1cm4gLUVOT0RFVjsNCiAJfQ0KIA0KLQlzdHJsY3B5KGluZm8tPnR5 cGUsICJzbXNjNDdtMTkyIiwgSTJDX05BTUVfU0laRSk7DQorCXN0cmFjcHko aW5mby0+dHlwZSwgInNtc2M0N20xOTIiKTsNCiANCiAJcmV0dXJuIDA7DQog fQ0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvbGVkcy9sZWRzLWJsaW5rbS5jIGIv ZHJpdmVycy9sZWRzL2xlZHMtYmxpbmttLmMNCi0tLSBhL2RyaXZlcnMvbGVk cy9sZWRzLWJsaW5rbS5jDQorKysgYi9kcml2ZXJzL2xlZHMvbGVkcy1ibGlu a20uYw0KQEAgLTU2Miw3ICs1NjIsNyBAQCBzdGF0aWMgaW50IGJsaW5rbV9k ZXRlY3Qoc3RydWN0IGkyY19jbGllDQogCQlyZXR1cm4gLUVOT0RFVjsNCiAJ fQ0KIA0KLQlzdHJsY3B5KGluZm8tPnR5cGUsICJibGlua20iLCBJMkNfTkFN RV9TSVpFKTsNCisJc3RyYWNweShpbmZvLT50eXBlLCAiYmxpbmttIik7DQog CXJldHVybiAwOw0KIH0NCiANCmRpZmYgLXUgLXAgYS9kcml2ZXJzL21lZGlh L3BjaS9jeDIzODg1L2N4MjM4ODUtZHZiLmMgYi9kcml2ZXJzL21lZGlhL3Bj aS9jeDIzODg1L2N4MjM4ODUtZHZiLmMNCi0tLSBhL2RyaXZlcnMvbWVkaWEv cGNpL2N4MjM4ODUvY3gyMzg4NS1kdmIuYw0KKysrIGIvZHJpdmVycy9tZWRp YS9wY2kvY3gyMzg4NS9jeDIzODg1LWR2Yi5jDQpAQCAtMTE1NSw3ICsxMTU1 LDcgQEAgc3RhdGljIGludCBkdmJfcmVnaXN0ZXJfY2lfbWFjKHN0cnVjdCBj eA0KIAkJc3AyX2NvbmZpZy5wcml2ID0gcG9ydDsNCiAJCXNwMl9jb25maWcu Y2lfY29udHJvbCA9IGN4MjM4ODVfc3AyX2NpX2N0cmw7DQogCQltZW1zZXQo JmluZm8sIDAsIHNpemVvZihzdHJ1Y3QgaTJjX2JvYXJkX2luZm8pKTsNCi0J CXN0cnNjcHkoaW5mby50eXBlLCAic3AyIiwgSTJDX05BTUVfU0laRSk7DQor CQlzdHJhY3B5KGluZm8udHlwZSwgInNwMiIpOw0KIAkJaW5mby5hZGRyID0g MHg0MDsNCiAJCWluZm8ucGxhdGZvcm1fZGF0YSA9ICZzcDJfY29uZmlnOw0K IAkJcmVxdWVzdF9tb2R1bGUoaW5mby50eXBlKTsNCkBAIC0xODIyLDcgKzE4 MjIsNyBAQCBzdGF0aWMgaW50IGR2Yl9yZWdpc3RlcihzdHJ1Y3QgY3gyMzg4 NV90DQogCQljYXNlIDE6DQogCQkJLyogYXR0YWNoIGRlbW9kICsgdHVuZXIg Y29tYm8gKi8NCiAJCQltZW1zZXQoJmluZm8sIDAsIHNpemVvZihpbmZvKSk7 DQotCQkJc3Ryc2NweShpbmZvLnR5cGUsICJ0ZGExMDA3MV9jeDI0MTE4Iiwg STJDX05BTUVfU0laRSk7DQorCQkJc3RyYWNweShpbmZvLnR5cGUsICJ0ZGEx MDA3MV9jeDI0MTE4Iik7DQogCQkJaW5mby5hZGRyID0gMHgwNTsNCiAJCQlp bmZvLnBsYXRmb3JtX2RhdGEgPSAmdGRhMTAwNzFfcGRhdGE7DQogCQkJcmVx dWVzdF9tb2R1bGUoInRkYTEwMDcxIik7DQpAQCAtMTgzOSw3ICsxODM5LDcg QEAgc3RhdGljIGludCBkdmJfcmVnaXN0ZXIoc3RydWN0IGN4MjM4ODVfdA0K IAkJCS8qIGF0dGFjaCBTRUMgKi8NCiAJCQlhODI5M19wZGF0YS5kdmJfZnJv bnRlbmQgPSBmZTAtPmR2Yi5mcm9udGVuZDsNCiAJCQltZW1zZXQoJmluZm8s IDAsIHNpemVvZihpbmZvKSk7DQotCQkJc3Ryc2NweShpbmZvLnR5cGUsICJh ODI5MyIsIEkyQ19OQU1FX1NJWkUpOw0KKwkJCXN0cmFjcHkoaW5mby50eXBl LCAiYTgyOTMiKTsNCiAJCQlpbmZvLmFkZHIgPSAweDBiOw0KIAkJCWluZm8u cGxhdGZvcm1fZGF0YSA9ICZhODI5M19wZGF0YTsNCiAJCQlyZXF1ZXN0X21v ZHVsZSgiYTgyOTMiKTsNCkBAIC0xODYwLDcgKzE4NjAsNyBAQCBzdGF0aWMg aW50IGR2Yl9yZWdpc3RlcihzdHJ1Y3QgY3gyMzg4NV90DQogCQkJc2kyMTY1 X3BkYXRhLmNoaXBfbW9kZSA9IFNJMjE2NV9NT0RFX1BMTF9YVEFMOw0KIAkJ CXNpMjE2NV9wZGF0YS5yZWZfZnJlcV9oeiA9IDE2MDAwMDAwOw0KIAkJCW1l bXNldCgmaW5mbywgMCwgc2l6ZW9mKHN0cnVjdCBpMmNfYm9hcmRfaW5mbykp Ow0KLQkJCXN0cnNjcHkoaW5mby50eXBlLCAic2kyMTY1IiwgSTJDX05BTUVf U0laRSk7DQorCQkJc3RyYWNweShpbmZvLnR5cGUsICJzaTIxNjUiKTsNCiAJ CQlpbmZvLmFkZHIgPSAweDY0Ow0KIAkJCWluZm8ucGxhdGZvcm1fZGF0YSA9 ICZzaTIxNjVfcGRhdGE7DQogCQkJcmVxdWVzdF9tb2R1bGUoaW5mby50eXBl KTsNCkBAIC0xODk0LDcgKzE4OTQsNyBAQCBzdGF0aWMgaW50IGR2Yl9yZWdp c3RlcihzdHJ1Y3QgY3gyMzg4NV90DQogDQogCQkvKiBhdHRhY2ggZGVtb2Qg KyB0dW5lciBjb21ibyAqLw0KIAkJbWVtc2V0KCZpbmZvLCAwLCBzaXplb2Yo aW5mbykpOw0KLQkJc3Ryc2NweShpbmZvLnR5cGUsICJ0ZGExMDA3MV9jeDI0 MTE4IiwgSTJDX05BTUVfU0laRSk7DQorCQlzdHJhY3B5KGluZm8udHlwZSwg InRkYTEwMDcxX2N4MjQxMTgiKTsNCiAJCWluZm8uYWRkciA9IDB4MDU7DQog CQlpbmZvLnBsYXRmb3JtX2RhdGEgPSAmdGRhMTAwNzFfcGRhdGE7DQogCQly ZXF1ZXN0X21vZHVsZSgidGRhMTAwNzEiKTsNCkBAIC0xOTExLDcgKzE5MTEs NyBAQCBzdGF0aWMgaW50IGR2Yl9yZWdpc3RlcihzdHJ1Y3QgY3gyMzg4NV90 DQogCQkvKiBhdHRhY2ggU0VDICovDQogCQlhODI5M19wZGF0YS5kdmJfZnJv bnRlbmQgPSBmZTAtPmR2Yi5mcm9udGVuZDsNCiAJCW1lbXNldCgmaW5mbywg MCwgc2l6ZW9mKGluZm8pKTsNCi0JCXN0cnNjcHkoaW5mby50eXBlLCAiYTgy OTMiLCBJMkNfTkFNRV9TSVpFKTsNCisJCXN0cmFjcHkoaW5mby50eXBlLCAi YTgyOTMiKTsNCiAJCWluZm8uYWRkciA9IDB4MGI7DQogCQlpbmZvLnBsYXRm b3JtX2RhdGEgPSAmYTgyOTNfcGRhdGE7DQogCQlyZXF1ZXN0X21vZHVsZSgi YTgyOTMiKTsNCkBAIC0xOTQ0LDcgKzE5NDQsNyBAQCBzdGF0aWMgaW50IGR2 Yl9yZWdpc3RlcihzdHJ1Y3QgY3gyMzg4NV90DQogCQkJdHMyMDIwX2NvbmZp Zy5mZSA9IGZlMC0+ZHZiLmZyb250ZW5kOw0KIAkJCXRzMjAyMF9jb25maWcu Z2V0X2FnY19wd20gPSBtODhkczMxMDNfZ2V0X2FnY19wd207DQogCQkJbWVt c2V0KCZpbmZvLCAwLCBzaXplb2Yoc3RydWN0IGkyY19ib2FyZF9pbmZvKSk7 DQotCQkJc3Ryc2NweShpbmZvLnR5cGUsICJ0czIwMjAiLCBJMkNfTkFNRV9T SVpFKTsNCisJCQlzdHJhY3B5KGluZm8udHlwZSwgInRzMjAyMCIpOw0KIAkJ CWluZm8uYWRkciA9IDB4NjA7DQogCQkJaW5mby5wbGF0Zm9ybV9kYXRhID0g JnRzMjAyMF9jb25maWc7DQogCQkJcmVxdWVzdF9tb2R1bGUoaW5mby50eXBl KTsNCkBAIC0xOTgxLDcgKzE5ODEsNyBAQCBzdGF0aWMgaW50IGR2Yl9yZWdp c3RlcihzdHJ1Y3QgY3gyMzg4NV90DQogCQkJc2kyMTY4X2NvbmZpZy5mZSA9 ICZmZTAtPmR2Yi5mcm9udGVuZDsNCiAJCQlzaTIxNjhfY29uZmlnLnRzX21v ZGUgPSBTSTIxNjhfVFNfU0VSSUFMOw0KIAkJCW1lbXNldCgmaW5mbywgMCwg c2l6ZW9mKHN0cnVjdCBpMmNfYm9hcmRfaW5mbykpOw0KLQkJCXN0cnNjcHko aW5mby50eXBlLCAic2kyMTY4IiwgSTJDX05BTUVfU0laRSk7DQorCQkJc3Ry YWNweShpbmZvLnR5cGUsICJzaTIxNjgiKTsNCiAJCQlpbmZvLmFkZHIgPSAw eDY0Ow0KIAkJCWluZm8ucGxhdGZvcm1fZGF0YSA9ICZzaTIxNjhfY29uZmln Ow0KIAkJCXJlcXVlc3RfbW9kdWxlKGluZm8udHlwZSk7DQpAQCAtMjAwMCw3 ICsyMDAwLDcgQEAgc3RhdGljIGludCBkdmJfcmVnaXN0ZXIoc3RydWN0IGN4 MjM4ODVfdA0KIAkJCXNpMjE1N19jb25maWcuZmUgPSBmZTAtPmR2Yi5mcm9u dGVuZDsNCiAJCQlzaTIxNTdfY29uZmlnLmlmX3BvcnQgPSAxOw0KIAkJCW1l bXNldCgmaW5mbywgMCwgc2l6ZW9mKHN0cnVjdCBpMmNfYm9hcmRfaW5mbykp Ow0KLQkJCXN0cnNjcHkoaW5mby50eXBlLCAic2kyMTU3IiwgSTJDX05BTUVf U0laRSk7DQorCQkJc3RyYWNweShpbmZvLnR5cGUsICJzaTIxNTciKTsNCiAJ CQlpbmZvLmFkZHIgPSAweDYwOw0KIAkJCWluZm8ucGxhdGZvcm1fZGF0YSA9 ICZzaTIxNTdfY29uZmlnOw0KIAkJCXJlcXVlc3RfbW9kdWxlKGluZm8udHlw ZSk7DQpAQCAtMjAyOCw3ICsyMDI4LDcgQEAgc3RhdGljIGludCBkdmJfcmVn aXN0ZXIoc3RydWN0IGN4MjM4ODVfdA0KIAkJc2kyMTY4X2NvbmZpZy5mZSA9 ICZmZTAtPmR2Yi5mcm9udGVuZDsNCiAJCXNpMjE2OF9jb25maWcudHNfbW9k ZSA9IFNJMjE2OF9UU19QQVJBTExFTDsNCiAJCW1lbXNldCgmaW5mbywgMCwg c2l6ZW9mKHN0cnVjdCBpMmNfYm9hcmRfaW5mbykpOw0KLQkJc3Ryc2NweShp bmZvLnR5cGUsICJzaTIxNjgiLCBJMkNfTkFNRV9TSVpFKTsNCisJCXN0cmFj cHkoaW5mby50eXBlLCAic2kyMTY4Iik7DQogCQlpbmZvLmFkZHIgPSAweDY0 Ow0KIAkJaW5mby5wbGF0Zm9ybV9kYXRhID0gJnNpMjE2OF9jb25maWc7DQog CQlyZXF1ZXN0X21vZHVsZShpbmZvLnR5cGUpOw0KQEAgLTIwNDYsNyArMjA0 Niw3IEBAIHN0YXRpYyBpbnQgZHZiX3JlZ2lzdGVyKHN0cnVjdCBjeDIzODg1 X3QNCiAJCXNpMjE1N19jb25maWcuZmUgPSBmZTAtPmR2Yi5mcm9udGVuZDsN CiAJCXNpMjE1N19jb25maWcuaWZfcG9ydCA9IDE7DQogCQltZW1zZXQoJmlu Zm8sIDAsIHNpemVvZihzdHJ1Y3QgaTJjX2JvYXJkX2luZm8pKTsNCi0JCXN0 cnNjcHkoaW5mby50eXBlLCAic2kyMTU3IiwgSTJDX05BTUVfU0laRSk7DQor CQlzdHJhY3B5KGluZm8udHlwZSwgInNpMjE1NyIpOw0KIAkJaW5mby5hZGRy ID0gMHg2MDsNCiAJCWluZm8ucGxhdGZvcm1fZGF0YSA9ICZzaTIxNTdfY29u ZmlnOw0KIAkJcmVxdWVzdF9tb2R1bGUoaW5mby50eXBlKTsNCkBAIC0yMDc2 LDcgKzIwNzYsNyBAQCBzdGF0aWMgaW50IGR2Yl9yZWdpc3RlcihzdHJ1Y3Qg Y3gyMzg4NV90DQogCQl0czIwMjBfY29uZmlnLmZlID0gZmUwLT5kdmIuZnJv bnRlbmQ7DQogCQl0czIwMjBfY29uZmlnLmdldF9hZ2NfcHdtID0gbTg4ZHMz MTAzX2dldF9hZ2NfcHdtOw0KIAkJbWVtc2V0KCZpbmZvLCAwLCBzaXplb2Yo c3RydWN0IGkyY19ib2FyZF9pbmZvKSk7DQotCQlzdHJzY3B5KGluZm8udHlw ZSwgInRzMjAyMCIsIEkyQ19OQU1FX1NJWkUpOw0KKwkJc3RyYWNweShpbmZv LnR5cGUsICJ0czIwMjAiKTsNCiAJCWluZm8uYWRkciA9IDB4NjA7DQogCQlp bmZvLnBsYXRmb3JtX2RhdGEgPSAmdHMyMDIwX2NvbmZpZzsNCiAJCXJlcXVl c3RfbW9kdWxlKGluZm8udHlwZSk7DQpAQCAtMjEyNSw3ICsyMTI1LDcgQEAg c3RhdGljIGludCBkdmJfcmVnaXN0ZXIoc3RydWN0IGN4MjM4ODVfdA0KIAkJ fQ0KIA0KIAkJbWVtc2V0KCZpbmZvLCAwLCBzaXplb2YoaW5mbykpOw0KLQkJ c3Ryc2NweShpbmZvLnR5cGUsICJtODhkczMxMDMiLCBJMkNfTkFNRV9TSVpF KTsNCisJCXN0cmFjcHkoaW5mby50eXBlLCAibTg4ZHMzMTAzIik7DQogCQlp bmZvLmFkZHIgPSAweDY4Ow0KIAkJaW5mby5wbGF0Zm9ybV9kYXRhID0gJm04 OGRzMzEwM19wZGF0YTsNCiAJCXJlcXVlc3RfbW9kdWxlKGluZm8udHlwZSk7 DQpAQCAtMjE0NSw3ICsyMTQ1LDcgQEAgc3RhdGljIGludCBkdmJfcmVnaXN0 ZXIoc3RydWN0IGN4MjM4ODVfdA0KIAkJdHMyMDIwX2NvbmZpZy5mZSA9IGZl MC0+ZHZiLmZyb250ZW5kOw0KIAkJdHMyMDIwX2NvbmZpZy5nZXRfYWdjX3B3 bSA9IG04OGRzMzEwM19nZXRfYWdjX3B3bTsNCiAJCW1lbXNldCgmaW5mbywg MCwgc2l6ZW9mKHN0cnVjdCBpMmNfYm9hcmRfaW5mbykpOw0KLQkJc3Ryc2Nw eShpbmZvLnR5cGUsICJ0czIwMjAiLCBJMkNfTkFNRV9TSVpFKTsNCisJCXN0 cmFjcHkoaW5mby50eXBlLCAidHMyMDIwIik7DQogCQlpbmZvLmFkZHIgPSAw eDYwOw0KIAkJaW5mby5wbGF0Zm9ybV9kYXRhID0gJnRzMjAyMF9jb25maWc7 DQogCQlyZXF1ZXN0X21vZHVsZShpbmZvLnR5cGUpOw0KQEAgLTIxOTAsNyAr MjE5MCw3IEBAIHN0YXRpYyBpbnQgZHZiX3JlZ2lzdGVyKHN0cnVjdCBjeDIz ODg1X3QNCiAJCXNpMjE2OF9jb25maWcuaTJjX2FkYXB0ZXIgPSAmYWRhcHRl cjsNCiAJCXNpMjE2OF9jb25maWcuZmUgPSAmZmUwLT5kdmIuZnJvbnRlbmQ7 DQogCQltZW1zZXQoJmluZm8sIDAsIHNpemVvZihzdHJ1Y3QgaTJjX2JvYXJk X2luZm8pKTsNCi0JCXN0cnNjcHkoaW5mby50eXBlLCAic2kyMTY4IiwgSTJD X05BTUVfU0laRSk7DQorCQlzdHJhY3B5KGluZm8udHlwZSwgInNpMjE2OCIp Ow0KIAkJaW5mby5hZGRyID0gMHg2NDsNCiAJCWluZm8ucGxhdGZvcm1fZGF0 YSA9ICZzaTIxNjhfY29uZmlnOw0KIAkJcmVxdWVzdF9tb2R1bGUoaW5mby50 eXBlKTsNCkBAIC0yMjA4LDcgKzIyMDgsNyBAQCBzdGF0aWMgaW50IGR2Yl9y ZWdpc3RlcihzdHJ1Y3QgY3gyMzg4NV90DQogCQlzaTIxNTdfY29uZmlnLmZl ID0gZmUwLT5kdmIuZnJvbnRlbmQ7DQogCQlzaTIxNTdfY29uZmlnLmlmX3Bv cnQgPSAxOw0KIAkJbWVtc2V0KCZpbmZvLCAwLCBzaXplb2Yoc3RydWN0IGky Y19ib2FyZF9pbmZvKSk7DQotCQlzdHJzY3B5KGluZm8udHlwZSwgInNpMjE1 NyIsIEkyQ19OQU1FX1NJWkUpOw0KKwkJc3RyYWNweShpbmZvLnR5cGUsICJz aTIxNTciKTsNCiAJCWluZm8uYWRkciA9IDB4NjA7DQogCQlpbmZvLnBsYXRm b3JtX2RhdGEgPSAmc2kyMTU3X2NvbmZpZzsNCiAJCXJlcXVlc3RfbW9kdWxl KGluZm8udHlwZSk7DQpAQCAtMjI0MSw3ICsyMjQxLDcgQEAgc3RhdGljIGlu dCBkdmJfcmVnaXN0ZXIoc3RydWN0IGN4MjM4ODVfdA0KIAkJCS8qIGF0dGFj aCBTRUMgKi8NCiAJCQlhODI5M19wZGF0YS5kdmJfZnJvbnRlbmQgPSBmZTAt PmR2Yi5mcm9udGVuZDsNCiAJCQltZW1zZXQoJmluZm8sIDAsIHNpemVvZihp bmZvKSk7DQotCQkJc3Ryc2NweShpbmZvLnR5cGUsICJhODI5MyIsIEkyQ19O QU1FX1NJWkUpOw0KKwkJCXN0cmFjcHkoaW5mby50eXBlLCAiYTgyOTMiKTsN CiAJCQlpbmZvLmFkZHIgPSAweDBiOw0KIAkJCWluZm8ucGxhdGZvcm1fZGF0 YSA9ICZhODI5M19wZGF0YTsNCiAJCQlyZXF1ZXN0X21vZHVsZSgiYTgyOTMi KTsNCkBAIC0yMjU4LDcgKzIyNTgsNyBAQCBzdGF0aWMgaW50IGR2Yl9yZWdp c3RlcihzdHJ1Y3QgY3gyMzg4NV90DQogCQkJbWVtc2V0KCZtODhyczYwMDB0 X2NvbmZpZywgMCwgc2l6ZW9mKG04OHJzNjAwMHRfY29uZmlnKSk7DQogCQkJ bTg4cnM2MDAwdF9jb25maWcuZmUgPSBmZTAtPmR2Yi5mcm9udGVuZDsNCiAJ CQltZW1zZXQoJmluZm8sIDAsIHNpemVvZihzdHJ1Y3QgaTJjX2JvYXJkX2lu Zm8pKTsNCi0JCQlzdHJzY3B5KGluZm8udHlwZSwgIm04OHJzNjAwMHQiLCBJ MkNfTkFNRV9TSVpFKTsNCisJCQlzdHJhY3B5KGluZm8udHlwZSwgIm04OHJz NjAwMHQiKTsNCiAJCQlpbmZvLmFkZHIgPSAweDIxOw0KIAkJCWluZm8ucGxh dGZvcm1fZGF0YSA9ICZtODhyczYwMDB0X2NvbmZpZzsNCiAJCQlyZXF1ZXN0 X21vZHVsZSgiJXMiLCBpbmZvLnR5cGUpOw0KQEAgLTIyODMsNyArMjI4Myw3 IEBAIHN0YXRpYyBpbnQgZHZiX3JlZ2lzdGVyKHN0cnVjdCBjeDIzODg1X3QN CiAJCQlzaTIxNjhfY29uZmlnLmZlID0gJmZlMC0+ZHZiLmZyb250ZW5kOw0K IAkJCXNpMjE2OF9jb25maWcudHNfbW9kZSA9IFNJMjE2OF9UU19TRVJJQUw7 DQogCQkJbWVtc2V0KCZpbmZvLCAwLCBzaXplb2Yoc3RydWN0IGkyY19ib2Fy ZF9pbmZvKSk7DQotCQkJc3Ryc2NweShpbmZvLnR5cGUsICJzaTIxNjgiLCBJ MkNfTkFNRV9TSVpFKTsNCisJCQlzdHJhY3B5KGluZm8udHlwZSwgInNpMjE2 OCIpOw0KIAkJCWluZm8uYWRkciA9IDB4NjQ7DQogCQkJaW5mby5wbGF0Zm9y bV9kYXRhID0gJnNpMjE2OF9jb25maWc7DQogCQkJcmVxdWVzdF9tb2R1bGUo IiVzIiwgaW5mby50eXBlKTsNCkBAIC0yMzAxLDcgKzIzMDEsNyBAQCBzdGF0 aWMgaW50IGR2Yl9yZWdpc3RlcihzdHJ1Y3QgY3gyMzg4NV90DQogCQkJc2ky MTU3X2NvbmZpZy5mZSA9IGZlMC0+ZHZiLmZyb250ZW5kOw0KIAkJCXNpMjE1 N19jb25maWcuaWZfcG9ydCA9IDE7DQogCQkJbWVtc2V0KCZpbmZvLCAwLCBz aXplb2Yoc3RydWN0IGkyY19ib2FyZF9pbmZvKSk7DQotCQkJc3Ryc2NweShp bmZvLnR5cGUsICJzaTIxNTciLCBJMkNfTkFNRV9TSVpFKTsNCisJCQlzdHJh Y3B5KGluZm8udHlwZSwgInNpMjE1NyIpOw0KIAkJCWluZm8uYWRkciA9IDB4 NjA7DQogCQkJaW5mby5wbGF0Zm9ybV9kYXRhID0gJnNpMjE1N19jb25maWc7 DQogCQkJcmVxdWVzdF9tb2R1bGUoIiVzIiwgaW5mby50eXBlKTsNCkBAIC0y MzM2LDcgKzIzMzYsNyBAQCBzdGF0aWMgaW50IGR2Yl9yZWdpc3RlcihzdHJ1 Y3QgY3gyMzg4NV90DQogCQkJc2kyMTY4X2NvbmZpZy5mZSA9ICZmZTAtPmR2 Yi5mcm9udGVuZDsNCiAJCQlzaTIxNjhfY29uZmlnLnRzX21vZGUgPSBTSTIx NjhfVFNfU0VSSUFMOw0KIAkJCW1lbXNldCgmaW5mbywgMCwgc2l6ZW9mKHN0 cnVjdCBpMmNfYm9hcmRfaW5mbykpOw0KLQkJCXN0cnNjcHkoaW5mby50eXBl LCAic2kyMTY4IiwgSTJDX05BTUVfU0laRSk7DQorCQkJc3RyYWNweShpbmZv LnR5cGUsICJzaTIxNjgiKTsNCiAJCQlpbmZvLmFkZHIgPSAweDY0Ow0KIAkJ CWluZm8ucGxhdGZvcm1fZGF0YSA9ICZzaTIxNjhfY29uZmlnOw0KIAkJCXJl cXVlc3RfbW9kdWxlKCIlcyIsIGluZm8udHlwZSk7DQpAQCAtMjM1NCw3ICsy MzU0LDcgQEAgc3RhdGljIGludCBkdmJfcmVnaXN0ZXIoc3RydWN0IGN4MjM4 ODVfdA0KIAkJCXNpMjE1N19jb25maWcuZmUgPSBmZTAtPmR2Yi5mcm9udGVu ZDsNCiAJCQlzaTIxNTdfY29uZmlnLmlmX3BvcnQgPSAxOw0KIAkJCW1lbXNl dCgmaW5mbywgMCwgc2l6ZW9mKHN0cnVjdCBpMmNfYm9hcmRfaW5mbykpOw0K LQkJCXN0cnNjcHkoaW5mby50eXBlLCAic2kyMTU3IiwgSTJDX05BTUVfU0la RSk7DQorCQkJc3RyYWNweShpbmZvLnR5cGUsICJzaTIxNTciKTsNCiAJCQlp bmZvLmFkZHIgPSAweDYwOw0KIAkJCWluZm8ucGxhdGZvcm1fZGF0YSA9ICZz aTIxNTdfY29uZmlnOw0KIAkJCXJlcXVlc3RfbW9kdWxlKCIlcyIsIGluZm8u dHlwZSk7DQpAQCAtMjM4Myw3ICsyMzgzLDcgQEAgc3RhdGljIGludCBkdmJf cmVnaXN0ZXIoc3RydWN0IGN4MjM4ODVfdA0KIAkJCXNpMjE2OF9jb25maWcu ZmUgPSAmZmUwLT5kdmIuZnJvbnRlbmQ7DQogCQkJc2kyMTY4X2NvbmZpZy50 c19tb2RlID0gU0kyMTY4X1RTX1NFUklBTDsNCiAJCQltZW1zZXQoJmluZm8s IDAsIHNpemVvZihzdHJ1Y3QgaTJjX2JvYXJkX2luZm8pKTsNCi0JCQlzdHJz Y3B5KGluZm8udHlwZSwgInNpMjE2OCIsIEkyQ19OQU1FX1NJWkUpOw0KKwkJ CXN0cmFjcHkoaW5mby50eXBlLCAic2kyMTY4Iik7DQogCQkJaW5mby5hZGRy ID0gMHg2NjsNCiAJCQlpbmZvLnBsYXRmb3JtX2RhdGEgPSAmc2kyMTY4X2Nv bmZpZzsNCiAJCQlyZXF1ZXN0X21vZHVsZSgiJXMiLCBpbmZvLnR5cGUpOw0K QEAgLTI0MDEsNyArMjQwMSw3IEBAIHN0YXRpYyBpbnQgZHZiX3JlZ2lzdGVy KHN0cnVjdCBjeDIzODg1X3QNCiAJCQlzaTIxNTdfY29uZmlnLmZlID0gZmUw LT5kdmIuZnJvbnRlbmQ7DQogCQkJc2kyMTU3X2NvbmZpZy5pZl9wb3J0ID0g MTsNCiAJCQltZW1zZXQoJmluZm8sIDAsIHNpemVvZihzdHJ1Y3QgaTJjX2Jv YXJkX2luZm8pKTsNCi0JCQlzdHJzY3B5KGluZm8udHlwZSwgInNpMjE1NyIs IEkyQ19OQU1FX1NJWkUpOw0KKwkJCXN0cmFjcHkoaW5mby50eXBlLCAic2ky MTU3Iik7DQogCQkJaW5mby5hZGRyID0gMHg2MjsNCiAJCQlpbmZvLnBsYXRm b3JtX2RhdGEgPSAmc2kyMTU3X2NvbmZpZzsNCiAJCQlyZXF1ZXN0X21vZHVs ZSgiJXMiLCBpbmZvLnR5cGUpOw0KQEAgLTI0NDMsNyArMjQ0Myw3IEBAIHN0 YXRpYyBpbnQgZHZiX3JlZ2lzdGVyKHN0cnVjdCBjeDIzODg1X3QNCiAJCQlz aTIxNTdfY29uZmlnLmlmX3BvcnQgPSAxOw0KIAkJCXNpMjE1N19jb25maWcu aW52ZXJzaW9uID0gMTsNCiAJCQltZW1zZXQoJmluZm8sIDAsIHNpemVvZihz dHJ1Y3QgaTJjX2JvYXJkX2luZm8pKTsNCi0JCQlzdHJzY3B5KGluZm8udHlw ZSwgInNpMjE1NyIsIEkyQ19OQU1FX1NJWkUpOw0KKwkJCXN0cmFjcHkoaW5m by50eXBlLCAic2kyMTU3Iik7DQogCQkJaW5mby5hZGRyID0gMHg2MDsNCiAJ CQlpbmZvLnBsYXRmb3JtX2RhdGEgPSAmc2kyMTU3X2NvbmZpZzsNCiAJCQly ZXF1ZXN0X21vZHVsZSgiJXMiLCBpbmZvLnR5cGUpOw0KQEAgLTI0NzksNyAr MjQ3OSw3IEBAIHN0YXRpYyBpbnQgZHZiX3JlZ2lzdGVyKHN0cnVjdCBjeDIz ODg1X3QNCiAJCQlzaTIxNTdfY29uZmlnLmlmX3BvcnQgPSAxOw0KIAkJCXNp MjE1N19jb25maWcuaW52ZXJzaW9uID0gMTsNCiAJCQltZW1zZXQoJmluZm8s IDAsIHNpemVvZihzdHJ1Y3QgaTJjX2JvYXJkX2luZm8pKTsNCi0JCQlzdHJz Y3B5KGluZm8udHlwZSwgInNpMjE1NyIsIEkyQ19OQU1FX1NJWkUpOw0KKwkJ CXN0cmFjcHkoaW5mby50eXBlLCAic2kyMTU3Iik7DQogCQkJaW5mby5hZGRy ID0gMHg2MjsNCiAJCQlpbmZvLnBsYXRmb3JtX2RhdGEgPSAmc2kyMTU3X2Nv bmZpZzsNCiAJCQlyZXF1ZXN0X21vZHVsZSgiJXMiLCBpbmZvLnR5cGUpOw0K QEAgLTI1MTksNyArMjUxOSw3IEBAIHN0YXRpYyBpbnQgZHZiX3JlZ2lzdGVy KHN0cnVjdCBjeDIzODg1X3QNCiAJCQlzaTIxNTdfY29uZmlnLmlmX3BvcnQg PSAxOw0KIAkJCXNpMjE1N19jb25maWcuaW52ZXJzaW9uID0gMTsNCiAJCQlt ZW1zZXQoJmluZm8sIDAsIHNpemVvZihzdHJ1Y3QgaTJjX2JvYXJkX2luZm8p KTsNCi0JCQlzdHJzY3B5KGluZm8udHlwZSwgInNpMjE1NyIsIEkyQ19OQU1F X1NJWkUpOw0KKwkJCXN0cmFjcHkoaW5mby50eXBlLCAic2kyMTU3Iik7DQog CQkJaW5mby5hZGRyID0gMHg2MDsNCiAJCQlpbmZvLnBsYXRmb3JtX2RhdGEg PSAmc2kyMTU3X2NvbmZpZzsNCiAJCQlyZXF1ZXN0X21vZHVsZSgiJXMiLCBp bmZvLnR5cGUpOw0KZGlmZiAtdSAtcCBhL25ldC9pcHY0L2lwX3R1bm5lbC5j IGIvbmV0L2lwdjQvaXBfdHVubmVsLmMNCi0tLSBhL25ldC9pcHY0L2lwX3R1 bm5lbC5jDQorKysgYi9uZXQvaXB2NC9pcF90dW5uZWwuYw0KQEAgLTEwNTQs NyArMTA1NCw3IEBAIGludCBpcF90dW5uZWxfaW5pdF9uZXQoc3RydWN0IG5l dCAqbmV0LA0KIA0KIAltZW1zZXQoJnBhcm1zLCAwLCBzaXplb2YocGFybXMp KTsNCiAJaWYgKGRldm5hbWUpDQotCQlzdHJsY3B5KHBhcm1zLm5hbWUsIGRl dm5hbWUsIElGTkFNU0laKTsNCisJCXN0cmFjcHkocGFybXMubmFtZSwgZGV2 bmFtZSk7DQogDQogCXJ0bmxfbG9jaygpOw0KIAlpdG4tPmZiX3R1bm5lbF9k ZXYgPSBfX2lwX3R1bm5lbF9jcmVhdGUobmV0LCBvcHMsICZwYXJtcyk7DQpk aWZmIC11IC1wIGEvZHJpdmVycy9od21vbi9lbWMxNDAzLmMgYi9kcml2ZXJz L2h3bW9uL2VtYzE0MDMuYw0KLS0tIGEvZHJpdmVycy9od21vbi9lbWMxNDAz LmMNCisrKyBiL2RyaXZlcnMvaHdtb24vZW1jMTQwMy5jDQpAQCAtMzI5LDIy ICszMjksMjIgQEAgc3RhdGljIGludCBlbWMxNDAzX2RldGVjdChzdHJ1Y3Qg aTJjX2NsaQ0KIAlpZCA9IGkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YShjbGll bnQsIFRIRVJNQUxfUElEX1JFRyk7DQogCXN3aXRjaCAoaWQpIHsNCiAJY2Fz ZSAweDIwOg0KLQkJc3RybGNweShpbmZvLT50eXBlLCAiZW1jMTQwMiIsIEky Q19OQU1FX1NJWkUpOw0KKwkJc3RyYWNweShpbmZvLT50eXBlLCAiZW1jMTQw MiIpOw0KIAkJYnJlYWs7DQogCWNhc2UgMHgyMToNCi0JCXN0cmxjcHkoaW5m by0+dHlwZSwgImVtYzE0MDMiLCBJMkNfTkFNRV9TSVpFKTsNCisJCXN0cmFj cHkoaW5mby0+dHlwZSwgImVtYzE0MDMiKTsNCiAJCWJyZWFrOw0KIAljYXNl IDB4MjI6DQotCQlzdHJsY3B5KGluZm8tPnR5cGUsICJlbWMxNDIyIiwgSTJD X05BTUVfU0laRSk7DQorCQlzdHJhY3B5KGluZm8tPnR5cGUsICJlbWMxNDIy Iik7DQogCQlicmVhazsNCiAJY2FzZSAweDIzOg0KLQkJc3RybGNweShpbmZv LT50eXBlLCAiZW1jMTQyMyIsIEkyQ19OQU1FX1NJWkUpOw0KKwkJc3RyYWNw eShpbmZvLT50eXBlLCAiZW1jMTQyMyIpOw0KIAkJYnJlYWs7DQogCWNhc2Ug MHgyNToNCi0JCXN0cmxjcHkoaW5mby0+dHlwZSwgImVtYzE0MDQiLCBJMkNf TkFNRV9TSVpFKTsNCisJCXN0cmFjcHkoaW5mby0+dHlwZSwgImVtYzE0MDQi KTsNCiAJCWJyZWFrOw0KIAljYXNlIDB4Mjc6DQotCQlzdHJsY3B5KGluZm8t PnR5cGUsICJlbWMxNDI0IiwgSTJDX05BTUVfU0laRSk7DQorCQlzdHJhY3B5 KGluZm8tPnR5cGUsICJlbWMxNDI0Iik7DQogCQlicmVhazsNCiAJZGVmYXVs dDoNCiAJCXJldHVybiAtRU5PREVWOw0KZGlmZiAtdSAtcCBhL2RyaXZlcnMv aHdtb24vdzgzbDc4Nm5nLmMgYi9kcml2ZXJzL2h3bW9uL3c4M2w3ODZuZy5j DQotLS0gYS9kcml2ZXJzL2h3bW9uL3c4M2w3ODZuZy5jDQorKysgYi9kcml2 ZXJzL2h3bW9uL3c4M2w3ODZuZy5jDQpAQCAtNjg3LDcgKzY4Nyw3IEBAIHc4 M2w3ODZuZ19kZXRlY3Qoc3RydWN0IGkyY19jbGllbnQgKmNsaWUNCiAJCXJl dHVybiAtRU5PREVWOw0KIAl9DQogDQotCXN0cmxjcHkoaW5mby0+dHlwZSwg Inc4M2w3ODZuZyIsIEkyQ19OQU1FX1NJWkUpOw0KKwlzdHJhY3B5KGluZm8t PnR5cGUsICJ3ODNsNzg2bmciKTsNCiANCiAJcmV0dXJuIDA7DQogfQ0KZGlm ZiAtdSAtcCBhL2RyaXZlcnMvaHdtb24vbG03Ny5jIGIvZHJpdmVycy9od21v bi9sbTc3LmMNCi0tLSBhL2RyaXZlcnMvaHdtb24vbG03Ny5jDQorKysgYi9k cml2ZXJzL2h3bW9uL2xtNzcuYw0KQEAgLTMwMiw3ICszMDIsNyBAQCBzdGF0 aWMgaW50IGxtNzdfZGV0ZWN0KHN0cnVjdCBpMmNfY2xpZW50DQogCSB8fCBp MmNfc21idXNfcmVhZF93b3JkX2RhdGEoY2xpZW50LCA3KSAhPSBtaW4pDQog CQlyZXR1cm4gLUVOT0RFVjsNCiANCi0Jc3RybGNweShpbmZvLT50eXBlLCAi bG03NyIsIEkyQ19OQU1FX1NJWkUpOw0KKwlzdHJhY3B5KGluZm8tPnR5cGUs ICJsbTc3Iik7DQogDQogCXJldHVybiAwOw0KIH0NCmRpZmYgLXUgLXAgYS9p bmNsdWRlL3JkbWEvcmRtYV92dC5oIGIvaW5jbHVkZS9yZG1hL3JkbWFfdnQu aA0KLS0tIGEvaW5jbHVkZS9yZG1hL3JkbWFfdnQuaA0KKysrIGIvaW5jbHVk ZS9yZG1hL3JkbWFfdnQuaA0KQEAgLTQ4Niw3ICs0ODYsNyBAQCBzdGF0aWMg aW5saW5lIHZvaWQgcnZ0X3NldF9pYmRldl9uYW1lKHN0DQogCSAqIHRvIHdv cmsgYnkgc2V0dGluZyB0aGUgbmFtZSBtYW51YWxseSBoZXJlLg0KIAkgKi8N CiAJZGV2X3NldF9uYW1lKCZyZGktPmliZGV2LmRldiwgZm10LCBuYW1lLCB1 bml0KTsNCi0Jc3RybGNweShyZGktPmliZGV2Lm5hbWUsIGRldl9uYW1lKCZy ZGktPmliZGV2LmRldiksIElCX0RFVklDRV9OQU1FX01BWCk7DQorCXN0cmFj cHkocmRpLT5pYmRldi5uYW1lLCBkZXZfbmFtZSgmcmRpLT5pYmRldi5kZXYp KTsNCiB9DQogDQogLyoqDQpkaWZmIC11IC1wIGEva2VybmVsL3dvcmtxdWV1 ZS5jIGIva2VybmVsL3dvcmtxdWV1ZS5jDQotLS0gYS9rZXJuZWwvd29ya3F1 ZXVlLmMNCisrKyBiL2tlcm5lbC93b3JrcXVldWUuYw0KQEAgLTIyMDgsNyAr MjIwOCw3IEBAIF9fYWNxdWlyZXMoJnBvb2wtPmxvY2spDQogCSAqIFJlY29y ZCB3cSBuYW1lIGZvciBjbWRsaW5lIGFuZCBkZWJ1ZyByZXBvcnRpbmcsIG1h eSBnZXQNCiAJICogb3ZlcnJpZGRlbiB0aHJvdWdoIHNldF93b3JrZXJfZGVz YygpLg0KIAkgKi8NCi0Jc3Ryc2NweSh3b3JrZXItPmRlc2MsIHB3cS0+d3Et Pm5hbWUsIFdPUktFUl9ERVNDX0xFTik7DQorCXN0cmFjcHkod29ya2VyLT5k ZXNjLCBwd3EtPndxLT5uYW1lKTsNCiANCiAJbGlzdF9kZWxfaW5pdCgmd29y ay0+ZW50cnkpOw0KIA0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvaHdtb24vZnRz dGV1dGF0ZXMuYyBiL2RyaXZlcnMvaHdtb24vZnRzdGV1dGF0ZXMuYw0KLS0t IGEvZHJpdmVycy9od21vbi9mdHN0ZXV0YXRlcy5jDQorKysgYi9kcml2ZXJz L2h3bW9uL2Z0c3RldXRhdGVzLmMNCkBAIC03MzksNyArNzM5LDcgQEAgc3Rh dGljIGludCBmdHNfZGV0ZWN0KHN0cnVjdCBpMmNfY2xpZW50DQogCWlmICh2 YWwgIT0gMHgxMSkNCiAJCXJldHVybiAtRU5PREVWOw0KIA0KLQlzdHJsY3B5 KGluZm8tPnR5cGUsIGZ0c19pZFswXS5uYW1lLCBJMkNfTkFNRV9TSVpFKTsN CisJc3RyYWNweShpbmZvLT50eXBlLCBmdHNfaWRbMF0ubmFtZSk7DQogCWlu Zm8tPmZsYWdzID0gMDsNCiAJcmV0dXJuIDA7DQogfQ0KZGlmZiAtdSAtcCBh L2RyaXZlcnMvbWVkaWEvaTJjL3R2YXVkaW8uYyBiL2RyaXZlcnMvbWVkaWEv aTJjL3R2YXVkaW8uYw0KLS0tIGEvZHJpdmVycy9tZWRpYS9pMmMvdHZhdWRp by5jDQorKysgYi9kcml2ZXJzL21lZGlhL2kyYy90dmF1ZGlvLmMNCkBAIC0x OTgxLDcgKzE5ODEsNyBAQCBzdGF0aWMgaW50IHR2YXVkaW9fcHJvYmUoc3Ry dWN0IGkyY19jbGllDQogDQogCS8qIGZpbGwgcmVxdWlyZWQgZGF0YSBzdHJ1 Y3R1cmVzICovDQogCWlmICghaWQpDQotCQlzdHJzY3B5KGNsaWVudC0+bmFt ZSwgZGVzYy0+bmFtZSwgSTJDX05BTUVfU0laRSk7DQorCQlzdHJhY3B5KGNs aWVudC0+bmFtZSwgZGVzYy0+bmFtZSk7DQogCWNoaXAtPmRlc2MgPSBkZXNj Ow0KIAljaGlwLT5zaGFkb3cuY291bnQgPSBkZXNjLT5yZWdpc3RlcnMrMTsN CiAJY2hpcC0+cHJldm1vZGUgPSAtMTsNCmRpZmYgLXUgLXAgYS9kcml2ZXJz L21lZGlhL3BjaS9zYWE3MTM0L3NhYTcxMzQtaW5wdXQuYyBiL2RyaXZlcnMv bWVkaWEvcGNpL3NhYTcxMzQvc2FhNzEzNC1pbnB1dC5jDQotLS0gYS9kcml2 ZXJzL21lZGlhL3BjaS9zYWE3MTM0L3NhYTcxMzQtaW5wdXQuYw0KKysrIGIv ZHJpdmVycy9tZWRpYS9wY2kvc2FhNzEzNC9zYWE3MTM0LWlucHV0LmMNCkBA IC04NTYsNyArODU2LDcgQEAgdm9pZCBzYWE3MTM0X3Byb2JlX2kyY19pcihz dHJ1Y3Qgc2FhNzEzNA0KIA0KIAltZW1zZXQoJmluZm8sIDAsIHNpemVvZihz dHJ1Y3QgaTJjX2JvYXJkX2luZm8pKTsNCiAJbWVtc2V0KCZkZXYtPmluaXRf ZGF0YSwgMCwgc2l6ZW9mKGRldi0+aW5pdF9kYXRhKSk7DQotCXN0cnNjcHko aW5mby50eXBlLCAiaXJfdmlkZW8iLCBJMkNfTkFNRV9TSVpFKTsNCisJc3Ry YWNweShpbmZvLnR5cGUsICJpcl92aWRlbyIpOw0KIA0KIAlzd2l0Y2ggKGRl di0+Ym9hcmQpIHsNCiAJY2FzZSBTQUE3MTM0X0JPQVJEX1BJTk5BQ0xFX1BD VFZfMTEwaToNCmRpZmYgLXUgLXAgYS9kcml2ZXJzL21lZGlhL3VzYi9jeDIz MXh4L2N4MjMxeHgtaW5wdXQuYyBiL2RyaXZlcnMvbWVkaWEvdXNiL2N4MjMx eHgvY3gyMzF4eC1pbnB1dC5jDQotLS0gYS9kcml2ZXJzL21lZGlhL3VzYi9j eDIzMXh4L2N4MjMxeHgtaW5wdXQuYw0KKysrIGIvZHJpdmVycy9tZWRpYS91 c2IvY3gyMzF4eC9jeDIzMXh4LWlucHV0LmMNCkBAIC02Nyw3ICs2Nyw3IEBA IGludCBjeDIzMXh4X2lyX2luaXQoc3RydWN0IGN4MjMxeHggKmRldikNCiAN CiAJZGV2LT5pbml0X2RhdGEubmFtZSA9IGN4MjMxeHhfYm9hcmRzW2Rldi0+ bW9kZWxdLm5hbWU7DQogDQotCXN0cnNjcHkoaW5mby50eXBlLCAiaXJfdmlk ZW8iLCBJMkNfTkFNRV9TSVpFKTsNCisJc3RyYWNweShpbmZvLnR5cGUsICJp cl92aWRlbyIpOw0KIAlpbmZvLnBsYXRmb3JtX2RhdGEgPSAmZGV2LT5pbml0 X2RhdGE7DQogDQogCS8qDQpkaWZmIC11IC1wIGEvc291bmQvcHBjL2tleXdl c3QuYyBiL3NvdW5kL3BwYy9rZXl3ZXN0LmMNCi0tLSBhL3NvdW5kL3BwYy9r ZXl3ZXN0LmMNCisrKyBiL3NvdW5kL3BwYy9rZXl3ZXN0LmMNCkBAIC00OCw3 ICs0OCw3IEBAIHN0YXRpYyBpbnQga2V5d2VzdF9hdHRhY2hfYWRhcHRlcihz dHJ1Y3QNCiAJCXJldHVybiAtRUlOVkFMOyAvKiBpZ25vcmVkICovDQogDQog CW1lbXNldCgmaW5mbywgMCwgc2l6ZW9mKHN0cnVjdCBpMmNfYm9hcmRfaW5m bykpOw0KLQlzdHJsY3B5KGluZm8udHlwZSwgImtleXdlc3QiLCBJMkNfTkFN RV9TSVpFKTsNCisJc3RyYWNweShpbmZvLnR5cGUsICJrZXl3ZXN0Iik7DQog CWluZm8uYWRkciA9IGtleXdlc3RfY3R4LT5hZGRyOw0KIAlrZXl3ZXN0X2N0 eC0+Y2xpZW50ID0gaTJjX25ld19kZXZpY2UoYWRhcHRlciwgJmluZm8pOw0K IAlpZiAoIWtleXdlc3RfY3R4LT5jbGllbnQpDQpkaWZmIC11IC1wIGEvZHJp dmVycy9od21vbi9sbTg3LmMgYi9kcml2ZXJzL2h3bW9uL2xtODcuYw0KLS0t IGEvZHJpdmVycy9od21vbi9sbTg3LmMNCisrKyBiL2RyaXZlcnMvaHdtb24v bG04Ny5jDQpAQCAtODMzLDcgKzgzMyw3IEBAIHN0YXRpYyBpbnQgbG04N19k ZXRlY3Qoc3RydWN0IGkyY19jbGllbnQNCiAJCXJldHVybiAtRU5PREVWOw0K IAl9DQogDQotCXN0cmxjcHkoaW5mby0+dHlwZSwgbmFtZSwgSTJDX05BTUVf U0laRSk7DQorCXN0cmFjcHkoaW5mby0+dHlwZSwgbmFtZSk7DQogDQogCXJl dHVybiAwOw0KIH0NCmRpZmYgLXUgLXAgYS9kcml2ZXJzL21lZGlhL3BjaS9j eDg4L2N4ODgtaW5wdXQuYyBiL2RyaXZlcnMvbWVkaWEvcGNpL2N4ODgvY3g4 OC1pbnB1dC5jDQotLS0gYS9kcml2ZXJzL21lZGlhL3BjaS9jeDg4L2N4ODgt aW5wdXQuYw0KKysrIGIvZHJpdmVycy9tZWRpYS9wY2kvY3g4OC9jeDg4LWlu cHV0LmMNCkBAIC02MDAsNyArNjAwLDcgQEAgdm9pZCBjeDg4X2kyY19pbml0 X2lyKHN0cnVjdCBjeDg4X2NvcmUgKg0KIAkJcmV0dXJuOw0KIA0KIAltZW1z ZXQoJmluZm8sIDAsIHNpemVvZihzdHJ1Y3QgaTJjX2JvYXJkX2luZm8pKTsN Ci0Jc3Ryc2NweShpbmZvLnR5cGUsICJpcl92aWRlbyIsIEkyQ19OQU1FX1NJ WkUpOw0KKwlzdHJhY3B5KGluZm8udHlwZSwgImlyX3ZpZGVvIik7DQogDQog CXN3aXRjaCAoY29yZS0+Ym9hcmRucikgew0KIAljYXNlIENYODhfQk9BUkRf TEVBRFRFS19QVlIyMDAwOg0KQEAgLTYyNSw3ICs2MjUsNyBAQCB2b2lkIGN4 ODhfaTJjX2luaXRfaXIoc3RydWN0IGN4ODhfY29yZSAqDQogDQogCQlpZiAo KmFkZHJwID09IDB4NzEpIHsNCiAJCQkvKiBIYXVwcGF1Z2UgWjhGMDgxMSAq Lw0KLQkJCXN0cnNjcHkoaW5mby50eXBlLCAiaXJfejhmMDgxMV9oYXVwIiwg STJDX05BTUVfU0laRSk7DQorCQkJc3RyYWNweShpbmZvLnR5cGUsICJpcl96 OGYwODExX2hhdXAiKTsNCiAJCQljb3JlLT5pbml0X2RhdGEubmFtZSA9IGNv cmUtPmJvYXJkLm5hbWU7DQogCQkJY29yZS0+aW5pdF9kYXRhLmlyX2NvZGVz ID0gUkNfTUFQX0hBVVBQQVVHRTsNCiAJCQljb3JlLT5pbml0X2RhdGEudHlw ZSA9IFJDX1BST1RPX0JJVF9SQzUgfA0KZGlmZiAtdSAtcCBhL2RyaXZlcnMv bWVkaWEvdXNiL3B2cnVzYjIvcHZydXNiMi1pMmMtY29yZS5jIGIvZHJpdmVy cy9tZWRpYS91c2IvcHZydXNiMi9wdnJ1c2IyLWkyYy1jb3JlLmMNCi0tLSBh L2RyaXZlcnMvbWVkaWEvdXNiL3B2cnVzYjIvcHZydXNiMi1pMmMtY29yZS5j DQorKysgYi9kcml2ZXJzL21lZGlhL3VzYi9wdnJ1c2IyL3B2cnVzYjItaTJj LWNvcmUuYw0KQEAgLTU2MSw3ICs1NjEsNyBAQCBzdGF0aWMgdm9pZCBwdnIy X2kyY19yZWdpc3Rlcl9pcihzdHJ1Y3QNCiAJCS8qIElSIFJlY2VpdmVyICov DQogCQlpbmZvLmFkZHIgICAgICAgICAgPSAweDE4Ow0KIAkJaW5mby5wbGF0 Zm9ybV9kYXRhID0gaW5pdF9kYXRhOw0KLQkJc3Ryc2NweShpbmZvLnR5cGUs ICJpcl92aWRlbyIsIEkyQ19OQU1FX1NJWkUpOw0KKwkJc3RyYWNweShpbmZv LnR5cGUsICJpcl92aWRlbyIpOw0KIAkJcHZyMl90cmFjZShQVlIyX1RSQUNF X0lORk8sICJCaW5kaW5nICVzIHRvIGkyYyBhZGRyZXNzIDB4JTAyeC4iLA0K IAkJCSAgIGluZm8udHlwZSwgaW5mby5hZGRyKTsNCiAJCWkyY19uZXdfZGV2 aWNlKCZoZHctPmkyY19hZGFwLCAmaW5mbyk7DQpAQCAtNTc2LDcgKzU3Niw3 IEBAIHN0YXRpYyB2b2lkIHB2cjJfaTJjX3JlZ2lzdGVyX2lyKHN0cnVjdA0K IAkJLyogSVIgVHJhbnNjZWl2ZXIgKi8NCiAJCWluZm8uYWRkciA9IDB4NzE7 DQogCQlpbmZvLnBsYXRmb3JtX2RhdGEgPSBpbml0X2RhdGE7DQotCQlzdHJz Y3B5KGluZm8udHlwZSwgImlyX3o4ZjA4MTFfaGF1cCIsIEkyQ19OQU1FX1NJ WkUpOw0KKwkJc3RyYWNweShpbmZvLnR5cGUsICJpcl96OGYwODExX2hhdXAi KTsNCiAJCXB2cjJfdHJhY2UoUFZSMl9UUkFDRV9JTkZPLCAiQmluZGluZyAl cyB0byBpMmMgYWRkcmVzcyAweCUwMnguIiwNCiAJCQkgICBpbmZvLnR5cGUs IGluZm8uYWRkcik7DQogCQlpMmNfbmV3X2RldmljZSgmaGR3LT5pMmNfYWRh cCwgJmluZm8pOw0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvczM5MC9ibG9jay9k YXNkX2Rldm1hcC5jIGIvZHJpdmVycy9zMzkwL2Jsb2NrL2Rhc2RfZGV2bWFw LmMNCi0tLSBhL2RyaXZlcnMvczM5MC9ibG9jay9kYXNkX2Rldm1hcC5jDQor KysgYi9kcml2ZXJzL3MzOTAvYmxvY2svZGFzZF9kZXZtYXAuYw0KQEAgLTQy Niw3ICs0MjYsNyBAQCBkYXNkX2FkZF9idXNpZChjb25zdCBjaGFyICpidXNf aWQsIGludCBmDQogCWlmICghZGV2bWFwKSB7DQogCQkvKiBUaGlzIGJ1c19p ZCBpcyBuZXcuICovDQogCQluZXctPmRldmluZGV4ID0gZGFzZF9tYXhfZGV2 aW5kZXgrKzsNCi0JCXN0cmxjcHkobmV3LT5idXNfaWQsIGJ1c19pZCwgREFT RF9CVVNfSURfU0laRSk7DQorCQlzdHJhY3B5KG5ldy0+YnVzX2lkLCBidXNf aWQpOw0KIAkJbmV3LT5mZWF0dXJlcyA9IGZlYXR1cmVzOw0KIAkJbmV3LT5k ZXZpY2UgPSBOVUxMOw0KIAkJbGlzdF9hZGQoJm5ldy0+bGlzdCwgJmRhc2Rf aGFzaGxpc3RzW2hhc2hdKTsNCmRpZmYgLXUgLXAgYS9kcml2ZXJzL3VzYi91 c2JpcC9zdHViX21haW4uYyBiL2RyaXZlcnMvdXNiL3VzYmlwL3N0dWJfbWFp bi5jDQotLS0gYS9kcml2ZXJzL3VzYi91c2JpcC9zdHViX21haW4uYw0KKysr IGIvZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9tYWluLmMNCkBAIC0xMDEsNyAr MTAxLDcgQEAgc3RhdGljIGludCBhZGRfbWF0Y2hfYnVzaWQoY2hhciAqYnVz aWQpDQogCWZvciAoaSA9IDA7IGkgPCBNQVhfQlVTSUQ7IGkrKykgew0KIAkJ c3Bpbl9sb2NrKCZidXNpZF90YWJsZVtpXS5idXNpZF9sb2NrKTsNCiAJCWlm ICghYnVzaWRfdGFibGVbaV0ubmFtZVswXSkgew0KLQkJCXN0cmxjcHkoYnVz aWRfdGFibGVbaV0ubmFtZSwgYnVzaWQsIEJVU0lEX1NJWkUpOw0KKwkJCXN0 cmFjcHkoYnVzaWRfdGFibGVbaV0ubmFtZSwgYnVzaWQpOw0KIAkJCWlmICgo YnVzaWRfdGFibGVbaV0uc3RhdHVzICE9IFNUVUJfQlVTSURfQUxMT0MpICYm DQogCQkJICAgIChidXNpZF90YWJsZVtpXS5zdGF0dXMgIT0gU1RVQl9CVVNJ RF9SRU1PVikpDQogCQkJCWJ1c2lkX3RhYmxlW2ldLnN0YXR1cyA9IFNUVUJf QlVTSURfQURERUQ7DQpkaWZmIC11IC1wIGEvbmV0L2NvcmUvZGV2LmMgYi9u ZXQvY29yZS9kZXYuYw0KLS0tIGEvbmV0L2NvcmUvZGV2LmMNCisrKyBiL25l dC9jb3JlL2Rldi5jDQpAQCAtNTcyLDcgKzU3Miw3IEBAIHN0YXRpYyBpbnQg bmV0ZGV2X2Jvb3Rfc2V0dXBfYWRkKGNoYXIgKm4NCiAJZm9yIChpID0gMDsg aSA8IE5FVERFVl9CT09UX1NFVFVQX01BWDsgaSsrKSB7DQogCQlpZiAoc1tp XS5uYW1lWzBdID09ICdcMCcgfHwgc1tpXS5uYW1lWzBdID09ICcgJykgew0K IAkJCW1lbXNldChzW2ldLm5hbWUsIDAsIHNpemVvZihzW2ldLm5hbWUpKTsN Ci0JCQlzdHJsY3B5KHNbaV0ubmFtZSwgbmFtZSwgSUZOQU1TSVopOw0KKwkJ CXN0cmFjcHkoc1tpXS5uYW1lLCBuYW1lKTsNCiAJCQltZW1jcHkoJnNbaV0u bWFwLCBtYXAsIHNpemVvZihzW2ldLm1hcCkpOw0KIAkJCWJyZWFrOw0KIAkJ fQ0KQEAgLTExMTcsNyArMTExNyw3IEBAIHN0YXRpYyBpbnQgZGV2X2FsbG9j X25hbWVfbnMoc3RydWN0IG5ldA0KIAlCVUdfT04oIW5ldCk7DQogCXJldCA9 IF9fZGV2X2FsbG9jX25hbWUobmV0LCBuYW1lLCBidWYpOw0KIAlpZiAocmV0 ID49IDApDQotCQlzdHJsY3B5KGRldi0+bmFtZSwgYnVmLCBJRk5BTVNJWik7 DQorCQlzdHJhY3B5KGRldi0+bmFtZSwgYnVmKTsNCiAJcmV0dXJuIHJldDsN CiB9DQogDQpAQCAtMTE1NCw3ICsxMTU0LDcgQEAgaW50IGRldl9nZXRfdmFs aWRfbmFtZShzdHJ1Y3QgbmV0ICpuZXQsDQogCWVsc2UgaWYgKF9fZGV2X2dl dF9ieV9uYW1lKG5ldCwgbmFtZSkpDQogCQlyZXR1cm4gLUVFWElTVDsNCiAJ ZWxzZSBpZiAoZGV2LT5uYW1lICE9IG5hbWUpDQotCQlzdHJsY3B5KGRldi0+ bmFtZSwgbmFtZSwgSUZOQU1TSVopOw0KKwkJc3RyYWNweShkZXYtPm5hbWUs IG5hbWUpOw0KIA0KIAlyZXR1cm4gMDsNCiB9DQpkaWZmIC11IC1wIGEvZHJp dmVycy9od21vbi9hc2IxMDAuYyBiL2RyaXZlcnMvaHdtb24vYXNiMTAwLmMN Ci0tLSBhL2RyaXZlcnMvaHdtb24vYXNiMTAwLmMNCisrKyBiL2RyaXZlcnMv aHdtb24vYXNiMTAwLmMNCkBAIC03NzAsNyArNzcwLDcgQEAgc3RhdGljIGlu dCBhc2IxMDBfZGV0ZWN0KHN0cnVjdCBpMmNfY2xpZQ0KIAlpZiAodmFsMSAh PSAweDMxIHx8IHZhbDIgIT0gMHgwNikNCiAJCXJldHVybiAtRU5PREVWOw0K IA0KLQlzdHJsY3B5KGluZm8tPnR5cGUsICJhc2IxMDAiLCBJMkNfTkFNRV9T SVpFKTsNCisJc3RyYWNweShpbmZvLT50eXBlLCAiYXNiMTAwIik7DQogDQog CXJldHVybiAwOw0KIH0NCmRpZmYgLXUgLXAgYS9kcml2ZXJzL2h3bW9uL3c4 M2w3ODV0cy5jIGIvZHJpdmVycy9od21vbi93ODNsNzg1dHMuYw0KLS0tIGEv ZHJpdmVycy9od21vbi93ODNsNzg1dHMuYw0KKysrIGIvZHJpdmVycy9od21v bi93ODNsNzg1dHMuYw0KQEAgLTE1OCw3ICsxNTgsNyBAQCBzdGF0aWMgaW50 IHc4M2w3ODV0c19kZXRlY3Qoc3RydWN0IGkyY19jDQogCQlyZXR1cm4gLUVO T0RFVjsNCiAJfQ0KIA0KLQlzdHJsY3B5KGluZm8tPnR5cGUsICJ3ODNsNzg1 dHMiLCBJMkNfTkFNRV9TSVpFKTsNCisJc3RyYWNweShpbmZvLT50eXBlLCAi dzgzbDc4NXRzIik7DQogDQogCXJldHVybiAwOw0KIH0NCmRpZmYgLXUgLXAg YS9pbmNsdWRlL3JkbWEvcmRtYV92dC5oIGIvaW5jbHVkZS9yZG1hL3JkbWFf dnQuaA0KLS0tIGEvaW5jbHVkZS9yZG1hL3JkbWFfdnQuaA0KKysrIGIvaW5j bHVkZS9yZG1hL3JkbWFfdnQuaA0KQEAgLTQ4Niw3ICs0ODYsNyBAQCBzdGF0 aWMgaW5saW5lIHZvaWQgcnZ0X3NldF9pYmRldl9uYW1lKHN0DQogCSAqIHRv IHdvcmsgYnkgc2V0dGluZyB0aGUgbmFtZSBtYW51YWxseSBoZXJlLg0KIAkg Ki8NCiAJZGV2X3NldF9uYW1lKCZyZGktPmliZGV2LmRldiwgZm10LCBuYW1l LCB1bml0KTsNCi0Jc3RybGNweShyZGktPmliZGV2Lm5hbWUsIGRldl9uYW1l KCZyZGktPmliZGV2LmRldiksIElCX0RFVklDRV9OQU1FX01BWCk7DQorCXN0 cmFjcHkocmRpLT5pYmRldi5uYW1lLCBkZXZfbmFtZSgmcmRpLT5pYmRldi5k ZXYpKTsNCiB9DQogDQogLyoqDQpkaWZmIC11IC1wIGEvZHJpdmVycy9zY3Np L2JmYS9iZmFkX2JzZy5jIGIvZHJpdmVycy9zY3NpL2JmYS9iZmFkX2JzZy5j DQotLS0gYS9kcml2ZXJzL3Njc2kvYmZhL2JmYWRfYnNnLmMNCisrKyBiL2Ry aXZlcnMvc2NzaS9iZmEvYmZhZF9ic2cuYw0KQEAgLTExOSw4ICsxMTksOCBA QCBiZmFkX2lvY21kX2lvY19nZXRfYXR0cihzdHJ1Y3QgYmZhZF9zICpiDQog DQogCS8qIGZpbGwgaW4gZHJpdmVyIGF0dHIgaW5mbyAqLw0KIAlzdHJjcHko aW9jbWQtPmlvY19hdHRyLmRyaXZlcl9hdHRyLmRyaXZlciwgQkZBRF9EUklW RVJfTkFNRSk7DQotCXN0cmxjcHkoaW9jbWQtPmlvY19hdHRyLmRyaXZlcl9h dHRyLmRyaXZlcl92ZXIsDQotCQlCRkFEX0RSSVZFUl9WRVJTSU9OLCBCRkFf VkVSU0lPTl9MRU4pOw0KKwlzdHJhY3B5KGlvY21kLT5pb2NfYXR0ci5kcml2 ZXJfYXR0ci5kcml2ZXJfdmVyLA0KKwkJQkZBRF9EUklWRVJfVkVSU0lPTik7 DQogCXN0cmNweShpb2NtZC0+aW9jX2F0dHIuZHJpdmVyX2F0dHIuZndfdmVy LA0KIAkJaW9jbWQtPmlvY19hdHRyLmFkYXB0ZXJfYXR0ci5md192ZXIpOw0K IAlzdHJjcHkoaW9jbWQtPmlvY19hdHRyLmRyaXZlcl9hdHRyLmJpb3NfdmVy LA0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvc3RhZ2luZy9vbHBjX2Rjb24vb2xw Y19kY29uLmMgYi9kcml2ZXJzL3N0YWdpbmcvb2xwY19kY29uL29scGNfZGNv bi5jDQotLS0gYS9kcml2ZXJzL3N0YWdpbmcvb2xwY19kY29uL29scGNfZGNv bi5jDQorKysgYi9kcml2ZXJzL3N0YWdpbmcvb2xwY19kY29uL29scGNfZGNv bi5jDQpAQCAtNTc2LDcgKzU3Niw3IEBAIHN0YXRpYyBzdHJ1Y3Qgbm90aWZp ZXJfYmxvY2sgZGNvbl9wYW5pY18NCiANCiBzdGF0aWMgaW50IGRjb25fZGV0 ZWN0KHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsIHN0cnVjdCBpMmNfYm9h cmRfaW5mbyAqaW5mbykNCiB7DQotCXN0cmxjcHkoaW5mby0+dHlwZSwgIm9s cGNfZGNvbiIsIEkyQ19OQU1FX1NJWkUpOw0KKwlzdHJhY3B5KGluZm8tPnR5 cGUsICJvbHBjX2Rjb24iKTsNCiANCiAJcmV0dXJuIDA7DQogfQ0KZGlmZiAt dSAtcCBhL2RyaXZlcnMvYWNwaS9wcm9jZXNzb3JfaWRsZS5jIGIvZHJpdmVy cy9hY3BpL3Byb2Nlc3Nvcl9pZGxlLmMNCi0tLSBhL2RyaXZlcnMvYWNwaS9w cm9jZXNzb3JfaWRsZS5jDQorKysgYi9kcml2ZXJzL2FjcGkvcHJvY2Vzc29y X2lkbGUuYw0KQEAgLTg2NSw3ICs4NjUsNyBAQCBzdGF0aWMgaW50IGFjcGlf cHJvY2Vzc29yX3NldHVwX2NzdGF0ZXMoDQogDQogCQlzdGF0ZSA9ICZkcnYt PnN0YXRlc1tjb3VudF07DQogCQlzbnByaW50ZihzdGF0ZS0+bmFtZSwgQ1BV SURMRV9OQU1FX0xFTiwgIkMlZCIsIGkpOw0KLQkJc3RybGNweShzdGF0ZS0+ ZGVzYywgY3gtPmRlc2MsIENQVUlETEVfREVTQ19MRU4pOw0KKwkJc3RyYWNw eShzdGF0ZS0+ZGVzYywgY3gtPmRlc2MpOw0KIAkJc3RhdGUtPmV4aXRfbGF0 ZW5jeSA9IGN4LT5sYXRlbmN5Ow0KIAkJc3RhdGUtPnRhcmdldF9yZXNpZGVu Y3kgPSBjeC0+bGF0ZW5jeSAqIGxhdGVuY3lfZmFjdG9yOw0KIAkJc3RhdGUt PmVudGVyID0gYWNwaV9pZGxlX2VudGVyOw0KQEAgLTEwMzYsOCArMTAzNiw3 IEBAIHN0YXRpYyBpbnQgYWNwaV9wcm9jZXNzb3JfZXZhbHVhdGVfbHBpKGEN CiANCiAJCW9iaiA9IHBrZ19lbGVtICsgOTsNCiAJCWlmIChvYmotPnR5cGUg PT0gQUNQSV9UWVBFX1NUUklORykNCi0JCQlzdHJsY3B5KGxwaV9zdGF0ZS0+ ZGVzYywgb2JqLT5zdHJpbmcucG9pbnRlciwNCi0JCQkJQUNQSV9DWF9ERVND X0xFTik7DQorCQkJc3RyYWNweShscGlfc3RhdGUtPmRlc2MsIG9iai0+c3Ry aW5nLnBvaW50ZXIpOw0KIA0KIAkJbHBpX3N0YXRlLT5pbmRleCA9IHN0YXRl X2lkeDsNCiAJCWlmIChvYmpfZ2V0X2ludGVnZXIocGtnX2VsZW0gKyAwLCAm bHBpX3N0YXRlLT5taW5fcmVzaWRlbmN5KSkgew0KQEAgLTExMDIsNyArMTEw MSw3IEBAIHN0YXRpYyBib29sIGNvbWJpbmVfbHBpX3N0YXRlcyhzdHJ1Y3Qg YWMNCiAJcmVzdWx0LT5hcmNoX2ZsYWdzID0gcGFyZW50LT5hcmNoX2ZsYWdz Ow0KIAlyZXN1bHQtPmluZGV4ID0gcGFyZW50LT5pbmRleDsNCiANCi0Jc3Ry bGNweShyZXN1bHQtPmRlc2MsIGxvY2FsLT5kZXNjLCBBQ1BJX0NYX0RFU0Nf TEVOKTsNCisJc3RyYWNweShyZXN1bHQtPmRlc2MsIGxvY2FsLT5kZXNjKTsN CiAJc3RybGNhdChyZXN1bHQtPmRlc2MsICIrIiwgQUNQSV9DWF9ERVNDX0xF Tik7DQogCXN0cmxjYXQocmVzdWx0LT5kZXNjLCBwYXJlbnQtPmRlc2MsIEFD UElfQ1hfREVTQ19MRU4pOw0KIAlyZXR1cm4gdHJ1ZTsNCkBAIC0xMjcxLDcg KzEyNzAsNyBAQCBzdGF0aWMgaW50IGFjcGlfcHJvY2Vzc29yX3NldHVwX2xw aV9zdGF0DQogDQogCQlzdGF0ZSA9ICZkcnYtPnN0YXRlc1tpXTsNCiAJCXNu cHJpbnRmKHN0YXRlLT5uYW1lLCBDUFVJRExFX05BTUVfTEVOLCAiTFBJLSVk IiwgaSk7DQotCQlzdHJsY3B5KHN0YXRlLT5kZXNjLCBscGktPmRlc2MsIENQ VUlETEVfREVTQ19MRU4pOw0KKwkJc3RyYWNweShzdGF0ZS0+ZGVzYywgbHBp LT5kZXNjKTsNCiAJCXN0YXRlLT5leGl0X2xhdGVuY3kgPSBscGktPndha2Vf bGF0ZW5jeTsNCiAJCXN0YXRlLT50YXJnZXRfcmVzaWRlbmN5ID0gbHBpLT5t aW5fcmVzaWRlbmN5Ow0KIAkJaWYgKGxwaS0+YXJjaF9mbGFncykNCmRpZmYg LXUgLXAgYS9kcml2ZXJzL2h3bW9uL2Y3NTM3NXMuYyBiL2RyaXZlcnMvaHdt b24vZjc1Mzc1cy5jDQotLS0gYS9kcml2ZXJzL2h3bW9uL2Y3NTM3NXMuYw0K KysrIGIvZHJpdmVycy9od21vbi9mNzUzNzVzLmMNCkBAIC04OTksNyArODk5 LDcgQEAgc3RhdGljIGludCBmNzUzNzVfZGV0ZWN0KHN0cnVjdCBpMmNfY2xp ZQ0KIA0KIAl2ZXJzaW9uID0gZjc1Mzc1X3JlYWQ4KGNsaWVudCwgRjc1Mzc1 X1JFR19WRVJTSU9OKTsNCiAJZGV2X2luZm8oJmFkYXB0ZXItPmRldiwgImZv dW5kICVzIHZlcnNpb246ICUwMlhcbiIsIG5hbWUsIHZlcnNpb24pOw0KLQlz dHJsY3B5KGluZm8tPnR5cGUsIG5hbWUsIEkyQ19OQU1FX1NJWkUpOw0KKwlz dHJhY3B5KGluZm8tPnR5cGUsIG5hbWUpOw0KIA0KIAlyZXR1cm4gMDsNCiB9 DQpkaWZmIC11IC1wIGEvZHJpdmVycy9tZWRpYS9kdmItY29yZS9kdmJkZXYu YyBiL2RyaXZlcnMvbWVkaWEvZHZiLWNvcmUvZHZiZGV2LmMNCi0tLSBhL2Ry aXZlcnMvbWVkaWEvZHZiLWNvcmUvZHZiZGV2LmMNCisrKyBiL2RyaXZlcnMv bWVkaWEvZHZiLWNvcmUvZHZiZGV2LmMNCkBAIC05NzUsOSArOTc1LDkgQEAg c3RydWN0IGkyY19jbGllbnQgKmR2Yl9tb2R1bGVfcHJvYmUoY29ucw0KIAkJ cmV0dXJuIE5VTEw7DQogDQogCWlmIChuYW1lKQ0KLQkJc3Ryc2NweShib2Fy ZF9pbmZvLT50eXBlLCBuYW1lLCBJMkNfTkFNRV9TSVpFKTsNCisJCXN0cmFj cHkoYm9hcmRfaW5mby0+dHlwZSwgbmFtZSk7DQogCWVsc2UNCi0JCXN0cnNj cHkoYm9hcmRfaW5mby0+dHlwZSwgbW9kdWxlX25hbWUsIEkyQ19OQU1FX1NJ WkUpOw0KKwkJc3RyYWNweShib2FyZF9pbmZvLT50eXBlLCBtb2R1bGVfbmFt ZSk7DQogDQogCWJvYXJkX2luZm8tPmFkZHIgPSBhZGRyOw0KIAlib2FyZF9p bmZvLT5wbGF0Zm9ybV9kYXRhID0gcGxhdGZvcm1fZGF0YTsNCmRpZmYgLXUg LXAgYS9kcml2ZXJzL2h3bW9uL21heDE2NjguYyBiL2RyaXZlcnMvaHdtb24v bWF4MTY2OC5jDQotLS0gYS9kcml2ZXJzL2h3bW9uL21heDE2NjguYw0KKysr IGIvZHJpdmVycy9od21vbi9tYXgxNjY4LmMNCkBAIC0zODYsNyArMzg2LDcg QEAgc3RhdGljIGludCBtYXgxNjY4X2RldGVjdChzdHJ1Y3QgaTJjX2NsaQ0K IAlpZiAoIXR5cGVfbmFtZSkNCiAJCXJldHVybiAtRU5PREVWOw0KIA0KLQlz dHJsY3B5KGluZm8tPnR5cGUsIHR5cGVfbmFtZSwgSTJDX05BTUVfU0laRSk7 DQorCXN0cmFjcHkoaW5mby0+dHlwZSwgdHlwZV9uYW1lKTsNCiANCiAJcmV0 dXJuIDA7DQogfQ0KZGlmZiAtdSAtcCBhL25ldC9zY2hlZC9zY2hfdGVxbC5j IGIvbmV0L3NjaGVkL3NjaF90ZXFsLmMNCi0tLSBhL25ldC9zY2hlZC9zY2hf dGVxbC5jDQorKysgYi9uZXQvc2NoZWQvc2NoX3RlcWwuYw0KQEAgLTQ4OSw3 ICs0ODksNyBAQCBzdGF0aWMgaW50IF9faW5pdCB0ZXFsX2luaXQodm9pZCkN CiANCiAJCW1hc3RlciA9IG5ldGRldl9wcml2KGRldik7DQogDQotCQlzdHJs Y3B5KG1hc3Rlci0+cW9wcy5pZCwgZGV2LT5uYW1lLCBJRk5BTVNJWik7DQor CQlzdHJhY3B5KG1hc3Rlci0+cW9wcy5pZCwgZGV2LT5uYW1lKTsNCiAJCWVy ciA9IHJlZ2lzdGVyX3FkaXNjKCZtYXN0ZXItPnFvcHMpOw0KIA0KIAkJaWYg KGVycikgew0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvZmlybXdhcmUvYXJtX3Nj bWkvc2Vuc29ycy5jIGIvZHJpdmVycy9maXJtd2FyZS9hcm1fc2NtaS9zZW5z b3JzLmMNCi0tLSBhL2RyaXZlcnMvZmlybXdhcmUvYXJtX3NjbWkvc2Vuc29y cy5jDQorKysgYi9kcml2ZXJzL2Zpcm13YXJlL2FybV9zY21pL3NlbnNvcnMu Yw0KQEAgLTE0Niw3ICsxNDYsNyBAQCBzdGF0aWMgaW50IHNjbWlfc2Vuc29y X2Rlc2NyaXB0aW9uX2dldChjDQogCQkJLyogU2lnbiBleHRlbmQgdG8gYSBm dWxsIHM4ICovDQogCQkJaWYgKHMtPnNjYWxlICYgU0VOU09SX1NDQUxFX1NJ R04pDQogCQkJCXMtPnNjYWxlIHw9IFNFTlNPUl9TQ0FMRV9FWFRFTkQ7DQot CQkJc3RybGNweShzLT5uYW1lLCBidWYtPmRlc2NbY250XS5uYW1lLCBTQ01J X01BWF9TVFJfU0laRSk7DQorCQkJc3RyYWNweShzLT5uYW1lLCBidWYtPmRl c2NbY250XS5uYW1lKTsNCiAJCX0NCiANCiAJCWRlc2NfaW5kZXggKz0gbnVt X3JldHVybmVkOw0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvaHdtb24vYWR0NzQ3 MC5jIGIvZHJpdmVycy9od21vbi9hZHQ3NDcwLmMNCi0tLSBhL2RyaXZlcnMv aHdtb24vYWR0NzQ3MC5jDQorKysgYi9kcml2ZXJzL2h3bW9uL2FkdDc0NzAu Yw0KQEAgLTEyMDAsNyArMTIwMCw3IEBAIHN0YXRpYyBpbnQgYWR0NzQ3MF9k ZXRlY3Qoc3RydWN0IGkyY19jbGkNCiAJaWYgKHJldmlzaW9uICE9IEFEVDc0 NzBfUkVWSVNJT04pDQogCQlyZXR1cm4gLUVOT0RFVjsNCiANCi0Jc3RybGNw eShpbmZvLT50eXBlLCAiYWR0NzQ3MCIsIEkyQ19OQU1FX1NJWkUpOw0KKwlz dHJhY3B5KGluZm8tPnR5cGUsICJhZHQ3NDcwIik7DQogDQogCXJldHVybiAw Ow0KIH0NCmRpZmYgLXUgLXAgYS9kcml2ZXJzL2h3bW9uL3c4Mzc5NS5jIGIv ZHJpdmVycy9od21vbi93ODM3OTUuYw0KLS0tIGEvZHJpdmVycy9od21vbi93 ODM3OTUuYw0KKysrIGIvZHJpdmVycy9od21vbi93ODM3OTUuYw0KQEAgLTE5 NjcsNyArMTk2Nyw3IEBAIHN0YXRpYyBpbnQgdzgzNzk1X2RldGVjdChzdHJ1 Y3QgaTJjX2NsaWUNCiAJZWxzZQ0KIAkJY2hpcF9uYW1lID0gInc4Mzc5NWci Ow0KIA0KLQlzdHJsY3B5KGluZm8tPnR5cGUsIGNoaXBfbmFtZSwgSTJDX05B TUVfU0laRSk7DQorCXN0cmFjcHkoaW5mby0+dHlwZSwgY2hpcF9uYW1lKTsN CiAJZGV2X2luZm8oJmFkYXB0ZXItPmRldiwgIkZvdW5kICVzIHJldi4gJWMg YXQgMHglMDJoeFxuIiwgY2hpcF9uYW1lLA0KIAkJICdBJyArIChkZXZpY2Vf aWQgJiAweGYpLCBhZGRyZXNzKTsNCiANCmRpZmYgLXUgLXAgYS90b29scy9w ZXJmL3V0aWwvYXV4dHJhY2UuYyBiL3Rvb2xzL3BlcmYvdXRpbC9hdXh0cmFj ZS5jDQotLS0gYS90b29scy9wZXJmL3V0aWwvYXV4dHJhY2UuYw0KKysrIGIv dG9vbHMvcGVyZi91dGlsL2F1eHRyYWNlLmMNCkBAIC04NjUsNyArODY1LDcg QEAgdm9pZCBhdXh0cmFjZV9zeW50aF9lcnJvcihzdHJ1Y3QgYXV4dHJhYw0K IAlhdXh0cmFjZV9lcnJvci0+Zm10ID0gMTsNCiAJYXV4dHJhY2VfZXJyb3It PmlwID0gaXA7DQogCWF1eHRyYWNlX2Vycm9yLT50aW1lID0gdGltZXN0YW1w Ow0KLQlzdHJsY3B5KGF1eHRyYWNlX2Vycm9yLT5tc2csIG1zZywgTUFYX0FV WFRSQUNFX0VSUk9SX01TRyk7DQorCXN0cmFjcHkoYXV4dHJhY2VfZXJyb3It Pm1zZywgbXNnKTsNCiANCiAJc2l6ZSA9ICh2b2lkICopYXV4dHJhY2VfZXJy b3ItPm1zZyAtICh2b2lkICopYXV4dHJhY2VfZXJyb3IgKw0KIAkgICAgICAg c3RybGVuKGF1eHRyYWNlX2Vycm9yLT5tc2cpICsgMTsNCmRpZmYgLXUgLXAg YS9hcmNoL21pcHMvYmNtNDd4eC9ib2FyZC5jIGIvYXJjaC9taXBzL2JjbTQ3 eHgvYm9hcmQuYw0KLS0tIGEvYXJjaC9taXBzL2JjbTQ3eHgvYm9hcmQuYw0K KysrIGIvYXJjaC9taXBzL2JjbTQ3eHgvYm9hcmQuYw0KQEAgLTM0NCw4ICsz NDQsNyBAQCB2b2lkIF9faW5pdCBiY200N3h4X2JvYXJkX2RldGVjdCh2b2lk KQ0KIA0KIAlib2FyZF9kZXRlY3RlZCA9IGJjbTQ3eHhfYm9hcmRfZ2V0X252 cmFtKCk7DQogCWJjbTQ3eHhfYm9hcmQuYm9hcmQgPSBib2FyZF9kZXRlY3Rl ZC0+Ym9hcmQ7DQotCXN0cmxjcHkoYmNtNDd4eF9ib2FyZC5uYW1lLCBib2Fy ZF9kZXRlY3RlZC0+bmFtZSwNCi0JCUJDTTQ3WFhfQk9BUkRfTUFYX05BTUUp Ow0KKwlzdHJhY3B5KGJjbTQ3eHhfYm9hcmQubmFtZSwgYm9hcmRfZGV0ZWN0 ZWQtPm5hbWUpOw0KIH0NCiANCiBlbnVtIGJjbTQ3eHhfYm9hcmQgYmNtNDd4 eF9ib2FyZF9nZXQodm9pZCkNCmRpZmYgLXUgLXAgYS9kcml2ZXJzL2h3bW9u L2FkdDc0MTEuYyBiL2RyaXZlcnMvaHdtb24vYWR0NzQxMS5jDQotLS0gYS9k cml2ZXJzL2h3bW9uL2FkdDc0MTEuYw0KKysrIGIvZHJpdmVycy9od21vbi9h ZHQ3NDExLmMNCkBAIC01OTAsNyArNTkwLDcgQEAgc3RhdGljIGludCBhZHQ3 NDExX2RldGVjdChzdHJ1Y3QgaTJjX2NsaQ0KIAkJcmV0dXJuIC1FTk9ERVY7 DQogCX0NCiANCi0Jc3RybGNweShpbmZvLT50eXBlLCAiYWR0NzQxMSIsIEky Q19OQU1FX1NJWkUpOw0KKwlzdHJhY3B5KGluZm8tPnR5cGUsICJhZHQ3NDEx Iik7DQogDQogCXJldHVybiAwOw0KIH0NCmRpZmYgLXUgLXAgYS9kcml2ZXJz L2h3bW9uL25jdDc4MDIuYyBiL2RyaXZlcnMvaHdtb24vbmN0NzgwMi5jDQot LS0gYS9kcml2ZXJzL2h3bW9uL25jdDc4MDIuYw0KKysrIGIvZHJpdmVycy9o d21vbi9uY3Q3ODAyLmMNCkBAIC05NTksNyArOTU5LDcgQEAgc3RhdGljIGlu dCBuY3Q3ODAyX2RldGVjdChzdHJ1Y3QgaTJjX2NsaQ0KIAlpZiAocmVnIDwg MCB8fCAocmVnICYgMHgzZikpDQogCQlyZXR1cm4gLUVOT0RFVjsNCiANCi0J c3RybGNweShpbmZvLT50eXBlLCAibmN0NzgwMiIsIEkyQ19OQU1FX1NJWkUp Ow0KKwlzdHJhY3B5KGluZm8tPnR5cGUsICJuY3Q3ODAyIik7DQogCXJldHVy biAwOw0KIH0NCiANCmRpZmYgLXUgLXAgYS9kcml2ZXJzL21lZGlhL3BjaS9j eDg4L2N4ODgtaTJjLmMgYi9kcml2ZXJzL21lZGlhL3BjaS9jeDg4L2N4ODgt aTJjLmMNCi0tLSBhL2RyaXZlcnMvbWVkaWEvcGNpL2N4ODgvY3g4OC1pMmMu Yw0KKysrIGIvZHJpdmVycy9tZWRpYS9wY2kvY3g4OC9jeDg4LWkyYy5jDQpA QCAtMTM3LDcgKzEzNyw3IEBAIGludCBjeDg4X2kyY19pbml0KHN0cnVjdCBj eDg4X2NvcmUgKmNvcmUNCiAJaTJjX3NldF9hZGFwZGF0YSgmY29yZS0+aTJj X2FkYXAsICZjb3JlLT52NGwyX2Rldik7DQogCWNvcmUtPmkyY19hZGFwLmFs Z29fZGF0YSA9ICZjb3JlLT5pMmNfYWxnbzsNCiAJY29yZS0+aTJjX2NsaWVu dC5hZGFwdGVyID0gJmNvcmUtPmkyY19hZGFwOw0KLQlzdHJzY3B5KGNvcmUt PmkyY19jbGllbnQubmFtZSwgImN4ODh4eCBpbnRlcm5hbCIsIEkyQ19OQU1F X1NJWkUpOw0KKwlzdHJhY3B5KGNvcmUtPmkyY19jbGllbnQubmFtZSwgImN4 ODh4eCBpbnRlcm5hbCIpOw0KIA0KIAljeDg4MDBfYml0X3NldHNjbChjb3Jl LCAxKTsNCiAJY3g4ODAwX2JpdF9zZXRzZGEoY29yZSwgMSk7DQpkaWZmIC11 IC1wIGEvbGliL2Vhcmx5Y3Bpby5jIGIvbGliL2Vhcmx5Y3Bpby5jDQotLS0g YS9saWIvZWFybHljcGlvLmMNCisrKyBiL2xpYi9lYXJseWNwaW8uYw0KQEAg LTEyNiw3ICsxMjYsNyBAQCBzdHJ1Y3QgY3Bpb19kYXRhIGZpbmRfY3Bpb19k YXRhKGNvbnN0IGNoDQogCQkJCSJGaWxlICVzIGV4Y2VlZGluZyBNQVhfQ1BJ T19GSUxFX05BTUUgWyVkXVxuIiwNCiAJCQkJcCwgTUFYX0NQSU9fRklMRV9O QU1FKTsNCiAJCQl9DQotCQkJc3RybGNweShjZC5uYW1lLCBwICsgbXlwYXRo c2l6ZSwgTUFYX0NQSU9fRklMRV9OQU1FKTsNCisJCQlzdHJhY3B5KGNkLm5h bWUsIHAgKyBteXBhdGhzaXplKTsNCiANCiAJCQljZC5kYXRhID0gKHZvaWQg KilkcHRyOw0KIAkJCWNkLnNpemUgPSBjaFtDX0ZJTEVTSVpFXTsNCmRpZmYg LXUgLXAgYS9kcml2ZXJzL2h3bW9uL21heDE2MTkuYyBiL2RyaXZlcnMvaHdt b24vbWF4MTYxOS5jDQotLS0gYS9kcml2ZXJzL2h3bW9uL21heDE2MTkuYw0K KysrIGIvZHJpdmVycy9od21vbi9tYXgxNjE5LmMNCkBAIC0yNDEsNyArMjQx LDcgQEAgc3RhdGljIGludCBtYXgxNjE5X2RldGVjdChzdHJ1Y3QgaTJjX2Ns aQ0KIAkJcmV0dXJuIC1FTk9ERVY7DQogCX0NCiANCi0Jc3RybGNweShpbmZv LT50eXBlLCAibWF4MTYxOSIsIEkyQ19OQU1FX1NJWkUpOw0KKwlzdHJhY3B5 KGluZm8tPnR5cGUsICJtYXgxNjE5Iik7DQogDQogCXJldHVybiAwOw0KIH0N CmRpZmYgLXUgLXAgYS9kcml2ZXJzL21lZGlhL3VzYi9kdmItdXNiLXYyL3pk MTMwMS5jIGIvZHJpdmVycy9tZWRpYS91c2IvZHZiLXVzYi12Mi96ZDEzMDEu Yw0KLS0tIGEvZHJpdmVycy9tZWRpYS91c2IvZHZiLXVzYi12Mi96ZDEzMDEu Yw0KKysrIGIvZHJpdmVycy9tZWRpYS91c2IvZHZiLXVzYi12Mi96ZDEzMDEu Yw0KQEAgLTE2OCw3ICsxNjgsNyBAQCBzdGF0aWMgaW50IHpkMTMwMV9mcm9u dGVuZF9hdHRhY2goc3RydWN0DQogCWRldi0+bXQyMDYwX3BkYXRhLmkyY193 cml0ZV9tYXggPSA5Ow0KIAlkZXYtPm10MjA2MF9wZGF0YS5kdmJfZnJvbnRl bmQgPSBmcm9udGVuZDsNCiAJbWVtc2V0KCZib2FyZF9pbmZvLCAwLCBzaXpl b2YoYm9hcmRfaW5mbykpOw0KLQlzdHJzY3B5KGJvYXJkX2luZm8udHlwZSwg Im10MjA2MCIsIEkyQ19OQU1FX1NJWkUpOw0KKwlzdHJhY3B5KGJvYXJkX2lu Zm8udHlwZSwgIm10MjA2MCIpOw0KIAlib2FyZF9pbmZvLmFkZHIgPSAweDYw Ow0KIAlib2FyZF9pbmZvLnBsYXRmb3JtX2RhdGEgPSAmZGV2LT5tdDIwNjBf cGRhdGE7DQogCXJlcXVlc3RfbW9kdWxlKCIlcyIsICJtdDIwNjAiKTsNCmRp ZmYgLXUgLXAgYS9kcml2ZXJzL3Njc2kvcWxhNHh4eC9xbDRfb3MuYyBiL2Ry aXZlcnMvc2NzaS9xbGE0eHh4L3FsNF9vcy5jDQotLS0gYS9kcml2ZXJzL3Nj c2kvcWxhNHh4eC9xbDRfb3MuYw0KKysrIGIvZHJpdmVycy9zY3NpL3FsYTR4 eHgvcWw0X29zLmMNCkBAIC03NjcsOCArNzY3LDcgQEAgc3RhdGljIGludCBx bGE0eHh4X2dldF9jaGFwX2xpc3Qoc3RydWN0DQogCQkJY29udGludWU7DQog DQogCQljaGFwX3JlYy0+Y2hhcF90YmxfaWR4ID0gaTsNCi0JCXN0cmxjcHko Y2hhcF9yZWMtPnVzZXJuYW1lLCBjaGFwX3RhYmxlLT5uYW1lLA0KLQkJCUlT Q1NJX0NIQVBfQVVUSF9OQU1FX01BWF9MRU4pOw0KKwkJc3RyYWNweShjaGFw X3JlYy0+dXNlcm5hbWUsIGNoYXBfdGFibGUtPm5hbWUpOw0KIAkJc3RybGNw eShjaGFwX3JlYy0+cGFzc3dvcmQsIGNoYXBfdGFibGUtPnNlY3JldCwNCiAJ CQlRTDRfQ0hBUF9NQVhfU0VDUkVUX0xFTik7DQogCQljaGFwX3JlYy0+cGFz c3dvcmRfbGVuZ3RoID0gY2hhcF90YWJsZS0+c2VjcmV0X2xlbjsNCkBAIC02 MjY1LDggKzYyNjQsOCBAQCBzdGF0aWMgdm9pZCBxbGE0eHh4X2dldF9wYXJh bV9kZGIoc3RydWN0DQogDQogCXRkZGItPnRwZ3QgPSBzZXNzLT50cGd0Ow0K IAl0ZGRiLT5wb3J0ID0gY29ubi0+cGVyc2lzdGVudF9wb3J0Ow0KLQlzdHJs Y3B5KHRkZGItPmlzY3NpX25hbWUsIHNlc3MtPnRhcmdldG5hbWUsIElTQ1NJ X05BTUVfU0laRSk7DQotCXN0cmxjcHkodGRkYi0+aXBfYWRkciwgY29ubi0+ cGVyc2lzdGVudF9hZGRyZXNzLCBEREJfSVBBRERSX0xFTik7DQorCXN0cmFj cHkodGRkYi0+aXNjc2lfbmFtZSwgc2Vzcy0+dGFyZ2V0bmFtZSk7DQorCXN0 cmFjcHkodGRkYi0+aXBfYWRkciwgY29ubi0+cGVyc2lzdGVudF9hZGRyZXNz KTsNCiB9DQogDQogc3RhdGljIHZvaWQgcWxhNHh4eF9jb252ZXJ0X3BhcmFt X2RkYihzdHJ1Y3QgZGV2X2RiX2VudHJ5ICpmd19kZGJfZW50cnksDQpAQCAt Nzc2OSw4ICs3NzY4LDcgQEAgc3RhdGljIGludCBxbGE0eHh4X3N5c2ZzX2Rk Yl9sb2dvdXQoc3RydQ0KIAkJZ290byBleGl0X2RkYl9sb2dvdXQ7DQogCX0N CiANCi0Jc3RybGNweShmbGFzaF90ZGRiLT5pc2NzaV9uYW1lLCBmbm9kZV9z ZXNzLT50YXJnZXRuYW1lLA0KLQkJSVNDU0lfTkFNRV9TSVpFKTsNCisJc3Ry YWNweShmbGFzaF90ZGRiLT5pc2NzaV9uYW1lLCBmbm9kZV9zZXNzLT50YXJn ZXRuYW1lKTsNCiANCiAJaWYgKCFzdHJuY21wKGZub2RlX3Nlc3MtPnBvcnRh bF90eXBlLCBQT1JUQUxfVFlQRV9JUFY2LCA0KSkNCiAJCXNwcmludGYoZmxh c2hfdGRkYi0+aXBfYWRkciwgIiVwSTYiLCBmbm9kZV9jb25uLT5pcGFkZHJl c3MpOw0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvaHdtb24vYWRtOTI0MC5jIGIv ZHJpdmVycy9od21vbi9hZG05MjQwLmMNCi0tLSBhL2RyaXZlcnMvaHdtb24v YWRtOTI0MC5jDQorKysgYi9kcml2ZXJzL2h3bW9uL2FkbTkyNDAuYw0KQEAg LTY1Nyw3ICs2NTcsNyBAQCBzdGF0aWMgaW50IGFkbTkyNDBfZGV0ZWN0KHN0 cnVjdCBpMmNfY2xpDQogCQkgbWFuX2lkID09IDB4MjMgPyAiQURNOTI0MCIg Og0KIAkJIG1hbl9pZCA9PSAweGRhID8gIkRTMTc4MCIgOiAiTE04MSIsIGRp ZV9yZXYpOw0KIA0KLQlzdHJsY3B5KGluZm8tPnR5cGUsIG5hbWUsIEkyQ19O QU1FX1NJWkUpOw0KKwlzdHJhY3B5KGluZm8tPnR5cGUsIG5hbWUpOw0KIA0K IAlyZXR1cm4gMDsNCiB9DQpkaWZmIC11IC1wIGEvZHJpdmVycy9od21vbi93 ODM3OTMuYyBiL2RyaXZlcnMvaHdtb24vdzgzNzkzLmMNCi0tLSBhL2RyaXZl cnMvaHdtb24vdzgzNzkzLmMNCisrKyBiL2RyaXZlcnMvaHdtb24vdzgzNzkz LmMNCkBAIC0xNjUxLDcgKzE2NTEsNyBAQCBzdGF0aWMgaW50IHc4Mzc5M19k ZXRlY3Qoc3RydWN0IGkyY19jbGllDQogCWlmIChjaGlwX2lkICE9IDB4N2Ip DQogCQlyZXR1cm4gLUVOT0RFVjsNCiANCi0Jc3RybGNweShpbmZvLT50eXBl LCAidzgzNzkzIiwgSTJDX05BTUVfU0laRSk7DQorCXN0cmFjcHkoaW5mby0+ dHlwZSwgInc4Mzc5MyIpOw0KIA0KIAlyZXR1cm4gMDsNCiB9DQpkaWZmIC11 IC1wIGEvZHJpdmVycy9tZWRpYS9wY2kvY3gyMzg4NS9jeDIzODg1LWkyYy5j IGIvZHJpdmVycy9tZWRpYS9wY2kvY3gyMzg4NS9jeDIzODg1LWkyYy5jDQot LS0gYS9kcml2ZXJzL21lZGlhL3BjaS9jeDIzODg1L2N4MjM4ODUtaTJjLmMN CisrKyBiL2RyaXZlcnMvbWVkaWEvcGNpL2N4MjM4ODUvY3gyMzg4NS1pMmMu Yw0KQEAgLTMzNCw3ICszMzQsNyBAQCBpbnQgY3gyMzg4NV9pMmNfcmVnaXN0 ZXIoc3RydWN0IGN4MjM4ODVfDQogCQl9Ow0KIA0KIAkJbWVtc2V0KCZpbmZv LCAwLCBzaXplb2Yoc3RydWN0IGkyY19ib2FyZF9pbmZvKSk7DQotCQlzdHJz Y3B5KGluZm8udHlwZSwgImlyX3ZpZGVvIiwgSTJDX05BTUVfU0laRSk7DQor CQlzdHJhY3B5KGluZm8udHlwZSwgImlyX3ZpZGVvIik7DQogCQkvKiBVc2Ug cXVpY2sgcmVhZCBjb21tYW5kIGZvciBwcm9iZSwgc29tZSBJUiBjaGlwcyBk b24ndA0KIAkJICogc3VwcG9ydCB3cml0ZXMgKi8NCiAJCWkyY19uZXdfcHJv YmVkX2RldmljZSgmYnVzLT5pMmNfYWRhcCwgJmluZm8sIGFkZHJfbGlzdCwN CmRpZmYgLXUgLXAgYS9kcml2ZXJzL2h3bW9uL2xtNzguYyBiL2RyaXZlcnMv aHdtb24vbG03OC5jDQotLS0gYS9kcml2ZXJzL2h3bW9uL2xtNzguYw0KKysr IGIvZHJpdmVycy9od21vbi9sbTc4LmMNCkBAIC02MTcsNyArNjE3LDcgQEAg c3RhdGljIGludCBsbTc4X2kyY19kZXRlY3Qoc3RydWN0IGkyY19jbA0KIAlp ZiAoaXNhKQ0KIAkJbXV0ZXhfdW5sb2NrKCZpc2EtPnVwZGF0ZV9sb2NrKTsN CiANCi0Jc3RybGNweShpbmZvLT50eXBlLCBjbGllbnRfbmFtZSwgSTJDX05B TUVfU0laRSk7DQorCXN0cmFjcHkoaW5mby0+dHlwZSwgY2xpZW50X25hbWUp Ow0KIA0KIAlyZXR1cm4gMDsNCiANCmRpZmYgLXUgLXAgYS9pbmNsdWRlL3Jk bWEvcmRtYV92dC5oIGIvaW5jbHVkZS9yZG1hL3JkbWFfdnQuaA0KLS0tIGEv aW5jbHVkZS9yZG1hL3JkbWFfdnQuaA0KKysrIGIvaW5jbHVkZS9yZG1hL3Jk bWFfdnQuaA0KQEAgLTQ4Niw3ICs0ODYsNyBAQCBzdGF0aWMgaW5saW5lIHZv aWQgcnZ0X3NldF9pYmRldl9uYW1lKHN0DQogCSAqIHRvIHdvcmsgYnkgc2V0 dGluZyB0aGUgbmFtZSBtYW51YWxseSBoZXJlLg0KIAkgKi8NCiAJZGV2X3Nl dF9uYW1lKCZyZGktPmliZGV2LmRldiwgZm10LCBuYW1lLCB1bml0KTsNCi0J c3RybGNweShyZGktPmliZGV2Lm5hbWUsIGRldl9uYW1lKCZyZGktPmliZGV2 LmRldiksIElCX0RFVklDRV9OQU1FX01BWCk7DQorCXN0cmFjcHkocmRpLT5p YmRldi5uYW1lLCBkZXZfbmFtZSgmcmRpLT5pYmRldi5kZXYpKTsNCiB9DQog DQogLyoqDQpkaWZmIC11IC1wIGEva2VybmVsL2Nncm91cC9jZ3JvdXAuYyBi L2tlcm5lbC9jZ3JvdXAvY2dyb3VwLmMNCi0tLSBhL2tlcm5lbC9jZ3JvdXAv Y2dyb3VwLmMNCisrKyBiL2tlcm5lbC9jZ3JvdXAvY2dyb3VwLmMNCkBAIC0x OTgwLDkgKzE5ODAsOSBAQCB2b2lkIGluaXRfY2dyb3VwX3Jvb3Qoc3RydWN0 IGNncm91cF9mc19jDQogDQogCXJvb3QtPmZsYWdzID0gY3R4LT5mbGFnczsN CiAJaWYgKGN0eC0+cmVsZWFzZV9hZ2VudCkNCi0JCXN0cnNjcHkocm9vdC0+ cmVsZWFzZV9hZ2VudF9wYXRoLCBjdHgtPnJlbGVhc2VfYWdlbnQsIFBBVEhf TUFYKTsNCisJCXN0cmFjcHkocm9vdC0+cmVsZWFzZV9hZ2VudF9wYXRoLCBj dHgtPnJlbGVhc2VfYWdlbnQpOw0KIAlpZiAoY3R4LT5uYW1lKQ0KLQkJc3Ry c2NweShyb290LT5uYW1lLCBjdHgtPm5hbWUsIE1BWF9DR1JPVVBfUk9PVF9O QU1FTEVOKTsNCisJCXN0cmFjcHkocm9vdC0+bmFtZSwgY3R4LT5uYW1lKTsN CiAJaWYgKGN0eC0+Y3B1c2V0X2Nsb25lX2NoaWxkcmVuKQ0KIAkJc2V0X2Jp dChDR1JQX0NQVVNFVF9DTE9ORV9DSElMRFJFTiwgJnJvb3QtPmNncnAuZmxh Z3MpOw0KIH0NCmRpZmYgLXUgLXAgYS9kcml2ZXJzL2NwdWlkbGUvY3B1aWRs ZS1wb3dlcm52LmMgYi9kcml2ZXJzL2NwdWlkbGUvY3B1aWRsZS1wb3dlcm52 LmMNCi0tLSBhL2RyaXZlcnMvY3B1aWRsZS9jcHVpZGxlLXBvd2VybnYuYw0K KysrIGIvZHJpdmVycy9jcHVpZGxlL2NwdWlkbGUtcG93ZXJudi5jDQpAQCAt MjM2LDcgKzIzNiw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRfcG93ZXJu dl9zdGF0ZShpbnQNCiAJCQkJICAgICB1bnNpZ25lZCBpbnQgZXhpdF9sYXRl bmN5LA0KIAkJCQkgICAgIHU2NCBwc3Njcl92YWwsIHU2NCBwc3Njcl9tYXNr KQ0KIHsNCi0Jc3RybGNweShwb3dlcm52X3N0YXRlc1tpbmRleF0ubmFtZSwg bmFtZSwgQ1BVSURMRV9OQU1FX0xFTik7DQorCXN0cmFjcHkocG93ZXJudl9z dGF0ZXNbaW5kZXhdLm5hbWUsIG5hbWUpOw0KIAlzdHJsY3B5KHBvd2VybnZf c3RhdGVzW2luZGV4XS5kZXNjLCBuYW1lLCBDUFVJRExFX05BTUVfTEVOKTsN CiAJcG93ZXJudl9zdGF0ZXNbaW5kZXhdLmZsYWdzID0gZmxhZ3M7DQogCXBv d2VybnZfc3RhdGVzW2luZGV4XS50YXJnZXRfcmVzaWRlbmN5ID0gdGFyZ2V0 X3Jlc2lkZW5jeTsNCmRpZmYgLXUgLXAgYS9kcml2ZXJzL2h3bW9uL2FzYzc2 MjEuYyBiL2RyaXZlcnMvaHdtb24vYXNjNzYyMS5jDQotLS0gYS9kcml2ZXJz L2h3bW9uL2FzYzc2MjEuYw0KKysrIGIvZHJpdmVycy9od21vbi9hc2M3NjIx LmMNCkBAIC0xMTUzLDggKzExNTMsNyBAQCBzdGF0aWMgaW50IGFzYzc2MjFf ZGV0ZWN0KHN0cnVjdCBpMmNfY2xpDQogDQogCQlpZiAoY29tcGFueSA9PSBh c2M3NjIxX2NoaXBzW2NoaXBfaW5kZXhdLmNvbXBhbnlfaWQgJiYNCiAJCSAg ICB2ZXJzdGVwID09IGFzYzc2MjFfY2hpcHNbY2hpcF9pbmRleF0udmVyc3Rl cF9pZCkgew0KLQkJCXN0cmxjcHkoaW5mby0+dHlwZSwgYXNjNzYyMV9jaGlw c1tjaGlwX2luZGV4XS5uYW1lLA0KLQkJCQlJMkNfTkFNRV9TSVpFKTsNCisJ CQlzdHJhY3B5KGluZm8tPnR5cGUsIGFzYzc2MjFfY2hpcHNbY2hpcF9pbmRl eF0ubmFtZSk7DQogDQogCQkJZGV2X2luZm8oJmFkYXB0ZXItPmRldiwgIk1h dGNoZWQgJXMgYXQgMHglMDJ4XG4iLA0KIAkJCQkgYXNjNzYyMV9jaGlwc1tj aGlwX2luZGV4XS5uYW1lLCBjbGllbnQtPmFkZHIpOw0KZGlmZiAtdSAtcCBh L2RyaXZlcnMvaHdtb24vbmN0NzkwNC5jIGIvZHJpdmVycy9od21vbi9uY3Q3 OTA0LmMNCi0tLSBhL2RyaXZlcnMvaHdtb24vbmN0NzkwNC5jDQorKysgYi9k cml2ZXJzL2h3bW9uL25jdDc5MDQuYw0KQEAgLTM5Nyw3ICszOTcsNyBAQCBz dGF0aWMgaW50IG5jdDc5MDRfZGV0ZWN0KHN0cnVjdCBpMmNfY2xpDQogCSAg ICAoaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhKGNsaWVudCwgQkFOS19TRUxf UkVHKSAmIDB4ZjgpICE9IDB4MDApDQogCQlyZXR1cm4gLUVOT0RFVjsNCiAN Ci0Jc3RybGNweShpbmZvLT50eXBlLCAibmN0NzkwNCIsIEkyQ19OQU1FX1NJ WkUpOw0KKwlzdHJhY3B5KGluZm8tPnR5cGUsICJuY3Q3OTA0Iik7DQogDQog CXJldHVybiAwOw0KIH0NCmRpZmYgLXUgLXAgYS9kcml2ZXJzL21lZGlhL3Vz Yi9kdmItdXNiLXYyL2FueXNlZS5jIGIvZHJpdmVycy9tZWRpYS91c2IvZHZi LXVzYi12Mi9hbnlzZWUuYw0KLS0tIGEvZHJpdmVycy9tZWRpYS91c2IvZHZi LXVzYi12Mi9hbnlzZWUuYw0KKysrIGIvZHJpdmVycy9tZWRpYS91c2IvZHZi LXVzYi12Mi9hbnlzZWUuYw0KQEAgLTYyOSw3ICs2MjksNyBAQCBzdGF0aWMg aW50IGFueXNlZV9hZGRfaTJjX2RldihzdHJ1Y3QgZHZiDQogCQkucGxhdGZv cm1fZGF0YSA9IHBsYXRmb3JtX2RhdGEsDQogCX07DQogDQotCXN0cnNjcHko Ym9hcmRfaW5mby50eXBlLCB0eXBlLCBJMkNfTkFNRV9TSVpFKTsNCisJc3Ry YWNweShib2FyZF9pbmZvLnR5cGUsIHR5cGUpOw0KIA0KIAkvKiBmaW5kIGZp cnN0IGZyZWUgY2xpZW50ICovDQogCWZvciAobnVtID0gMDsgbnVtIDwgQU5Z U0VFX0kyQ19DTElFTlRfTUFYOyBudW0rKykgew0KZGlmZiAtdSAtcCBhL2Ry aXZlcnMvbnZtZS9ob3N0L2ZhYnJpY3MuYyBiL2RyaXZlcnMvbnZtZS9ob3N0 L2ZhYnJpY3MuYw0KLS0tIGEvZHJpdmVycy9udm1lL2hvc3QvZmFicmljcy5j DQorKysgYi9kcml2ZXJzL252bWUvaG9zdC9mYWJyaWNzLmMNCkBAIC00OSw3 ICs0OSw3IEBAIHN0YXRpYyBzdHJ1Y3QgbnZtZl9ob3N0ICpudm1mX2hvc3Rf YWRkKGMNCiAJCWdvdG8gb3V0X3VubG9jazsNCiANCiAJa3JlZl9pbml0KCZo b3N0LT5yZWYpOw0KLQlzdHJsY3B5KGhvc3QtPm5xbiwgaG9zdG5xbiwgTlZN Rl9OUU5fU0laRSk7DQorCXN0cmFjcHkoaG9zdC0+bnFuLCBob3N0bnFuKTsN CiANCiAJbGlzdF9hZGRfdGFpbCgmaG9zdC0+bGlzdCwgJm52bWZfaG9zdHMp Ow0KIG91dF91bmxvY2s6DQpkaWZmIC11IC1wIGEvZHJpdmVycy9od21vbi9s bTgzLmMgYi9kcml2ZXJzL2h3bW9uL2xtODMuYw0KLS0tIGEvZHJpdmVycy9o d21vbi9sbTgzLmMNCisrKyBiL2RyaXZlcnMvaHdtb24vbG04My5jDQpAQCAt MzEyLDcgKzMxMiw3IEBAIHN0YXRpYyBpbnQgbG04M19kZXRlY3Qoc3RydWN0 IGkyY19jbGllbnQNCiAJCXJldHVybiAtRU5PREVWOw0KIAl9DQogDQotCXN0 cmxjcHkoaW5mby0+dHlwZSwgbmFtZSwgSTJDX05BTUVfU0laRSk7DQorCXN0 cmFjcHkoaW5mby0+dHlwZSwgbmFtZSk7DQogDQogCXJldHVybiAwOw0KIH0N CmRpZmYgLXUgLXAgYS9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX3NzaWYuYyBi L2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfc3NpZi5jDQotLS0gYS9kcml2ZXJz L2NoYXIvaXBtaS9pcG1pX3NzaWYuYw0KKysrIGIvZHJpdmVycy9jaGFyL2lw bWkvaXBtaV9zc2lmLmMNCkBAIC0xMzk3LDcgKzEzOTcsNyBAQCBzdGF0aWMg aW50IHNzaWZfZGV0ZWN0KHN0cnVjdCBpMmNfY2xpZW50DQogCWlmIChydikN CiAJCXJ2ID0gLUVOT0RFVjsNCiAJZWxzZQ0KLQkJc3RybGNweShpbmZvLT50 eXBlLCBERVZJQ0VfTkFNRSwgSTJDX05BTUVfU0laRSk7DQorCQlzdHJhY3B5 KGluZm8tPnR5cGUsIERFVklDRV9OQU1FKTsNCiAJa2ZyZWUocmVzcCk7DQog CXJldHVybiBydjsNCiB9DQpkaWZmIC11IC1wIGEvZHJpdmVycy9od21vbi9n bDUxOHNtLmMgYi9kcml2ZXJzL2h3bW9uL2dsNTE4c20uYw0KLS0tIGEvZHJp dmVycy9od21vbi9nbDUxOHNtLmMNCisrKyBiL2RyaXZlcnMvaHdtb24vZ2w1 MThzbS5jDQpAQCAtNTg2LDcgKzU4Niw3IEBAIHN0YXRpYyBpbnQgZ2w1MThf ZGV0ZWN0KHN0cnVjdCBpMmNfY2xpZW4NCiAJaWYgKHJldiAhPSAweDAwICYm IHJldiAhPSAweDgwKQ0KIAkJcmV0dXJuIC1FTk9ERVY7DQogDQotCXN0cmxj cHkoaW5mby0+dHlwZSwgImdsNTE4c20iLCBJMkNfTkFNRV9TSVpFKTsNCisJ c3RyYWNweShpbmZvLT50eXBlLCAiZ2w1MThzbSIpOw0KIA0KIAlyZXR1cm4g MDsNCiB9DQpkaWZmIC11IC1wIGEvZHJpdmVycy9udm1lL2hvc3QvY29yZS5j IGIvZHJpdmVycy9udm1lL2hvc3QvY29yZS5jDQotLS0gYS9kcml2ZXJzL252 bWUvaG9zdC9jb3JlLmMNCisrKyBiL2RyaXZlcnMvbnZtZS9ob3N0L2NvcmUu Yw0KQEAgLTIyOTIsNyArMjI5Miw3IEBAIHN0YXRpYyB2b2lkIG52bWVfaW5p dF9zdWJucW4oc3RydWN0IG52bWUNCiAJaWYoIShjdHJsLT5xdWlya3MgJiBO Vk1FX1FVSVJLX0lHTk9SRV9ERVZfU1VCTlFOKSkgew0KIAkJbnFubGVuID0g c3RybmxlbihpZC0+c3VibnFuLCBOVk1GX05RTl9TSVpFKTsNCiAJCWlmIChu cW5sZW4gPiAwICYmIG5xbmxlbiA8IE5WTUZfTlFOX1NJWkUpIHsNCi0JCQlz dHJsY3B5KHN1YnN5cy0+c3VibnFuLCBpZC0+c3VibnFuLCBOVk1GX05RTl9T SVpFKTsNCisJCQlzdHJhY3B5KHN1YnN5cy0+c3VibnFuLCBpZC0+c3VibnFu KTsNCiAJCQlyZXR1cm47DQogCQl9DQogDQpkaWZmIC11IC1wIGEvZHJpdmVy cy9od21vbi9sbTk1MjM0LmMgYi9kcml2ZXJzL2h3bW9uL2xtOTUyMzQuYw0K LS0tIGEvZHJpdmVycy9od21vbi9sbTk1MjM0LmMNCisrKyBiL2RyaXZlcnMv aHdtb24vbG05NTIzNC5jDQpAQCAtNjQ0LDcgKzY0NCw3IEBAIHN0YXRpYyBp bnQgbG05NTIzNF9kZXRlY3Qoc3RydWN0IGkyY19jbGkNCiAJaWYgKHZhbCAm IG1vZGVsX21hc2spDQogCQlyZXR1cm4gLUVOT0RFVjsNCiANCi0Jc3RybGNw eShpbmZvLT50eXBlLCBuYW1lLCBJMkNfTkFNRV9TSVpFKTsNCisJc3RyYWNw eShpbmZvLT50eXBlLCBuYW1lKTsNCiAJcmV0dXJuIDA7DQogfQ0KIA0KZGlm ZiAtdSAtcCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hwL2hwMTAwLmMgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9ocC9ocDEwMC5jDQotLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9ocC9ocDEwMC5jDQorKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9ocC9ocDEwMC5jDQpAQCAtNjQzLDcgKzY0Myw3IEBAIHN0YXRp YyBpbnQgaHAxMDBfcHJvYmUxKHN0cnVjdCBuZXRfZGV2aWMNCiAJbHAgPSBu ZXRkZXZfcHJpdihkZXYpOw0KIA0KIAlzcGluX2xvY2tfaW5pdCgmbHAtPmxv Y2spOw0KLQlzdHJsY3B5KGxwLT5pZCwgZWlkLCBIUDEwMF9TSUdfTEVOKTsN CisJc3RyYWNweShscC0+aWQsIGVpZCk7DQogCWxwLT5jaGlwID0gY2hpcDsN CiAJbHAtPm1vZGUgPSBsb2NhbF9tb2RlOw0KIAlscC0+YnVzID0gYnVzOw0K ZGlmZiAtdSAtcCBhL2RyaXZlcnMvc2NzaS9iZmEvYmZhX2Zjc19scG9ydC5j IGIvZHJpdmVycy9zY3NpL2JmYS9iZmFfZmNzX2xwb3J0LmMNCi0tLSBhL2Ry aXZlcnMvc2NzaS9iZmEvYmZhX2Zjc19scG9ydC5jDQorKysgYi9kcml2ZXJz L3Njc2kvYmZhL2JmYV9mY3NfbHBvcnQuYw0KQEAgLTI2NTUsMTMgKzI2NTUs MTMgQEAgYmZhX2Zjc19mZG1pX2dldF9oYmFhdHRyKHN0cnVjdCBiZmFfZmNz Xw0KIAliZmFfZmNzX2ZkbWlfZ2V0X3BvcnRhdHRyKGZkbWksICZmY3NfcG9y dF9hdHRyKTsNCiAJaGJhX2F0dHItPm1heF9jdF9weWxkID0gZmNzX3BvcnRf YXR0ci5tYXhfZnJtX3NpemU7DQogDQotCXN0cmxjcHkoaGJhX2F0dHItPm5v ZGVfc3ltX25hbWUuc3ltbmFtZSwNCi0JCXBvcnQtPnBvcnRfY2ZnLm5vZGVf c3ltX25hbWUuc3ltbmFtZSwgQkZBX1NZTU5BTUVfTUFYTEVOKTsNCisJc3Ry YWNweShoYmFfYXR0ci0+bm9kZV9zeW1fbmFtZS5zeW1uYW1lLA0KKwkJcG9y dC0+cG9ydF9jZmcubm9kZV9zeW1fbmFtZS5zeW1uYW1lKTsNCiAJc3RyY3B5 KGhiYV9hdHRyLT52ZW5kb3JfaW5mbywgIlFMb2dpYyIpOw0KIAloYmFfYXR0 ci0+bnVtX3BvcnRzID0NCiAJCWNwdV90b19iZTMyKGJmYV9pb2NfZ2V0X25w b3J0cygmcG9ydC0+ZmNzLT5iZmEtPmlvYykpOw0KIAloYmFfYXR0ci0+ZmFi cmljX25hbWUgPSBwb3J0LT5mYWJyaWMtPmxwcy0+cHJfbnd3bjsNCi0Jc3Ry bGNweShoYmFfYXR0ci0+Ymlvc192ZXIsIGhiYV9hdHRyLT5vcHRpb25fcm9t X3ZlciwgQkZBX1ZFUlNJT05fTEVOKTsNCisJc3RyYWNweShoYmFfYXR0ci0+ Ymlvc192ZXIsIGhiYV9hdHRyLT5vcHRpb25fcm9tX3Zlcik7DQogDQogfQ0K IA0KQEAgLTI3NDAsOCArMjc0MCw4IEBAIGJmYV9mY3NfZmRtaV9nZXRfcG9y dGF0dHIoc3RydWN0IGJmYV9mY3MNCiAJcG9ydF9hdHRyLT5ub2RlX25hbWUg PSBiZmFfZmNzX2xwb3J0X2dldF9ud3duKHBvcnQpOw0KIAlwb3J0X2F0dHIt PnBvcnRfbmFtZSA9IGJmYV9mY3NfbHBvcnRfZ2V0X3B3d24ocG9ydCk7DQog DQotCXN0cmxjcHkocG9ydF9hdHRyLT5wb3J0X3N5bV9uYW1lLnN5bW5hbWUs DQotCQliZmFfZmNzX2xwb3J0X2dldF9wc3ltX25hbWUocG9ydCkuc3ltbmFt ZSwgQkZBX1NZTU5BTUVfTUFYTEVOKTsNCisJc3RyYWNweShwb3J0X2F0dHIt PnBvcnRfc3ltX25hbWUuc3ltbmFtZSwNCisJCWJmYV9mY3NfbHBvcnRfZ2V0 X3BzeW1fbmFtZShwb3J0KS5zeW1uYW1lKTsNCiAJYmZhX2Zjc19scG9ydF9n ZXRfYXR0cihwb3J0LCAmbHBvcnRfYXR0cik7DQogCXBvcnRfYXR0ci0+cG9y dF90eXBlID0gY3B1X3RvX2JlMzIobHBvcnRfYXR0ci5wb3J0X3R5cGUpOw0K IAlwb3J0X2F0dHItPnNjb3MgPSBwcG9ydF9hdHRyLmNvc19zdXBwb3J0ZWQ7 DQpkaWZmIC11IC1wIGEvZHJpdmVycy9od21vbi9hZGMxMjhkODE4LmMgYi9k cml2ZXJzL2h3bW9uL2FkYzEyOGQ4MTguYw0KLS0tIGEvZHJpdmVycy9od21v bi9hZGMxMjhkODE4LmMNCisrKyBiL2RyaXZlcnMvaHdtb24vYWRjMTI4ZDgx OC5jDQpAQCAtMzg0LDcgKzM4NCw3IEBAIHN0YXRpYyBpbnQgYWRjMTI4X2Rl dGVjdChzdHJ1Y3QgaTJjX2NsaWUNCiAJaWYgKGkyY19zbWJ1c19yZWFkX2J5 dGVfZGF0YShjbGllbnQsIEFEQzEyOF9SRUdfQlVTWV9TVEFUVVMpICYgMHhm YykNCiAJCXJldHVybiAtRU5PREVWOw0KIA0KLQlzdHJsY3B5KGluZm8tPnR5 cGUsICJhZGMxMjhkODE4IiwgSTJDX05BTUVfU0laRSk7DQorCXN0cmFjcHko aW5mby0+dHlwZSwgImFkYzEyOGQ4MTgiKTsNCiANCiAJcmV0dXJuIDA7DQog fQ0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvaHdtb24vdG1wNDAxLmMgYi9kcml2 ZXJzL2h3bW9uL3RtcDQwMS5jDQotLS0gYS9kcml2ZXJzL2h3bW9uL3RtcDQw MS5jDQorKysgYi9kcml2ZXJzL2h3bW9uL3RtcDQwMS5jDQpAQCAtNjc4LDcg KzY3OCw3IEBAIHN0YXRpYyBpbnQgdG1wNDAxX2RldGVjdChzdHJ1Y3QgaTJj X2NsaWUNCiAJaWYgKHJlZyA+IDE1KQ0KIAkJcmV0dXJuIC1FTk9ERVY7DQog DQotCXN0cmxjcHkoaW5mby0+dHlwZSwgdG1wNDAxX2lkW2tpbmRdLm5hbWUs IEkyQ19OQU1FX1NJWkUpOw0KKwlzdHJhY3B5KGluZm8tPnR5cGUsIHRtcDQw MV9pZFtraW5kXS5uYW1lKTsNCiANCiAJcmV0dXJuIDA7DQogfQ0KZGlmZiAt dSAtcCBhL2RyaXZlcnMvbmV0L25ldGNvbnNvbGUuYyBiL2RyaXZlcnMvbmV0 L25ldGNvbnNvbGUuYw0KLS0tIGEvZHJpdmVycy9uZXQvbmV0Y29uc29sZS5j DQorKysgYi9kcml2ZXJzL25ldC9uZXRjb25zb2xlLmMNCkBAIC0xNzcsNyAr MTc3LDcgQEAgc3RhdGljIHN0cnVjdCBuZXRjb25zb2xlX3RhcmdldCAqYWxs b2NfcA0KIAkJZ290byBmYWlsOw0KIA0KIAludC0+bnAubmFtZSA9ICJuZXRj b25zb2xlIjsNCi0Jc3RybGNweShudC0+bnAuZGV2X25hbWUsICJldGgwIiwg SUZOQU1TSVopOw0KKwlzdHJhY3B5KG50LT5ucC5kZXZfbmFtZSwgImV0aDAi KTsNCiAJbnQtPm5wLmxvY2FsX3BvcnQgPSA2NjY1Ow0KIAludC0+bnAucmVt b3RlX3BvcnQgPSA2NjY2Ow0KIAlldGhfYnJvYWRjYXN0X2FkZHIobnQtPm5w LnJlbW90ZV9tYWMpOw0KQEAgLTQxMyw3ICs0MTMsNyBAQCBzdGF0aWMgc3Np emVfdCBkZXZfbmFtZV9zdG9yZShzdHJ1Y3QgY29uDQogCQlyZXR1cm4gLUVJ TlZBTDsNCiAJfQ0KIA0KLQlzdHJsY3B5KG50LT5ucC5kZXZfbmFtZSwgYnVm LCBJRk5BTVNJWik7DQorCXN0cmFjcHkobnQtPm5wLmRldl9uYW1lLCBidWYp Ow0KIA0KIAkvKiBHZXQgcmlkIG9mIHBvc3NpYmxlIHRyYWlsaW5nIG5ld2xp bmUgZnJvbSBlY2hvKDEpICovDQogCWxlbiA9IHN0cm5sZW4obnQtPm5wLmRl dl9uYW1lLCBJRk5BTVNJWik7DQpAQCAtNjI5LDcgKzYyOSw3IEBAIHN0YXRp YyBzdHJ1Y3QgY29uZmlnX2l0ZW0gKm1ha2VfbmV0Y29uc28NCiAJCXJldHVy biBFUlJfUFRSKC1FTk9NRU0pOw0KIA0KIAludC0+bnAubmFtZSA9ICJuZXRj b25zb2xlIjsNCi0Jc3RybGNweShudC0+bnAuZGV2X25hbWUsICJldGgwIiwg SUZOQU1TSVopOw0KKwlzdHJhY3B5KG50LT5ucC5kZXZfbmFtZSwgImV0aDAi KTsNCiAJbnQtPm5wLmxvY2FsX3BvcnQgPSA2NjY1Ow0KIAludC0+bnAucmVt b3RlX3BvcnQgPSA2NjY2Ow0KIAlldGhfYnJvYWRjYXN0X2FkZHIobnQtPm5w LnJlbW90ZV9tYWMpOw0KQEAgLTcwNyw3ICs3MDcsNyBAQCByZXN0YXJ0Og0K IAkJaWYgKG50LT5ucC5kZXYgPT0gZGV2KSB7DQogCQkJc3dpdGNoIChldmVu dCkgew0KIAkJCWNhc2UgTkVUREVWX0NIQU5HRU5BTUU6DQotCQkJCXN0cmxj cHkobnQtPm5wLmRldl9uYW1lLCBkZXYtPm5hbWUsIElGTkFNU0laKTsNCisJ CQkJc3RyYWNweShudC0+bnAuZGV2X25hbWUsIGRldi0+bmFtZSk7DQogCQkJ CWJyZWFrOw0KIAkJCWNhc2UgTkVUREVWX1JFTEVBU0U6DQogCQkJY2FzZSBO RVRERVZfSk9JTjoNCmRpZmYgLXUgLXAgYS9kcml2ZXJzL3RhcmdldC90YXJn ZXRfY29yZV91c2VyLmMgYi9kcml2ZXJzL3RhcmdldC90YXJnZXRfY29yZV91 c2VyLmMNCi0tLSBhL2RyaXZlcnMvdGFyZ2V0L3RhcmdldF9jb3JlX3VzZXIu Yw0KKysrIGIvZHJpdmVycy90YXJnZXQvdGFyZ2V0X2NvcmVfdXNlci5jDQpA QCAtMjM0NCwxNCArMjM0NCwxNCBAQCBzdGF0aWMgc3NpemVfdCB0Y211X2Rl dl9jb25maWdfc3RvcmUoc3RyDQogCQkJcHJfZXJyKCJVbmFibGUgdG8gcmVj b25maWd1cmUgZGV2aWNlXG4iKTsNCiAJCQlyZXR1cm4gcmV0Ow0KIAkJfQ0K LQkJc3RybGNweSh1ZGV2LT5kZXZfY29uZmlnLCBwYWdlLCBUQ01VX0NPTkZJ R19MRU4pOw0KKwkJc3RyYWNweSh1ZGV2LT5kZXZfY29uZmlnLCBwYWdlKTsN CiANCiAJCXJldCA9IHRjbXVfdXBkYXRlX3Vpb19pbmZvKHVkZXYpOw0KIAkJ aWYgKHJldCkNCiAJCQlyZXR1cm4gcmV0Ow0KIAkJcmV0dXJuIGNvdW50Ow0K IAl9DQotCXN0cmxjcHkodWRldi0+ZGV2X2NvbmZpZywgcGFnZSwgVENNVV9D T05GSUdfTEVOKTsNCisJc3RyYWNweSh1ZGV2LT5kZXZfY29uZmlnLCBwYWdl KTsNCiANCiAJcmV0dXJuIGNvdW50Ow0KIH0NCmRpZmYgLXUgLXAgYS9zb3Vu ZC9hb2EvY29kZWNzL29ueXguYyBiL3NvdW5kL2FvYS9jb2RlY3Mvb255eC5j DQotLS0gYS9zb3VuZC9hb2EvY29kZWNzL29ueXguYw0KKysrIGIvc291bmQv YW9hL2NvZGVjcy9vbnl4LmMNCkBAIC0xMDExLDcgKzEwMTEsNyBAQCBzdGF0 aWMgaW50IG9ueXhfaTJjX3Byb2JlKHN0cnVjdCBpMmNfY2xpDQogCQlnb3Rv IGZhaWw7DQogCX0NCiANCi0Jc3RybGNweShvbnl4LT5jb2RlYy5uYW1lLCAi b255eCIsIE1BWF9DT0RFQ19OQU1FX0xFTik7DQorCXN0cmFjcHkob255eC0+ Y29kZWMubmFtZSwgIm9ueXgiKTsNCiAJb255eC0+Y29kZWMub3duZXIgPSBU SElTX01PRFVMRTsNCiAJb255eC0+Y29kZWMuaW5pdCA9IG9ueXhfaW5pdF9j b2RlYzsNCiAJb255eC0+Y29kZWMuZXhpdCA9IG9ueXhfZXhpdF9jb2RlYzsN CmRpZmYgLXUgLXAgYS9kcml2ZXJzL2h3bW9uL2xtOTAuYyBiL2RyaXZlcnMv aHdtb24vbG05MC5jDQotLS0gYS9kcml2ZXJzL2h3bW9uL2xtOTAuYw0KKysr IGIvZHJpdmVycy9od21vbi9sbTkwLmMNCkBAIC0xNjEwLDcgKzE2MTAsNyBA QCBzdGF0aWMgaW50IGxtOTBfZGV0ZWN0KHN0cnVjdCBpMmNfY2xpZW50DQog CQlyZXR1cm4gLUVOT0RFVjsNCiAJfQ0KIA0KLQlzdHJsY3B5KGluZm8tPnR5 cGUsIG5hbWUsIEkyQ19OQU1FX1NJWkUpOw0KKwlzdHJhY3B5KGluZm8tPnR5 cGUsIG5hbWUpOw0KIA0KIAlyZXR1cm4gMDsNCiB9DQpkaWZmIC11IC1wIGEv ZHJpdmVycy9od21vbi9sbTg1LmMgYi9kcml2ZXJzL2h3bW9uL2xtODUuYw0K LS0tIGEvZHJpdmVycy9od21vbi9sbTg1LmMNCisrKyBiL2RyaXZlcnMvaHdt b24vbG04NS5jDQpAQCAtMTUzOSw3ICsxNTM5LDcgQEAgc3RhdGljIGludCBs bTg1X2RldGVjdChzdHJ1Y3QgaTJjX2NsaWVudA0KIAlpZiAoIXR5cGVfbmFt ZSkNCiAJCXJldHVybiAtRU5PREVWOw0KIA0KLQlzdHJsY3B5KGluZm8tPnR5 cGUsIHR5cGVfbmFtZSwgSTJDX05BTUVfU0laRSk7DQorCXN0cmFjcHkoaW5m by0+dHlwZSwgdHlwZV9uYW1lKTsNCiANCiAJcmV0dXJuIDA7DQogfQ0KZGlm ZiAtdSAtcCBhL2RyaXZlcnMvbWVkaWEvcGNpL2J0OHh4L2J0dHYtaTJjLmMg Yi9kcml2ZXJzL21lZGlhL3BjaS9idDh4eC9idHR2LWkyYy5jDQotLS0gYS9k cml2ZXJzL21lZGlhL3BjaS9idDh4eC9idHR2LWkyYy5jDQorKysgYi9kcml2 ZXJzL21lZGlhL3BjaS9idDh4eC9idHR2LWkyYy5jDQpAQCAtMzM1LDcgKzMz NSw3IEBAIHN0YXRpYyB2b2lkIGRvX2kyY19zY2FuKGNoYXIgKm5hbWUsIHN0 cnUNCiAvKiBpbml0ICsgcmVnaXN0ZXIgaTJjIGFkYXB0ZXIgKi8NCiBpbnQg aW5pdF9idHR2X2kyYyhzdHJ1Y3QgYnR0diAqYnR2KQ0KIHsNCi0Jc3Ryc2Nw eShidHYtPmkyY19jbGllbnQubmFtZSwgImJ0dHYgaW50ZXJuYWwiLCBJMkNf TkFNRV9TSVpFKTsNCisJc3RyYWNweShidHYtPmkyY19jbGllbnQubmFtZSwg ImJ0dHYgaW50ZXJuYWwiKTsNCiANCiAJaWYgKGkyY19odykNCiAJCWJ0di0+ dXNlX2kyY19odyA9IDE7DQpkaWZmIC11IC1wIGEvZHJpdmVycy9tZWRpYS91 c2IvZHZiLXVzYi9kaWIwNzAwX2RldmljZXMuYyBiL2RyaXZlcnMvbWVkaWEv dXNiL2R2Yi11c2IvZGliMDcwMF9kZXZpY2VzLmMNCi0tLSBhL2RyaXZlcnMv bWVkaWEvdXNiL2R2Yi11c2IvZGliMDcwMF9kZXZpY2VzLmMNCisrKyBiL2Ry aXZlcnMvbWVkaWEvdXNiL2R2Yi11c2IvZGliMDcwMF9kZXZpY2VzLmMNCkBA IC0zNzYwLDcgKzM3NjAsNyBAQCBzdGF0aWMgaW50IHhib3hfb25lX2F0dGFj aChzdHJ1Y3QgZHZiX3VzDQogCW1uODg0NzJfY29uZmlnLnRzX21vZGUgPSBQ QVJBTExFTF9UU19NT0RFOw0KIAltbjg4NDcyX2NvbmZpZy50c19jbG9jayA9 IEZJWEVEX1RTX0NMT0NLOw0KIAltZW1zZXQoJmluZm8sIDAsIHNpemVvZihz dHJ1Y3QgaTJjX2JvYXJkX2luZm8pKTsNCi0Jc3Ryc2NweShpbmZvLnR5cGUs ICJtbjg4NDcyIiwgSTJDX05BTUVfU0laRSk7DQorCXN0cmFjcHkoaW5mby50 eXBlLCAibW44ODQ3MiIpOw0KIAlpbmZvLmFkZHIgPSAweDE4Ow0KIAlpbmZv LnBsYXRmb3JtX2RhdGEgPSAmbW44ODQ3Ml9jb25maWc7DQogCXJlcXVlc3Rf bW9kdWxlKGluZm8udHlwZSk7DQpAQCAtMzc4Nyw3ICszNzg3LDcgQEAgc3Rh dGljIGludCB4Ym94X29uZV9hdHRhY2goc3RydWN0IGR2Yl91cw0KIAl0ZGEx ODI1MF9jb25maWcuZmUgPSBhZGFwLT5mZV9hZGFwWzBdLmZlOw0KIA0KIAlt ZW1zZXQoJmluZm8sIDAsIHNpemVvZihzdHJ1Y3QgaTJjX2JvYXJkX2luZm8p KTsNCi0Jc3Ryc2NweShpbmZvLnR5cGUsICJ0ZGExODI1MCIsIEkyQ19OQU1F X1NJWkUpOw0KKwlzdHJhY3B5KGluZm8udHlwZSwgInRkYTE4MjUwIik7DQog CWluZm8uYWRkciA9IDB4NjA7DQogCWluZm8ucGxhdGZvcm1fZGF0YSA9ICZ0 ZGExODI1MF9jb25maWc7DQogDQpkaWZmIC11IC1wIGEvZHJpdmVycy9od21v bi9sbTYzLmMgYi9kcml2ZXJzL2h3bW9uL2xtNjMuYw0KLS0tIGEvZHJpdmVy cy9od21vbi9sbTYzLmMNCisrKyBiL2RyaXZlcnMvaHdtb24vbG02My5jDQpA QCAtOTk2LDExICs5OTYsMTEgQEAgc3RhdGljIGludCBsbTYzX2RldGVjdChz dHJ1Y3QgaTJjX2NsaWVudA0KIAl9DQogDQogCWlmIChjaGlwX2lkID09IDB4 NDEgJiYgYWRkcmVzcyA9PSAweDRjKQ0KLQkJc3RybGNweShpbmZvLT50eXBl LCAibG02MyIsIEkyQ19OQU1FX1NJWkUpOw0KKwkJc3RyYWNweShpbmZvLT50 eXBlLCAibG02MyIpOw0KIAllbHNlIGlmIChjaGlwX2lkID09IDB4NTEgJiYg KGFkZHJlc3MgPT0gMHgxOCB8fCBhZGRyZXNzID09IDB4NGUpKQ0KLQkJc3Ry bGNweShpbmZvLT50eXBlLCAibG02NCIsIEkyQ19OQU1FX1NJWkUpOw0KKwkJ c3RyYWNweShpbmZvLT50eXBlLCAibG02NCIpOw0KIAllbHNlIGlmIChjaGlw X2lkID09IDB4NDkgJiYgYWRkcmVzcyA9PSAweDRjKQ0KLQkJc3RybGNweShp bmZvLT50eXBlLCAibG05NjE2MyIsIEkyQ19OQU1FX1NJWkUpOw0KKwkJc3Ry YWNweShpbmZvLT50eXBlLCAibG05NjE2MyIpOw0KIAllbHNlDQogCQlyZXR1 cm4gLUVOT0RFVjsNCiANCmRpZmYgLXUgLXAgYS9kcml2ZXJzL21lZGlhL3Vz Yi9kdmItdXNiLXYyL3J0bDI4eHh1LmMgYi9kcml2ZXJzL21lZGlhL3VzYi9k dmItdXNiLXYyL3J0bDI4eHh1LmMNCi0tLSBhL2RyaXZlcnMvbWVkaWEvdXNi L2R2Yi11c2ItdjIvcnRsMjh4eHUuYw0KKysrIGIvZHJpdmVycy9tZWRpYS91 c2IvZHZiLXVzYi12Mi9ydGwyOHh4dS5jDQpAQCAtNjkzLDcgKzY5Myw3IEBA IHN0YXRpYyBpbnQgcnRsMjgzMXVfZnJvbnRlbmRfYXR0YWNoKHN0cnUNCiAN CiAJLyogYXR0YWNoIGRlbW9kdWxhdG9yICovDQogCW1lbXNldCgmYm9hcmRf aW5mbywgMCwgc2l6ZW9mKGJvYXJkX2luZm8pKTsNCi0Jc3Ryc2NweShib2Fy ZF9pbmZvLnR5cGUsICJydGwyODMwIiwgSTJDX05BTUVfU0laRSk7DQorCXN0 cmFjcHkoYm9hcmRfaW5mby50eXBlLCAicnRsMjgzMCIpOw0KIAlib2FyZF9p bmZvLmFkZHIgPSAweDEwOw0KIAlib2FyZF9pbmZvLnBsYXRmb3JtX2RhdGEg PSBwZGF0YTsNCiAJcmVxdWVzdF9tb2R1bGUoIiVzIiwgYm9hcmRfaW5mby50 eXBlKTsNCkBAIC05MTQsNyArOTE0LDcgQEAgc3RhdGljIGludCBydGwyODMy dV9mcm9udGVuZF9hdHRhY2goc3RydQ0KIA0KIAkvKiBhdHRhY2ggZGVtb2R1 bGF0b3IgKi8NCiAJbWVtc2V0KCZib2FyZF9pbmZvLCAwLCBzaXplb2YoYm9h cmRfaW5mbykpOw0KLQlzdHJzY3B5KGJvYXJkX2luZm8udHlwZSwgInJ0bDI4 MzIiLCBJMkNfTkFNRV9TSVpFKTsNCisJc3RyYWNweShib2FyZF9pbmZvLnR5 cGUsICJydGwyODMyIik7DQogCWJvYXJkX2luZm8uYWRkciA9IDB4MTA7DQog CWJvYXJkX2luZm8ucGxhdGZvcm1fZGF0YSA9IHBkYXRhOw0KIAlyZXF1ZXN0 X21vZHVsZSgiJXMiLCBib2FyZF9pbmZvLnR5cGUpOw0KQEAgLTk1Myw3ICs5 NTMsNyBAQCBzdGF0aWMgaW50IHJ0bDI4MzJ1X2Zyb250ZW5kX2F0dGFjaChz dHJ1DQogDQogCQkJbW44ODQ3Ml9jb25maWcuZmUgPSAmYWRhcC0+ZmVbMV07 DQogCQkJbW44ODQ3Ml9jb25maWcuaTJjX3dyX21heCA9IDIyLA0KLQkJCXN0 cnNjcHkoaW5mby50eXBlLCAibW44ODQ3MiIsIEkyQ19OQU1FX1NJWkUpOw0K KwkJCXN0cmFjcHkoaW5mby50eXBlLCAibW44ODQ3MiIpOw0KIAkJCW1uODg0 NzJfY29uZmlnLnh0YWwgPSAyMDUwMDAwMDsNCiAJCQltbjg4NDcyX2NvbmZp Zy50c19tb2RlID0gU0VSSUFMX1RTX01PREU7DQogCQkJbW44ODQ3Ml9jb25m aWcudHNfY2xvY2sgPSBWQVJJQUJMRV9UU19DTE9DSzsNCkBAIC05NzgsNyAr OTc4LDcgQEAgc3RhdGljIGludCBydGwyODMydV9mcm9udGVuZF9hdHRhY2go c3RydQ0KIA0KIAkJCW1uODg0NzNfY29uZmlnLmZlID0gJmFkYXAtPmZlWzFd Ow0KIAkJCW1uODg0NzNfY29uZmlnLmkyY193cl9tYXggPSAyMiwNCi0JCQlz dHJzY3B5KGluZm8udHlwZSwgIm1uODg0NzMiLCBJMkNfTkFNRV9TSVpFKTsN CisJCQlzdHJhY3B5KGluZm8udHlwZSwgIm1uODg0NzMiKTsNCiAJCQlpbmZv LmFkZHIgPSAweDE4Ow0KIAkJCWluZm8ucGxhdGZvcm1fZGF0YSA9ICZtbjg4 NDczX2NvbmZpZzsNCiAJCQlyZXF1ZXN0X21vZHVsZShpbmZvLnR5cGUpOw0K QEAgLTEwMjEsNyArMTAyMSw3IEBAIHN0YXRpYyBpbnQgcnRsMjgzMnVfZnJv bnRlbmRfYXR0YWNoKHN0cnUNCiAJCQlzaTIxNjhfY29uZmlnLnRzX21vZGUg PSBTSTIxNjhfVFNfU0VSSUFMOw0KIAkJCXNpMjE2OF9jb25maWcudHNfY2xv Y2tfaW52ID0gZmFsc2U7DQogCQkJc2kyMTY4X2NvbmZpZy50c19jbG9ja19n YXBwZWQgPSB0cnVlOw0KLQkJCXN0cnNjcHkoaW5mby50eXBlLCAic2kyMTY4 IiwgSTJDX05BTUVfU0laRSk7DQorCQkJc3RyYWNweShpbmZvLnR5cGUsICJz aTIxNjgiKTsNCiAJCQlpbmZvLmFkZHIgPSAweDY0Ow0KIAkJCWluZm8ucGxh dGZvcm1fZGF0YSA9ICZzaTIxNjhfY29uZmlnOw0KIAkJCXJlcXVlc3RfbW9k dWxlKGluZm8udHlwZSk7DQpAQCAtMTIxMiw3ICsxMjEyLDcgQEAgc3RhdGlj IGludCBydGwyODMydV90dW5lcl9hdHRhY2goc3RydWN0DQogCQkJCS5jbG9j ayA9IDI4ODAwMDAwLA0KIAkJCX07DQogDQotCQkJc3Ryc2NweShpbmZvLnR5 cGUsICJlNDAwMCIsIEkyQ19OQU1FX1NJWkUpOw0KKwkJCXN0cmFjcHkoaW5m by50eXBlLCAiZTQwMDAiKTsNCiAJCQlpbmZvLmFkZHIgPSAweDY0Ow0KIAkJ CWluZm8ucGxhdGZvcm1fZGF0YSA9ICZlNDAwMF9jb25maWc7DQogDQpAQCAt MTIzNiw3ICsxMjM2LDcgQEAgc3RhdGljIGludCBydGwyODMydV90dW5lcl9h dHRhY2goc3RydWN0DQogCQkJfTsNCiAJCQlzdHJ1Y3QgaTJjX2JvYXJkX2lu Zm8gYm9hcmRfaW5mbyA9IHt9Ow0KIA0KLQkJCXN0cnNjcHkoYm9hcmRfaW5m by50eXBlLCAiZmMyNTgwIiwgSTJDX05BTUVfU0laRSk7DQorCQkJc3RyYWNw eShib2FyZF9pbmZvLnR5cGUsICJmYzI1ODAiKTsNCiAJCQlib2FyZF9pbmZv LmFkZHIgPSAweDU2Ow0KIAkJCWJvYXJkX2luZm8ucGxhdGZvcm1fZGF0YSA9 ICZmYzI1ODBfcGRhdGE7DQogCQkJcmVxdWVzdF9tb2R1bGUoImZjMjU4MCIp Ow0KQEAgLTEyNjcsNyArMTI2Nyw3IEBAIHN0YXRpYyBpbnQgcnRsMjgzMnVf dHVuZXJfYXR0YWNoKHN0cnVjdA0KIAkJaWYgKHJldCkNCiAJCQlnb3RvIGVy cjsNCiANCi0JCXN0cnNjcHkoYm9hcmRfaW5mby50eXBlLCAidHVhOTAwMSIs IEkyQ19OQU1FX1NJWkUpOw0KKwkJc3RyYWNweShib2FyZF9pbmZvLnR5cGUs ICJ0dWE5MDAxIik7DQogCQlib2FyZF9pbmZvLmFkZHIgPSAweDYwOw0KIAkJ Ym9hcmRfaW5mby5wbGF0Zm9ybV9kYXRhID0gJnR1YTkwMDFfcGRhdGE7DQog CQlyZXF1ZXN0X21vZHVsZSgidHVhOTAwMSIpOw0KQEAgLTEzMTIsNyArMTMx Miw3IEBAIHN0YXRpYyBpbnQgcnRsMjgzMnVfdHVuZXJfYXR0YWNoKHN0cnVj dA0KIAkJCQkuaW52ZXJzaW9uID0gZmFsc2UsDQogCQkJfTsNCiANCi0JCQlz dHJzY3B5KGluZm8udHlwZSwgInNpMjE1NyIsIEkyQ19OQU1FX1NJWkUpOw0K KwkJCXN0cmFjcHkoaW5mby50eXBlLCAic2kyMTU3Iik7DQogCQkJaW5mby5h ZGRyID0gMHg2MDsNCiAJCQlpbmZvLnBsYXRmb3JtX2RhdGEgPSAmc2kyMTU3 X2NvbmZpZzsNCiAJCQlyZXF1ZXN0X21vZHVsZShpbmZvLnR5cGUpOw0KZGlm ZiAtdSAtcCBhL2RyaXZlcnMvc2NzaS9xZWRpL3FlZGlfbWFpbi5jIGIvZHJp dmVycy9zY3NpL3FlZGkvcWVkaV9tYWluLmMNCi0tLSBhL2RyaXZlcnMvc2Nz aS9xZWRpL3FlZGlfbWFpbi5jDQorKysgYi9kcml2ZXJzL3Njc2kvcWVkaS9x ZWRpX21haW4uYw0KQEAgLTI0NjAsNyArMjQ2MCw3IEBAIHN0YXRpYyBpbnQg X19xZWRpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICoNCiAJc3BfcGFyYW1zLmRy dl9taW5vciA9IFFFRElfRFJJVkVSX01JTk9SX1ZFUjsNCiAJc3BfcGFyYW1z LmRydl9yZXYgPSBRRURJX0RSSVZFUl9SRVZfVkVSOw0KIAlzcF9wYXJhbXMu ZHJ2X2VuZyA9IFFFRElfRFJJVkVSX0VOR19WRVI7DQotCXN0cmxjcHkoc3Bf cGFyYW1zLm5hbWUsICJxZWRpIGlTQ1NJIiwgUUVEX0RSVl9WRVJfU1RSX1NJ WkUpOw0KKwlzdHJhY3B5KHNwX3BhcmFtcy5uYW1lLCAicWVkaSBpU0NTSSIp Ow0KIAlyYyA9IHFlZGlfb3BzLT5jb21tb24tPnNsb3dwYXRoX3N0YXJ0KHFl ZGktPmNkZXYsICZzcF9wYXJhbXMpOw0KIAlpZiAocmMpIHsNCiAJCVFFRElf RVJSKCZxZWRpLT5kYmdfY3R4LCAiQ2Fubm90IHN0YXJ0IHNsb3dwYXRoXG4i KTsNCmRpZmYgLXUgLXAgYS9kcml2ZXJzL2Zpcm13YXJlL2FybV9zY21pL3Bl cmYuYyBiL2RyaXZlcnMvZmlybXdhcmUvYXJtX3NjbWkvcGVyZi5jDQotLS0g YS9kcml2ZXJzL2Zpcm13YXJlL2FybV9zY21pL3BlcmYuYw0KKysrIGIvZHJp dmVycy9maXJtd2FyZS9hcm1fc2NtaS9wZXJmLmMNCkBAIC0xNzQsNyArMTc0 LDcgQEAgc2NtaV9wZXJmX2RvbWFpbl9hdHRyaWJ1dGVzX2dldChjb25zdCBz dA0KIAkJCWRvbV9pbmZvLT5tdWx0X2ZhY3RvciA9DQogCQkJCQkoZG9tX2lu Zm8tPnN1c3RhaW5lZF9mcmVxX2toeiAqIDEwMDApIC8NCiAJCQkJCWRvbV9p bmZvLT5zdXN0YWluZWRfcGVyZl9sZXZlbDsNCi0JCXN0cmxjcHkoZG9tX2lu Zm8tPm5hbWUsIGF0dHItPm5hbWUsIFNDTUlfTUFYX1NUUl9TSVpFKTsNCisJ CXN0cmFjcHkoZG9tX2luZm8tPm5hbWUsIGF0dHItPm5hbWUpOw0KIAl9DQog DQogCXNjbWlfeGZlcl9wdXQoaGFuZGxlLCB0KTsNCmRpZmYgLXUgLXAgYS9k cml2ZXJzL2h3bW9uL2VtYzZ3MjAxLmMgYi9kcml2ZXJzL2h3bW9uL2VtYzZ3 MjAxLmMNCi0tLSBhL2RyaXZlcnMvaHdtb24vZW1jNncyMDEuYw0KKysrIGIv ZHJpdmVycy9od21vbi9lbWM2dzIwMS5jDQpAQCAtNDM5LDcgKzQzOSw3IEBA IHN0YXRpYyBpbnQgZW1jNncyMDFfZGV0ZWN0KHN0cnVjdCBpMmNfY2wNCiAJ CXJldHVybiAtRU5PREVWOw0KIAl9DQogDQotCXN0cmxjcHkoaW5mby0+dHlw ZSwgImVtYzZ3MjAxIiwgSTJDX05BTUVfU0laRSk7DQorCXN0cmFjcHkoaW5m by0+dHlwZSwgImVtYzZ3MjAxIik7DQogDQogCXJldHVybiAwOw0KIH0NCmRp ZmYgLXUgLXAgYS9kcml2ZXJzL2Nsay90ZWdyYS9jbGstYnBtcC5jIGIvZHJp dmVycy9jbGsvdGVncmEvY2xrLWJwbXAuYw0KLS0tIGEvZHJpdmVycy9jbGsv dGVncmEvY2xrLWJwbXAuYw0KKysrIGIvZHJpdmVycy9jbGsvdGVncmEvY2xr LWJwbXAuYw0KQEAgLTM0NCw3ICszNDQsNyBAQCBzdGF0aWMgaW50IHRlZ3Jh X2JwbXBfY2xrX2dldF9pbmZvKHN0cnVjDQogCWlmIChlcnIgPCAwKQ0KIAkJ cmV0dXJuIGVycjsNCiANCi0Jc3RybGNweShpbmZvLT5uYW1lLCByZXNwb25z ZS5uYW1lLCBNUlFfQ0xLX05BTUVfTUFYTEVOKTsNCisJc3RyYWNweShpbmZv LT5uYW1lLCByZXNwb25zZS5uYW1lKTsNCiAJaW5mby0+bnVtX3BhcmVudHMg PSByZXNwb25zZS5udW1fcGFyZW50czsNCiANCiAJZm9yIChpID0gMDsgaSA8 IGluZm8tPm51bV9wYXJlbnRzOyBpKyspDQpkaWZmIC11IC1wIGEvZHJpdmVy cy9od21vbi9lbWMyMTAzLmMgYi9kcml2ZXJzL2h3bW9uL2VtYzIxMDMuYw0K LS0tIGEvZHJpdmVycy9od21vbi9lbWMyMTAzLmMNCisrKyBiL2RyaXZlcnMv aHdtb24vZW1jMjEwMy5jDQpAQCAtNjQzLDcgKzY0Myw3IEBAIGVtYzIxMDNf ZGV0ZWN0KHN0cnVjdCBpMmNfY2xpZW50ICpuZXdfY2wNCiAJaWYgKChwcm9k dWN0ICE9IDB4MjQpICYmIChwcm9kdWN0ICE9IDB4MjYpKQ0KIAkJcmV0dXJu IC1FTk9ERVY7DQogDQotCXN0cmxjcHkoaW5mby0+dHlwZSwgImVtYzIxMDMi LCBJMkNfTkFNRV9TSVpFKTsNCisJc3RyYWNweShpbmZvLT50eXBlLCAiZW1j MjEwMyIpOw0KIA0KIAlyZXR1cm4gMDsNCiB9DQpkaWZmIC11IC1wIGEvZHJp dmVycy9od21vbi93ODM3OTJkLmMgYi9kcml2ZXJzL2h3bW9uL3c4Mzc5MmQu Yw0KLS0tIGEvZHJpdmVycy9od21vbi93ODM3OTJkLmMNCisrKyBiL2RyaXZl cnMvaHdtb24vdzgzNzkyZC5jDQpAQCAtMTM2MSw3ICsxMzYxLDcgQEAgdzgz NzkyZF9kZXRlY3Qoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudA0KIAlpZiAo dmFsMSAhPSAweDdhIHx8IHZhbDIgIT0gMHg1YykNCiAJCXJldHVybiAtRU5P REVWOw0KIA0KLQlzdHJsY3B5KGluZm8tPnR5cGUsICJ3ODM3OTJkIiwgSTJD X05BTUVfU0laRSk7DQorCXN0cmFjcHkoaW5mby0+dHlwZSwgInc4Mzc5MmQi KTsNCiANCiAJcmV0dXJuIDA7DQogfQ0KZGlmZiAtdSAtcCBhL2RyaXZlcnMv bWVkaWEvcGNpL2N4MTgvY3gxOC1pMmMuYyBiL2RyaXZlcnMvbWVkaWEvcGNp L2N4MTgvY3gxOC1pMmMuYw0KLS0tIGEvZHJpdmVycy9tZWRpYS9wY2kvY3gx OC9jeDE4LWkyYy5jDQorKysgYi9kcml2ZXJzL21lZGlhL3BjaS9jeDE4L2N4 MTgtaTJjLmMNCkBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyBpbnQgY3gxOF9p MmNfbmV3X2lyKHN0cnVjdCBjeDE4ICoNCiAJdW5zaWduZWQgc2hvcnQgYWRk cl9saXN0WzJdID0geyBhZGRyLCBJMkNfQ0xJRU5UX0VORCB9Ow0KIA0KIAlt ZW1zZXQoJmluZm8sIDAsIHNpemVvZihzdHJ1Y3QgaTJjX2JvYXJkX2luZm8p KTsNCi0Jc3Ryc2NweShpbmZvLnR5cGUsIHR5cGUsIEkyQ19OQU1FX1NJWkUp Ow0KKwlzdHJhY3B5KGluZm8udHlwZSwgdHlwZSk7DQogDQogCS8qIE91ciBk ZWZhdWx0IGluZm9ybWF0aW9uIGZvciBpci1rYmQtaTJjLmMgdG8gdXNlICov DQogCXN3aXRjaCAoaHcpIHsNCmRpZmYgLXUgLXAgYS9kcml2ZXJzL2NyeXB0 by9jaGVsc2lvL2NodGxzL2NodGxzX21haW4uYyBiL2RyaXZlcnMvY3J5cHRv L2NoZWxzaW8vY2h0bHMvY2h0bHNfbWFpbi5jDQotLS0gYS9kcml2ZXJzL2Ny eXB0by9jaGVsc2lvL2NodGxzL2NodGxzX21haW4uYw0KKysrIGIvZHJpdmVy cy9jcnlwdG8vY2hlbHNpby9jaHRscy9jaHRsc19tYWluLmMNCkBAIC0xODUs NyArMTg1LDcgQEAgc3RhdGljIHZvaWQgY2h0bHNfcmVnaXN0ZXJfZGV2KHN0 cnVjdCBjaA0KIHsNCiAJc3RydWN0IHRsc19kZXZpY2UgKnRsc2RldiA9ICZj ZGV2LT50bHNkZXY7DQogDQotCXN0cmxjcHkodGxzZGV2LT5uYW1lLCAiY2h0 bHMiLCBUTFNfREVWSUNFX05BTUVfTUFYKTsNCisJc3RyYWNweSh0bHNkZXYt Pm5hbWUsICJjaHRscyIpOw0KIAlzdHJsY2F0KHRsc2Rldi0+bmFtZSwgY2Rl di0+bGxkaS0+cG9ydHNbMF0tPm5hbWUsDQogCQlUTFNfREVWSUNFX05BTUVf TUFYKTsNCiAJdGxzZGV2LT5mZWF0dXJlID0gY2h0bHNfaW5saW5lX2ZlYXR1 cmU7DQpkaWZmIC11IC1wIGEvZHJpdmVycy9taXNjL2ljczkzMnM0MDEuYyBi L2RyaXZlcnMvbWlzYy9pY3M5MzJzNDAxLmMNCi0tLSBhL2RyaXZlcnMvbWlz Yy9pY3M5MzJzNDAxLmMNCisrKyBiL2RyaXZlcnMvbWlzYy9pY3M5MzJzNDAx LmMNCkBAIC00MjQsNyArNDI0LDcgQEAgc3RhdGljIGludCBpY3M5MzJzNDAx X2RldGVjdChzdHJ1Y3QgaTJjXw0KIAlpZiAocmV2aXNpb24gIT0gSUNTOTMy UzQwMV9SRVYpDQogCQlkZXZfaW5mbygmYWRhcHRlci0+ZGV2LCAiVW5rbm93 biByZXZpc2lvbiAlZFxuIiwgcmV2aXNpb24pOw0KIA0KLQlzdHJsY3B5KGlu Zm8tPnR5cGUsICJpY3M5MzJzNDAxIiwgSTJDX05BTUVfU0laRSk7DQorCXN0 cmFjcHkoaW5mby0+dHlwZSwgImljczkzMnM0MDEiKTsNCiANCiAJcmV0dXJu IDA7DQogfQ0KZGlmZiAtdSAtcCBhL2ZzL2dmczIvb3BzX2ZzdHlwZS5jIGIv ZnMvZ2ZzMi9vcHNfZnN0eXBlLmMNCi0tLSBhL2ZzL2dmczIvb3BzX2ZzdHlw ZS5jDQorKysgYi9mcy9nZnMyL29wc19mc3R5cGUuYw0KQEAgLTM3Miw4ICsz NzIsOCBAQCBzdGF0aWMgaW50IGluaXRfbmFtZXMoc3RydWN0IGdmczJfc2Jk ICpzDQogCWlmICghdGFibGVbMF0pDQogCQl0YWJsZSA9IHNkcC0+c2RfdmZz LT5zX2lkOw0KIA0KLQlzdHJsY3B5KHNkcC0+c2RfcHJvdG9fbmFtZSwgcHJv dG8sIEdGUzJfRlNOQU1FX0xFTik7DQotCXN0cmxjcHkoc2RwLT5zZF90YWJs ZV9uYW1lLCB0YWJsZSwgR0ZTMl9GU05BTUVfTEVOKTsNCisJc3RyYWNweShz ZHAtPnNkX3Byb3RvX25hbWUsIHByb3RvKTsNCisJc3RyYWNweShzZHAtPnNk X3RhYmxlX25hbWUsIHRhYmxlKTsNCiANCiAJdGFibGUgPSBzZHAtPnNkX3Rh YmxlX25hbWU7DQogCXdoaWxlICgodGFibGUgPSBzdHJjaHIodGFibGUsICcv JykpKQ0KQEAgLTEzNDYsMTMgKzEzNDYsMTMgQEAgc3RhdGljIGludCBnZnMy X3BhcnNlX3BhcmFtKHN0cnVjdCBmc19jbw0KIA0KIAlzd2l0Y2ggKG8pIHsN CiAJY2FzZSBPcHRfbG9ja3Byb3RvOg0KLQkJc3RybGNweShhcmdzLT5hcl9s b2NrcHJvdG8sIHBhcmFtLT5zdHJpbmcsIEdGUzJfTE9DS05BTUVfTEVOKTsN CisJCXN0cmFjcHkoYXJncy0+YXJfbG9ja3Byb3RvLCBwYXJhbS0+c3RyaW5n KTsNCiAJCWJyZWFrOw0KIAljYXNlIE9wdF9sb2NrdGFibGU6DQotCQlzdHJs Y3B5KGFyZ3MtPmFyX2xvY2t0YWJsZSwgcGFyYW0tPnN0cmluZywgR0ZTMl9M T0NLTkFNRV9MRU4pOw0KKwkJc3RyYWNweShhcmdzLT5hcl9sb2NrdGFibGUs IHBhcmFtLT5zdHJpbmcpOw0KIAkJYnJlYWs7DQogCWNhc2UgT3B0X2hvc3Rk YXRhOg0KLQkJc3RybGNweShhcmdzLT5hcl9ob3N0ZGF0YSwgcGFyYW0tPnN0 cmluZywgR0ZTMl9MT0NLTkFNRV9MRU4pOw0KKwkJc3RyYWNweShhcmdzLT5h cl9ob3N0ZGF0YSwgcGFyYW0tPnN0cmluZyk7DQogCQlicmVhazsNCiAJY2Fz ZSBPcHRfc3BlY3RhdG9yOg0KIAkJYXJncy0+YXJfc3BlY3RhdG9yID0gMTsN CmRpZmYgLXUgLXAgYS9kcml2ZXJzL2h3bW9uL2RtZTE3MzcuYyBiL2RyaXZl cnMvaHdtb24vZG1lMTczNy5jDQotLS0gYS9kcml2ZXJzL2h3bW9uL2RtZTE3 MzcuYw0KKysrIGIvZHJpdmVycy9od21vbi9kbWUxNzM3LmMNCkBAIC0yNDU2 LDcgKzI0NTYsNyBAQCBzdGF0aWMgaW50IGRtZTE3MzdfaTJjX2RldGVjdChz dHJ1Y3QgaTJjDQogCWRldl9pbmZvKGRldiwgIkZvdW5kIGEgJXMgY2hpcCBh dCAweCUwMnggKHJldiAweCUwMngpLlxuIiwNCiAJCSB2ZXJzdGVwID09IFND SDUwMjdfVkVSU1RFUCA/ICJTQ0g1MDI3IiA6ICJETUUxNzM3IiwNCiAJCSBj bGllbnQtPmFkZHIsIHZlcnN0ZXApOw0KLQlzdHJsY3B5KGluZm8tPnR5cGUs IG5hbWUsIEkyQ19OQU1FX1NJWkUpOw0KKwlzdHJhY3B5KGluZm8tPnR5cGUs IG5hbWUpOw0KIA0KIAlyZXR1cm4gMDsNCiB9DQpkaWZmIC11IC1wIGEvZHJp dmVycy9tZWRpYS9wY2kvYnQ4eHgvYnR0di1pbnB1dC5jIGIvZHJpdmVycy9t ZWRpYS9wY2kvYnQ4eHgvYnR0di1pbnB1dC5jDQotLS0gYS9kcml2ZXJzL21l ZGlhL3BjaS9idDh4eC9idHR2LWlucHV0LmMNCisrKyBiL2RyaXZlcnMvbWVk aWEvcGNpL2J0OHh4L2J0dHYtaW5wdXQuYw0KQEAgLTM3Myw3ICszNzMsNyBA QCB2b2lkIGluaXRfYnR0dl9pMmNfaXIoc3RydWN0IGJ0dHYgKmJ0dikNCiAN CiAJbWVtc2V0KCZpbmZvLCAwLCBzaXplb2Yoc3RydWN0IGkyY19ib2FyZF9p bmZvKSk7DQogCW1lbXNldCgmYnR2LT5pbml0X2RhdGEsIDAsIHNpemVvZihi dHYtPmluaXRfZGF0YSkpOw0KLQlzdHJzY3B5KGluZm8udHlwZSwgImlyX3Zp ZGVvIiwgSTJDX05BTUVfU0laRSk7DQorCXN0cmFjcHkoaW5mby50eXBlLCAi aXJfdmlkZW8iKTsNCiANCiAJc3dpdGNoIChidHYtPmMudHlwZSkgew0KIAlj YXNlIEJUVFZfQk9BUkRfUFY5NTE6DQpkaWZmIC11IC1wIGEvZHJpdmVycy9t ZWRpYS91c2IvdG02MDAwL3RtNjAwMC1pMmMuYyBiL2RyaXZlcnMvbWVkaWEv dXNiL3RtNjAwMC90bTYwMDAtaTJjLmMNCi0tLSBhL2RyaXZlcnMvbWVkaWEv dXNiL3RtNjAwMC90bTYwMDAtaTJjLmMNCisrKyBiL2RyaXZlcnMvbWVkaWEv dXNiL3RtNjAwMC90bTYwMDAtaTJjLmMNCkBAIC0zMDAsNyArMzAwLDcgQEAg aW50IHRtNjAwMF9pMmNfcmVnaXN0ZXIoc3RydWN0IHRtNjAwMF9jbw0KIAkJ cmV0dXJuIHJjOw0KIA0KIAlkZXYtPmkyY19jbGllbnQuYWRhcHRlciA9ICZk ZXYtPmkyY19hZGFwOw0KLQlzdHJzY3B5KGRldi0+aTJjX2NsaWVudC5uYW1l LCAidG02MDAwIGludGVybmFsIiwgSTJDX05BTUVfU0laRSk7DQorCXN0cmFj cHkoZGV2LT5pMmNfY2xpZW50Lm5hbWUsICJ0bTYwMDAgaW50ZXJuYWwiKTsN CiAJdG02MDAwX2kyY19lZXByb20oZGV2KTsNCiANCiAJcmV0dXJuIDA7DQpk aWZmIC11IC1wIGEvZHJpdmVycy9od21vbi9hZHQ3NDc1LmMgYi9kcml2ZXJz L2h3bW9uL2FkdDc0NzUuYw0KLS0tIGEvZHJpdmVycy9od21vbi9hZHQ3NDc1 LmMNCisrKyBiL2RyaXZlcnMvaHdtb24vYWR0NzQ3NS5jDQpAQCAtMTMzNyw3 ICsxMzM3LDcgQEAgc3RhdGljIGludCBhZHQ3NDc1X2RldGVjdChzdHJ1Y3Qg aTJjX2NsaQ0KIAkJcmV0dXJuIC1FTk9ERVY7DQogCX0NCiANCi0Jc3RybGNw eShpbmZvLT50eXBlLCBuYW1lLCBJMkNfTkFNRV9TSVpFKTsNCisJc3RyYWNw eShpbmZvLT50eXBlLCBuYW1lKTsNCiANCiAJcmV0dXJuIDA7DQogfQ0KZGlm ZiAtdSAtcCBhL2RyaXZlcnMvaHdtb24vdGhtYzUwLmMgYi9kcml2ZXJzL2h3 bW9uL3RobWM1MC5jDQotLS0gYS9kcml2ZXJzL2h3bW9uL3RobWM1MC5jDQor KysgYi9kcml2ZXJzL2h3bW9uL3RobWM1MC5jDQpAQCAtMzUyLDcgKzM1Miw3 IEBAIHN0YXRpYyBpbnQgdGhtYzUwX2RldGVjdChzdHJ1Y3QgaTJjX2NsaWUN CiAJcHJfZGVidWcoInRobWM1MDogRGV0ZWN0ZWQgJXMgKHZlcnNpb24gJXgs IHJldmlzaW9uICV4KVxuIiwNCiAJCSB0eXBlX25hbWUsIChyZXZpc2lvbiA+ PiA0KSAtIDB4YywgcmV2aXNpb24gJiAweGYpOw0KIA0KLQlzdHJsY3B5KGlu Zm8tPnR5cGUsIHR5cGVfbmFtZSwgSTJDX05BTUVfU0laRSk7DQorCXN0cmFj cHkoaW5mby0+dHlwZSwgdHlwZV9uYW1lKTsNCiANCiAJcmV0dXJuIDA7DQog fQ0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvbWVkaWEvZHZiLWZyb250ZW5kcy9t ODhkczMxMDMuYyBiL2RyaXZlcnMvbWVkaWEvZHZiLWZyb250ZW5kcy9tODhk czMxMDMuYw0KLS0tIGEvZHJpdmVycy9tZWRpYS9kdmItZnJvbnRlbmRzL204 OGRzMzEwMy5jDQorKysgYi9kcml2ZXJzL21lZGlhL2R2Yi1mcm9udGVuZHMv bTg4ZHMzMTAzLmMNCkBAIC0xMjc0LDcgKzEyNzQsNyBAQCBzdHJ1Y3QgZHZi X2Zyb250ZW5kICptODhkczMxMDNfYXR0YWNoKGNvDQogCXBkYXRhLmF0dGFj aF9pbl91c2UgPSB0cnVlOw0KIA0KIAltZW1zZXQoJmJvYXJkX2luZm8sIDAs IHNpemVvZihib2FyZF9pbmZvKSk7DQotCXN0cnNjcHkoYm9hcmRfaW5mby50 eXBlLCAibTg4ZHMzMTAzIiwgSTJDX05BTUVfU0laRSk7DQorCXN0cmFjcHko Ym9hcmRfaW5mby50eXBlLCAibTg4ZHMzMTAzIik7DQogCWJvYXJkX2luZm8u YWRkciA9IGNmZy0+aTJjX2FkZHI7DQogCWJvYXJkX2luZm8ucGxhdGZvcm1f ZGF0YSA9ICZwZGF0YTsNCiAJY2xpZW50ID0gaTJjX25ld19kZXZpY2UoaTJj LCAmYm9hcmRfaW5mbyk7DQpkaWZmIC11IC1wIGEvZHJpdmVycy9uZXQvd2ly ZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvbW1vbi5jIGIv ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21m bWFjL2NvbW1vbi5jDQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9h ZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29tbW9uLmMNCisrKyBiL2RyaXZl cnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9j b21tb24uYw0KQEAgLTM4MywxMyArMzgzLDExIEBAIHN0YXRpYyB2b2lkIGJy Y21mX21wX2F0dGFjaCh2b2lkKQ0KIAkgKiBpZiBub3Qgc2V0IHRoZW4gaWYg YXZhaWxhYmxlIHVzZSB0aGUgcGxhdGZvcm0gZGF0YSB2ZXJzaW9uLiBUbyBt YWtlDQogCSAqIHN1cmUgaXQgZ2V0cyBpbml0aWFsaXplZCBhdCBhbGwsIGFs d2F5cyBjb3B5IHRoZSBtb2R1bGUgcGFyYW0gdmVyc2lvbg0KIAkgKi8NCi0J c3RybGNweShicmNtZl9tcF9nbG9iYWwuZmlybXdhcmVfcGF0aCwgYnJjbWZf ZmlybXdhcmVfcGF0aCwNCi0JCUJSQ01GX0ZXX0FMVFBBVEhfTEVOKTsNCisJ c3RyYWNweShicmNtZl9tcF9nbG9iYWwuZmlybXdhcmVfcGF0aCwgYnJjbWZf ZmlybXdhcmVfcGF0aCk7DQogCWlmICgoYnJjbWZtYWNfcGRhdGEpICYmIChi cmNtZm1hY19wZGF0YS0+ZndfYWx0ZXJuYXRpdmVfcGF0aCkgJiYNCiAJICAg IChicmNtZl9tcF9nbG9iYWwuZmlybXdhcmVfcGF0aFswXSA9PSAnXDAnKSkg ew0KLQkJc3RybGNweShicmNtZl9tcF9nbG9iYWwuZmlybXdhcmVfcGF0aCwN Ci0JCQlicmNtZm1hY19wZGF0YS0+ZndfYWx0ZXJuYXRpdmVfcGF0aCwNCi0J CQlCUkNNRl9GV19BTFRQQVRIX0xFTik7DQorCQlzdHJhY3B5KGJyY21mX21w X2dsb2JhbC5maXJtd2FyZV9wYXRoLA0KKwkJCWJyY21mbWFjX3BkYXRhLT5m d19hbHRlcm5hdGl2ZV9wYXRoKTsNCiAJfQ0KIH0NCiANCmRpZmYgLXUgLXAg YS9kcml2ZXJzL2h3bW9uL2xtOTMuYyBiL2RyaXZlcnMvaHdtb24vbG05My5j DQotLS0gYS9kcml2ZXJzL2h3bW9uL2xtOTMuYw0KKysrIGIvZHJpdmVycy9o d21vbi9sbTkzLmMNCkBAIC0yNTc1LDcgKzI1NzUsNyBAQCBzdGF0aWMgaW50 IGxtOTNfZGV0ZWN0KHN0cnVjdCBpMmNfY2xpZW50DQogCQlyZXR1cm4gLUVO T0RFVjsNCiAJfQ0KIA0KLQlzdHJsY3B5KGluZm8tPnR5cGUsIG5hbWUsIEky Q19OQU1FX1NJWkUpOw0KKwlzdHJhY3B5KGluZm8tPnR5cGUsIG5hbWUpOw0K IAlkZXZfZGJnKCZhZGFwdGVyLT5kZXYsICJsb2FkaW5nICVzIGF0ICVkLCAw eCUwMnhcbiIsDQogCQljbGllbnQtPm5hbWUsIGkyY19hZGFwdGVyX2lkKGNs aWVudC0+YWRhcHRlciksDQogCQljbGllbnQtPmFkZHIpOw0KZGlmZiAtdSAt cCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtaTgwMS5jIGIvZHJpdmVycy9p MmMvYnVzc2VzL2kyYy1pODAxLmMNCi0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nl cy9pMmMtaTgwMS5jDQorKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWk4 MDEuYw0KQEAgLTExMzQsNyArMTEzNCw3IEBAIHN0YXRpYyB2b2lkIGRtaV9j aGVja19vbmJvYXJkX2RldmljZSh1OA0KIA0KIAkJbWVtc2V0KCZpbmZvLCAw LCBzaXplb2Yoc3RydWN0IGkyY19ib2FyZF9pbmZvKSk7DQogCQlpbmZvLmFk ZHIgPSBkbWlfZGV2aWNlc1tpXS5pMmNfYWRkcjsNCi0JCXN0cmxjcHkoaW5m by50eXBlLCBkbWlfZGV2aWNlc1tpXS5pMmNfdHlwZSwgSTJDX05BTUVfU0la RSk7DQorCQlzdHJhY3B5KGluZm8udHlwZSwgZG1pX2RldmljZXNbaV0uaTJj X3R5cGUpOw0KIAkJaTJjX25ld19kZXZpY2UoYWRhcCwgJmluZm8pOw0KIAkJ YnJlYWs7DQogCX0NCkBAIC0xMjc5LDcgKzEyNzksNyBAQCBzdGF0aWMgdm9p ZCByZWdpc3Rlcl9kZWxsX2xpczNsdjAyZF9pMmNfDQogDQogCW1lbXNldCgm aW5mbywgMCwgc2l6ZW9mKHN0cnVjdCBpMmNfYm9hcmRfaW5mbykpOw0KIAlp bmZvLmFkZHIgPSBkZWxsX2xpczNsdjAyZF9kZXZpY2VzW2ldLmkyY19hZGRy Ow0KLQlzdHJsY3B5KGluZm8udHlwZSwgImxpczNsdjAyZCIsIEkyQ19OQU1F X1NJWkUpOw0KKwlzdHJhY3B5KGluZm8udHlwZSwgImxpczNsdjAyZCIpOw0K IAlpMmNfbmV3X2RldmljZSgmcHJpdi0+YWRhcHRlciwgJmluZm8pOw0KIH0N CiANCkBAIC0xMjk1LDcgKzEyOTUsNyBAQCBzdGF0aWMgdm9pZCBpODAxX3By b2JlX29wdGlvbmFsX3NsYXZlcyhzDQogDQogCQltZW1zZXQoJmluZm8sIDAs IHNpemVvZihzdHJ1Y3QgaTJjX2JvYXJkX2luZm8pKTsNCiAJCWluZm8uYWRk ciA9IGFwYW5lbF9hZGRyOw0KLQkJc3RybGNweShpbmZvLnR5cGUsICJmdWpp dHN1X2FwYW5lbCIsIEkyQ19OQU1FX1NJWkUpOw0KKwkJc3RyYWNweShpbmZv LnR5cGUsICJmdWppdHN1X2FwYW5lbCIpOw0KIAkJaTJjX25ld19kZXZpY2Uo JnByaXYtPmFkYXB0ZXIsICZpbmZvKTsNCiAJfQ0KIA0KZGlmZiAtdSAtcCBh L2RyaXZlcnMvbWFjaW50b3NoL3RoZXJtX3dpbmR0dW5uZWwuYyBiL2RyaXZl cnMvbWFjaW50b3NoL3RoZXJtX3dpbmR0dW5uZWwuYw0KLS0tIGEvZHJpdmVy cy9tYWNpbnRvc2gvdGhlcm1fd2luZHR1bm5lbC5jDQorKysgYi9kcml2ZXJz L21hY2ludG9zaC90aGVybV93aW5kdHVubmVsLmMNCkBAIC0zMjAsMTAgKzMy MCwxMCBAQCBkb19hdHRhY2goIHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRl ciApDQogCQlzdHJ1Y3QgaTJjX2JvYXJkX2luZm8gaW5mbzsNCiANCiAJCW1l bXNldCgmaW5mbywgMCwgc2l6ZW9mKHN0cnVjdCBpMmNfYm9hcmRfaW5mbykp Ow0KLQkJc3RybGNweShpbmZvLnR5cGUsICJ0aGVybV9kczE3NzUiLCBJMkNf TkFNRV9TSVpFKTsNCisJCXN0cmFjcHkoaW5mby50eXBlLCAidGhlcm1fZHMx Nzc1Iik7DQogCQlpMmNfbmV3X3Byb2JlZF9kZXZpY2UoYWRhcHRlciwgJmlu Zm8sIHNjYW5fZHMxNzc1LCBOVUxMKTsNCiANCi0JCXN0cmxjcHkoaW5mby50 eXBlLCAidGhlcm1fYWRtMTAzMCIsIEkyQ19OQU1FX1NJWkUpOw0KKwkJc3Ry YWNweShpbmZvLnR5cGUsICJ0aGVybV9hZG0xMDMwIik7DQogCQlpMmNfbmV3 X3Byb2JlZF9kZXZpY2UoYWRhcHRlciwgJmluZm8sIHNjYW5fYWRtMTAzMCwg TlVMTCk7DQogDQogCQlpZiggeC50aGVybW9zdGF0ICYmIHguZmFuICkgew0K ZGlmZiAtdSAtcCBhL2RyaXZlcnMvczM5MC9jaGFyL2htY2Rydl9jYWNoZS5j IGIvZHJpdmVycy9zMzkwL2NoYXIvaG1jZHJ2X2NhY2hlLmMNCi0tLSBhL2Ry aXZlcnMvczM5MC9jaGFyL2htY2Rydl9jYWNoZS5jDQorKysgYi9kcml2ZXJz L3MzOTAvY2hhci9obWNkcnZfY2FjaGUuYw0KQEAgLTE1NCw4ICsxNTQsNyBA QCBzdGF0aWMgc3NpemVfdCBobWNkcnZfY2FjaGVfZG8oY29uc3Qgc3RyDQog CQkvKiBjYWNoZSBzb21lIGZpbGUgaW5mbyAoRlRQIGNvbW1hbmQsIGZpbGUg bmFtZSBhbmQgZmlsZQ0KIAkJICogc2l6ZSkgdW5jb25kaXRpb25hbGx5DQog CQkgKi8NCi0JCXN0cmxjcHkoaG1jZHJ2X2NhY2hlX2ZpbGUuZm5hbWUsIGZ0 cC0+Zm5hbWUsDQotCQkJSE1DRFJWX0ZUUF9GSURFTlRfTUFYKTsNCisJCXN0 cmFjcHkoaG1jZHJ2X2NhY2hlX2ZpbGUuZm5hbWUsIGZ0cC0+Zm5hbWUpOw0K IAkJaG1jZHJ2X2NhY2hlX2ZpbGUuaWQgPSBmdHAtPmlkOw0KIAkJcHJfZGVi dWcoImNhY2hpbmcgY21kICVkLCBmaWxlIHNpemUgJXp1IGZvciAnJXMnXG4i LA0KIAkJCSBmdHAtPmlkLCBobWNkcnZfY2FjaGVfZmlsZS5mc2l6ZSwgZnRw LT5mbmFtZSk7DQpkaWZmIC11IC1wIGEva2VybmVsL3JlbGF5LmMgYi9rZXJu ZWwvcmVsYXkuYw0KLS0tIGEva2VybmVsL3JlbGF5LmMNCisrKyBiL2tlcm5l bC9yZWxheS5jDQpAQCAtNTg5LDcgKzU4OSw3IEBAIHN0cnVjdCByY2hhbiAq cmVsYXlfb3Blbihjb25zdCBjaGFyICpiYXMNCiAJY2hhbi0+cHJpdmF0ZV9k YXRhID0gcHJpdmF0ZV9kYXRhOw0KIAlpZiAoYmFzZV9maWxlbmFtZSkgew0K IAkJY2hhbi0+aGFzX2Jhc2VfZmlsZW5hbWUgPSAxOw0KLQkJc3RybGNweShj aGFuLT5iYXNlX2ZpbGVuYW1lLCBiYXNlX2ZpbGVuYW1lLCBOQU1FX01BWCk7 DQorCQlzdHJhY3B5KGNoYW4tPmJhc2VfZmlsZW5hbWUsIGJhc2VfZmlsZW5h bWUpOw0KIAl9DQogCXNldHVwX2NhbGxiYWNrcyhjaGFuLCBjYik7DQogCWty ZWZfaW5pdCgmY2hhbi0+a3JlZik7DQpAQCAtNjYwLDcgKzY2MCw3IEBAIGlu dCByZWxheV9sYXRlX3NldHVwX2ZpbGVzKHN0cnVjdCByY2hhbg0KIAlpZiAo IWNoYW4gfHwgIWJhc2VfZmlsZW5hbWUpDQogCQlyZXR1cm4gLUVJTlZBTDsN CiANCi0Jc3RybGNweShjaGFuLT5iYXNlX2ZpbGVuYW1lLCBiYXNlX2ZpbGVu YW1lLCBOQU1FX01BWCk7DQorCXN0cmFjcHkoY2hhbi0+YmFzZV9maWxlbmFt ZSwgYmFzZV9maWxlbmFtZSk7DQogDQogCW11dGV4X2xvY2soJnJlbGF5X2No YW5uZWxzX211dGV4KTsNCiAJLyogSXMgY2hhbiBhbHJlYWR5IHNldCB1cD8g Ki8NCmRpZmYgLXUgLXAgYS9uZXQvbmV0ZmlsdGVyL2lwc2V0L2lwX3NldF9j b3JlLmMgYi9uZXQvbmV0ZmlsdGVyL2lwc2V0L2lwX3NldF9jb3JlLmMNCi0t LSBhL25ldC9uZXRmaWx0ZXIvaXBzZXQvaXBfc2V0X2NvcmUuYw0KKysrIGIv bmV0L25ldGZpbHRlci9pcHNldC9pcF9zZXRfY29yZS5jDQpAQCAtOTE3LDcg KzkxNyw3IEBAIHN0YXRpYyBpbnQgaXBfc2V0X2NyZWF0ZShzdHJ1Y3QgbmV0 ICpuZXQNCiAJaWYgKCFzZXQpDQogCQlyZXR1cm4gLUVOT01FTTsNCiAJc3Bp bl9sb2NrX2luaXQoJnNldC0+bG9jayk7DQotCXN0cmxjcHkoc2V0LT5uYW1l LCBuYW1lLCBJUFNFVF9NQVhOQU1FTEVOKTsNCisJc3RyYWNweShzZXQtPm5h bWUsIG5hbWUpOw0KIAlzZXQtPmZhbWlseSA9IGZhbWlseTsNCiAJc2V0LT5y ZXZpc2lvbiA9IHJldmlzaW9uOw0KIA0KZGlmZiAtdSAtcCBhL2RyaXZlcnMv ZmlybXdhcmUvYXJtX3NjbWkvY2xvY2suYyBiL2RyaXZlcnMvZmlybXdhcmUv YXJtX3NjbWkvY2xvY2suYw0KLS0tIGEvZHJpdmVycy9maXJtd2FyZS9hcm1f c2NtaS9jbG9jay5jDQorKysgYi9kcml2ZXJzL2Zpcm13YXJlL2FybV9zY21p L2Nsb2NrLmMNCkBAIC0xMTEsNyArMTExLDcgQEAgc3RhdGljIGludCBzY21p X2Nsb2NrX2F0dHJpYnV0ZXNfZ2V0KGNvbg0KIA0KIAlyZXQgPSBzY21pX2Rv X3hmZXIoaGFuZGxlLCB0KTsNCiAJaWYgKCFyZXQpDQotCQlzdHJsY3B5KGNs ay0+bmFtZSwgYXR0ci0+bmFtZSwgU0NNSV9NQVhfU1RSX1NJWkUpOw0KKwkJ c3RyYWNweShjbGstPm5hbWUsIGF0dHItPm5hbWUpOw0KIAllbHNlDQogCQlj bGstPm5hbWVbMF0gPSAnXDAnOw0KIA0KZGlmZiAtdSAtcCBhL2RyaXZlcnMv aHdtb24vbG03NS5jIGIvZHJpdmVycy9od21vbi9sbTc1LmMNCi0tLSBhL2Ry aXZlcnMvaHdtb24vbG03NS5jDQorKysgYi9kcml2ZXJzL2h3bW9uL2xtNzUu Yw0KQEAgLTYwNyw3ICs2MDcsNyBAQCBzdGF0aWMgaW50IGxtNzVfZGV0ZWN0 KHN0cnVjdCBpMmNfY2xpZW50DQogCQkJcmV0dXJuIC1FTk9ERVY7DQogCX0N CiANCi0Jc3RybGNweShpbmZvLT50eXBlLCBpc19sbTc1YSA/ICJsbTc1YSIg OiAibG03NSIsIEkyQ19OQU1FX1NJWkUpOw0KKwlzdHJhY3B5KGluZm8tPnR5 cGUsIGlzX2xtNzVhID8gImxtNzVhIiA6ICJsbTc1Iik7DQogDQogCXJldHVy biAwOw0KIH0NCmRpZmYgLXUgLXAgYS9kcml2ZXJzL21pc2MvZWVwcm9tL2Vl cHJvbS5jIGIvZHJpdmVycy9taXNjL2VlcHJvbS9lZXByb20uYw0KLS0tIGEv ZHJpdmVycy9taXNjL2VlcHJvbS9lZXByb20uYw0KKysrIGIvZHJpdmVycy9t aXNjL2VlcHJvbS9lZXByb20uYw0KQEAgLTEzNiw3ICsxMzYsNyBAQCBzdGF0 aWMgaW50IGVlcHJvbV9kZXRlY3Qoc3RydWN0IGkyY19jbGllDQogCSAmJiAh aTJjX2NoZWNrX2Z1bmN0aW9uYWxpdHkoYWRhcHRlciwgSTJDX0ZVTkNfU01C VVNfUkVBRF9JMkNfQkxPQ0spKQ0KIAkJcmV0dXJuIC1FTk9ERVY7DQogDQot CXN0cmxjcHkoaW5mby0+dHlwZSwgImVlcHJvbSIsIEkyQ19OQU1FX1NJWkUp Ow0KKwlzdHJhY3B5KGluZm8tPnR5cGUsICJlZXByb20iKTsNCiANCiAJcmV0 dXJuIDA7DQogfQ0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvczM5MC9ibG9jay9k YXNkX2Vlci5jIGIvZHJpdmVycy9zMzkwL2Jsb2NrL2Rhc2RfZWVyLmMNCi0t LSBhL2RyaXZlcnMvczM5MC9ibG9jay9kYXNkX2Vlci5jDQorKysgYi9kcml2 ZXJzL3MzOTAvYmxvY2svZGFzZF9lZXIuYw0KQEAgLTMxMyw4ICszMTMsNyBA QCBzdGF0aWMgdm9pZCBkYXNkX2Vlcl93cml0ZV9zdGFuZGFyZF90cmlnDQog CWt0aW1lX2dldF9yZWFsX3RzNjQoJnRzKTsNCiAJaGVhZGVyLnR2X3NlYyA9 IHRzLnR2X3NlYzsNCiAJaGVhZGVyLnR2X3VzZWMgPSB0cy50dl9uc2VjIC8g TlNFQ19QRVJfVVNFQzsNCi0Jc3RybGNweShoZWFkZXIuYnVzaWQsIGRldl9u YW1lKCZkZXZpY2UtPmNkZXYtPmRldiksDQotCQlEQVNEX0VFUl9CVVNJRF9T SVpFKTsNCisJc3RyYWNweShoZWFkZXIuYnVzaWQsIGRldl9uYW1lKCZkZXZp Y2UtPmNkZXYtPmRldikpOw0KIA0KIAlzcGluX2xvY2tfaXJxc2F2ZSgmYnVm ZmVybG9jaywgZmxhZ3MpOw0KIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVlcmIs ICZidWZmZXJsaXN0LCBsaXN0KSB7DQpAQCAtMzU2LDggKzM1NSw3IEBAIHN0 YXRpYyB2b2lkIGRhc2RfZWVyX3dyaXRlX3Nuc3NfdHJpZ2dlcigNCiAJa3Rp bWVfZ2V0X3JlYWxfdHM2NCgmdHMpOw0KIAloZWFkZXIudHZfc2VjID0gdHMu dHZfc2VjOw0KIAloZWFkZXIudHZfdXNlYyA9IHRzLnR2X25zZWMgLyBOU0VD X1BFUl9VU0VDOw0KLQlzdHJsY3B5KGhlYWRlci5idXNpZCwgZGV2X25hbWUo JmRldmljZS0+Y2Rldi0+ZGV2KSwNCi0JCURBU0RfRUVSX0JVU0lEX1NJWkUp Ow0KKwlzdHJhY3B5KGhlYWRlci5idXNpZCwgZGV2X25hbWUoJmRldmljZS0+ Y2Rldi0+ZGV2KSk7DQogDQogCXNwaW5fbG9ja19pcnFzYXZlKCZidWZmZXJs b2NrLCBmbGFncyk7DQogCWxpc3RfZm9yX2VhY2hfZW50cnkoZWVyYiwgJmJ1 ZmZlcmxpc3QsIGxpc3QpIHsNCmRpZmYgLXUgLXAgYS9uZXQvbWFjODAyMTEv aWZhY2UuYyBiL25ldC9tYWM4MDIxMS9pZmFjZS5jDQotLS0gYS9uZXQvbWFj ODAyMTEvaWZhY2UuYw0KKysrIGIvbmV0L21hYzgwMjExL2lmYWNlLmMNCkBA IC0xNzQ1LDcgKzE3NDUsNyBAQCBpbnQgaWVlZTgwMjExX2lmX2FkZChzdHJ1 Y3QgaWVlZTgwMjExX2xvDQogCQl3ZGV2ID0gJnNkYXRhLT53ZGV2Ow0KIA0K IAkJc2RhdGEtPmRldiA9IE5VTEw7DQotCQlzdHJsY3B5KHNkYXRhLT5uYW1l LCBuYW1lLCBJRk5BTVNJWik7DQorCQlzdHJhY3B5KHNkYXRhLT5uYW1lLCBu YW1lKTsNCiAJCWllZWU4MDIxMV9hc3NpZ25fcGVybV9hZGRyKGxvY2FsLCB3 ZGV2LT5hZGRyZXNzLCB0eXBlKTsNCiAJCW1lbWNweShzZGF0YS0+dmlmLmFk ZHIsIHdkZXYtPmFkZHJlc3MsIEVUSF9BTEVOKTsNCiAJfSBlbHNlIHsNCmRp ZmYgLXUgLXAgYS9kcml2ZXJzL2Zpcm13YXJlL2FybV9zY21pL3Bvd2VyLmMg Yi9kcml2ZXJzL2Zpcm13YXJlL2FybV9zY21pL3Bvd2VyLmMNCi0tLSBhL2Ry aXZlcnMvZmlybXdhcmUvYXJtX3NjbWkvcG93ZXIuYw0KKysrIGIvZHJpdmVy cy9maXJtd2FyZS9hcm1fc2NtaS9wb3dlci5jDQpAQCAtMTA2LDcgKzEwNiw3 IEBAIHNjbWlfcG93ZXJfZG9tYWluX2F0dHJpYnV0ZXNfZ2V0KGNvbnN0IHMN CiAJCWRvbV9pbmZvLT5zdGF0ZV9zZXRfbm90aWZ5ID0gU1VQUE9SVFNfU1RB VEVfU0VUX05PVElGWShmbGFncyk7DQogCQlkb21faW5mby0+c3RhdGVfc2V0 X2FzeW5jID0gU1VQUE9SVFNfU1RBVEVfU0VUX0FTWU5DKGZsYWdzKTsNCiAJ CWRvbV9pbmZvLT5zdGF0ZV9zZXRfc3luYyA9IFNVUFBPUlRTX1NUQVRFX1NF VF9TWU5DKGZsYWdzKTsNCi0JCXN0cmxjcHkoZG9tX2luZm8tPm5hbWUsIGF0 dHItPm5hbWUsIFNDTUlfTUFYX1NUUl9TSVpFKTsNCisJCXN0cmFjcHkoZG9t X2luZm8tPm5hbWUsIGF0dHItPm5hbWUpOw0KIAl9DQogDQogCXNjbWlfeGZl cl9wdXQoaGFuZGxlLCB0KTsNCmRpZmYgLXUgLXAgYS9kcml2ZXJzL2h3bW9u L2FkbTEwMzEuYyBiL2RyaXZlcnMvaHdtb24vYWRtMTAzMS5jDQotLS0gYS9k cml2ZXJzL2h3bW9uL2FkbTEwMzEuYw0KKysrIGIvZHJpdmVycy9od21vbi9h ZG0xMDMxLmMNCkBAIC05ODYsNyArOTg2LDcgQEAgc3RhdGljIGludCBhZG0x MDMxX2RldGVjdChzdHJ1Y3QgaTJjX2NsaQ0KIAkJcmV0dXJuIC1FTk9ERVY7 DQogCW5hbWUgPSAoaWQgPT0gMHgzMCkgPyAiYWRtMTAzMCIgOiAiYWRtMTAz MSI7DQogDQotCXN0cmxjcHkoaW5mby0+dHlwZSwgbmFtZSwgSTJDX05BTUVf U0laRSk7DQorCXN0cmFjcHkoaW5mby0+dHlwZSwgbmFtZSk7DQogDQogCXJl dHVybiAwOw0KIH0NCmRpZmYgLXUgLXAgYS9kcml2ZXJzL2h3bW9uL3N0dHM3 NTEuYyBiL2RyaXZlcnMvaHdtb24vc3R0czc1MS5jDQotLS0gYS9kcml2ZXJz L2h3bW9uL3N0dHM3NTEuYw0KKysrIGIvZHJpdmVycy9od21vbi9zdHRzNzUx LmMNCkBAIC02OTIsNyArNjkyLDcgQEAgc3RhdGljIGludCBzdHRzNzUxX2Rl dGVjdChzdHJ1Y3QgaTJjX2NsaQ0KIAl9DQogCWRldl9kYmcoJm5ld19jbGll bnQtPmRldiwgIkNoaXAgJXMgZGV0ZWN0ZWQiLCBuYW1lKTsNCiANCi0Jc3Ry bGNweShpbmZvLT50eXBlLCBzdHRzNzUxX2lkWzBdLm5hbWUsIEkyQ19OQU1F X1NJWkUpOw0KKwlzdHJhY3B5KGluZm8tPnR5cGUsIHN0dHM3NTFfaWRbMF0u bmFtZSk7DQogCXJldHVybiAwOw0KIH0NCiANCmRpZmYgLXUgLXAgYS9kcml2 ZXJzL2luZmluaWJhbmQvY29yZS9kZXZpY2UuYyBiL2RyaXZlcnMvaW5maW5p YmFuZC9jb3JlL2RldmljZS5jDQotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQv Y29yZS9kZXZpY2UuYw0KKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUv ZGV2aWNlLmMNCkBAIC00MjksNyArNDI5LDcgQEAgaW50IGliX2RldmljZV9y ZW5hbWUoc3RydWN0IGliX2RldmljZSAqaQ0KIAkJcmV0dXJuIHJldDsNCiAJ fQ0KIA0KLQlzdHJsY3B5KGliZGV2LT5uYW1lLCBuYW1lLCBJQl9ERVZJQ0Vf TkFNRV9NQVgpOw0KKwlzdHJhY3B5KGliZGV2LT5uYW1lLCBuYW1lKTsNCiAJ cmV0ID0gcmVuYW1lX2NvbXBhdF9kZXZzKGliZGV2KTsNCiANCiAJZG93bmdy YWRlX3dyaXRlKCZkZXZpY2VzX3J3c2VtKTsNCkBAIC0xMTQyLDcgKzExNDIs NyBAQCBzdGF0aWMgaW50IGFzc2lnbl9uYW1lKHN0cnVjdCBpYl9kZXZpY2UN CiAJCXJldCA9IC1FTkZJTEU7DQogCQlnb3RvIG91dDsNCiAJfQ0KLQlzdHJs Y3B5KGRldmljZS0+bmFtZSwgZGV2X25hbWUoJmRldmljZS0+ZGV2KSwgSUJf REVWSUNFX05BTUVfTUFYKTsNCisJc3RyYWNweShkZXZpY2UtPm5hbWUsIGRl dl9uYW1lKCZkZXZpY2UtPmRldikpOw0KIA0KIAlyZXQgPSB4YV9hbGxvY19j eWNsaWMoJmRldmljZXMsICZkZXZpY2UtPmluZGV4LCBkZXZpY2UsIHhhX2xp bWl0XzMxYiwNCiAJCQkmbGFzdF9pZCwgR0ZQX0tFUk5FTCk7DQpkaWZmIC11 IC1wIGEvZHJpdmVycy9tZmQvaHRjLWkyY3BsZC5jIGIvZHJpdmVycy9tZmQv aHRjLWkyY3BsZC5jDQotLS0gYS9kcml2ZXJzL21mZC9odGMtaTJjcGxkLmMN CisrKyBiL2RyaXZlcnMvbWZkL2h0Yy1pMmNwbGQuYw0KQEAgLTM1MSw3ICsz NTEsNyBAQCBzdGF0aWMgaW50IGh0Y3BsZF9yZWdpc3Rlcl9jaGlwX2kyYygN CiANCiAJbWVtc2V0KCZpbmZvLCAwLCBzaXplb2Yoc3RydWN0IGkyY19ib2Fy ZF9pbmZvKSk7DQogCWluZm8uYWRkciA9IHBsYXRfY2hpcF9kYXRhLT5hZGRy Ow0KLQlzdHJsY3B5KGluZm8udHlwZSwgImh0Y3BsZC1jaGlwIiwgSTJDX05B TUVfU0laRSk7DQorCXN0cmFjcHkoaW5mby50eXBlLCAiaHRjcGxkLWNoaXAi KTsNCiAJaW5mby5wbGF0Zm9ybV9kYXRhID0gY2hpcDsNCiANCiAJLyogQWRk IHRoZSBJMkMgZGV2aWNlLiAgVGhpcyBjYWxscyB0aGUgcHJvYmUoKSBmdW5j dGlvbi4gKi8NCmRpZmYgLXUgLXAgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9i cm9hZGNvbS9ibngyeC9ibngyeF9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9icm9hZGNvbS9ibngyeC9ibngyeF9tYWluLmMNCi0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueDJ4L2JueDJ4X21haW4uYw0K KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54MngvYm54 MnhfbWFpbi5jDQpAQCAtMzM2NCw4ICszMzY0LDcgQEAgc3RhdGljIHZvaWQg Ym54MnhfZHJ2X2luZm9fZXRoZXJfc3RhdChzdA0KIAkJJmJwLT5zcF9vYmpz LT5tYWNfb2JqOw0KIAlpbnQgaTsNCiANCi0Jc3RybGNweShldGhlcl9zdGF0 LT52ZXJzaW9uLCBEUlZfTU9EVUxFX1ZFUlNJT04sDQotCQlFVEhfU1RBVF9J TkZPX1ZFUlNJT05fTEVOKTsNCisJc3RyYWNweShldGhlcl9zdGF0LT52ZXJz aW9uLCBEUlZfTU9EVUxFX1ZFUlNJT04pOw0KIA0KIAkvKiBnZXQgRFJWX0lO Rk9fRVRIX1NUQVRfTlVNX01BQ1NfUkVRVUlSRUQgbWFjcywgcGxhY2luZyB0 aGVtIGluIHRoZQ0KIAkgKiBtYWNfbG9jYWwgZmllbGQgaW4gZXRoZXJfc3Rh dCBzdHJ1Y3QuIFRoZSBiYXNlIGFkZHJlc3MgaXMgb2Zmc2V0IGJ5IDINCmRp ZmYgLXUgLXAgYS90b29scy9wZXJmL3V0aWwvbWFjaGluZS5jIGIvdG9vbHMv cGVyZi91dGlsL21hY2hpbmUuYw0KLS0tIGEvdG9vbHMvcGVyZi91dGlsL21h Y2hpbmUuYw0KKysrIGIvdG9vbHMvcGVyZi91dGlsL21hY2hpbmUuYw0KQEAg LTk4OCw3ICs5ODgsNyBAQCBpbnQgbWFjaGluZV9fY3JlYXRlX2V4dHJhX2tl cm5lbF9tYXAoc3RyDQogCWttYXAgPSBtYXBfX2ttYXAobWFwKTsNCiANCiAJ a21hcC0+a21hcHMgPSAmbWFjaGluZS0+a21hcHM7DQotCXN0cmxjcHkoa21h cC0+bmFtZSwgeG0tPm5hbWUsIEtNQVBfTkFNRV9MRU4pOw0KKwlzdHJhY3B5 KGttYXAtPm5hbWUsIHhtLT5uYW1lKTsNCiANCiAJbWFwX2dyb3Vwc19faW5z ZXJ0KCZtYWNoaW5lLT5rbWFwcywgbWFwKTsNCiANCkBAIC0xMDc4LDcgKzEw NzgsNyBAQCBpbnQgbWFjaGluZV9fbWFwX3g4Nl82NF9lbnRyeV90cmFtcG9s aW5lDQogCQkJLnBnb2ZmID0gcGdvZmYsDQogCQl9Ow0KIA0KLQkJc3RybGNw eSh4bS5uYW1lLCBFTlRSWV9UUkFNUE9MSU5FX05BTUUsIEtNQVBfTkFNRV9M RU4pOw0KKwkJc3RyYWNweSh4bS5uYW1lLCBFTlRSWV9UUkFNUE9MSU5FX05B TUUpOw0KIA0KIAkJaWYgKG1hY2hpbmVfX2NyZWF0ZV9leHRyYV9rZXJuZWxf bWFwKG1hY2hpbmUsIGtlcm5lbCwgJnhtKSA8IDApDQogCQkJcmV0dXJuIC0x Ow0KQEAgLTE1NDIsNyArMTU0Miw3IEBAIHN0YXRpYyBpbnQgbWFjaGluZV9f cHJvY2Vzc19leHRyYV9rZXJuZWwNCiAJaWYgKGtlcm5lbCA9PSBOVUxMKQ0K IAkJcmV0dXJuIC0xOw0KIA0KLQlzdHJsY3B5KHhtLm5hbWUsIGV2ZW50LT5t bWFwLmZpbGVuYW1lLCBLTUFQX05BTUVfTEVOKTsNCisJc3RyYWNweSh4bS5u YW1lLCBldmVudC0+bW1hcC5maWxlbmFtZSk7DQogDQogCXJldHVybiBtYWNo aW5lX19jcmVhdGVfZXh0cmFfa2VybmVsX21hcChtYWNoaW5lLCBrZXJuZWws ICZ4bSk7DQogfQ0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvaHdtb24vbG05NTI0 MS5jIGIvZHJpdmVycy9od21vbi9sbTk1MjQxLmMNCi0tLSBhL2RyaXZlcnMv aHdtb24vbG05NTI0MS5jDQorKysgYi9kcml2ZXJzL2h3bW9uL2xtOTUyNDEu Yw0KQEAgLTM4OSw3ICszODksNyBAQCBzdGF0aWMgaW50IGxtOTUyNDFfZGV0 ZWN0KHN0cnVjdCBpMmNfY2xpDQogCX0NCiANCiAJLyogRmlsbCB0aGUgaTJj IGJvYXJkIGluZm8gKi8NCi0Jc3RybGNweShpbmZvLT50eXBlLCBuYW1lLCBJ MkNfTkFNRV9TSVpFKTsNCisJc3RyYWNweShpbmZvLT50eXBlLCBuYW1lKTsN CiAJcmV0dXJuIDA7DQogfQ0KIA0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvbWVk aWEvaTJjL3NhYTcxMjcuYyBiL2RyaXZlcnMvbWVkaWEvaTJjL3NhYTcxMjcu Yw0KLS0tIGEvZHJpdmVycy9tZWRpYS9pMmMvc2FhNzEyNy5jDQorKysgYi9k cml2ZXJzL21lZGlhL2kyYy9zYWE3MTI3LmMNCkBAIC03NTIsMTAgKzc1Miwx MCBAQCBzdGF0aWMgaW50IHNhYTcxMjdfcHJvYmUoc3RydWN0IGkyY19jbGll DQogCQkJc2FhNzEyN193cml0ZShzZCwgU0FBNzEyOV9SRUdfRkFERV9LRVlf Q09MMiwNCiAJCQkJCXJlYWRfcmVzdWx0KTsNCiAJCQlzdGF0ZS0+aWRlbnQg PSBTQUE3MTI5Ow0KLQkJCXN0cnNjcHkoY2xpZW50LT5uYW1lLCAic2FhNzEy OSIsIEkyQ19OQU1FX1NJWkUpOw0KKwkJCXN0cmFjcHkoY2xpZW50LT5uYW1l LCAic2FhNzEyOSIpOw0KIAkJfSBlbHNlIHsNCiAJCQlzdGF0ZS0+aWRlbnQg PSBTQUE3MTI3Ow0KLQkJCXN0cnNjcHkoY2xpZW50LT5uYW1lLCAic2FhNzEy NyIsIEkyQ19OQU1FX1NJWkUpOw0KKwkJCXN0cmFjcHkoY2xpZW50LT5uYW1l LCAic2FhNzEyNyIpOw0KIAkJfQ0KIAl9DQogDQpkaWZmIC11IC1wIGEvc291 bmQvYW9hL2NvZGVjcy90YXMuYyBiL3NvdW5kL2FvYS9jb2RlY3MvdGFzLmMN Ci0tLSBhL3NvdW5kL2FvYS9jb2RlY3MvdGFzLmMNCisrKyBiL3NvdW5kL2Fv YS9jb2RlY3MvdGFzLmMNCkBAIC04OTQsNyArODk0LDcgQEAgc3RhdGljIGlu dCB0YXNfaTJjX3Byb2JlKHN0cnVjdCBpMmNfY2xpZQ0KIAkvKiBzZWVtcyB0 aGF0IGhhbGYgaXMgYSBzYW5lciBkZWZhdWx0ICovDQogCXRhcy0+ZHJjX3Jh bmdlID0gVEFTMzAwNF9EUkNfTUFYIC8gMjsNCiANCi0Jc3RybGNweSh0YXMt PmNvZGVjLm5hbWUsICJ0YXMiLCBNQVhfQ09ERUNfTkFNRV9MRU4pOw0KKwlz dHJhY3B5KHRhcy0+Y29kZWMubmFtZSwgInRhcyIpOw0KIAl0YXMtPmNvZGVj Lm93bmVyID0gVEhJU19NT0RVTEU7DQogCXRhcy0+Y29kZWMuaW5pdCA9IHRh c19pbml0X2NvZGVjOw0KIAl0YXMtPmNvZGVjLmV4aXQgPSB0YXNfZXhpdF9j b2RlYzsNCmRpZmYgLXUgLXAgYS9kcml2ZXJzL2h3bW9uL2xtOTUyNDUuYyBi L2RyaXZlcnMvaHdtb24vbG05NTI0NS5jDQotLS0gYS9kcml2ZXJzL2h3bW9u L2xtOTUyNDUuYw0KKysrIGIvZHJpdmVycy9od21vbi9sbTk1MjQ1LmMNCkBA IC00NjEsNyArNDYxLDcgQEAgc3RhdGljIGludCBsbTk1MjQ1X2RldGVjdChz dHJ1Y3QgaTJjX2NsaQ0KIAkJcmV0dXJuIC1FTk9ERVY7DQogCX0NCiANCi0J c3RybGNweShpbmZvLT50eXBlLCBuYW1lLCBJMkNfTkFNRV9TSVpFKTsNCisJ c3RyYWNweShpbmZvLT50eXBlLCBuYW1lKTsNCiAJcmV0dXJuIDA7DQogfQ0K IA0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvaHdtb24vZ2w1MjBzbS5jIGIvZHJp dmVycy9od21vbi9nbDUyMHNtLmMNCi0tLSBhL2RyaXZlcnMvaHdtb24vZ2w1 MjBzbS5jDQorKysgYi9kcml2ZXJzL2h3bW9uL2dsNTIwc20uYw0KQEAgLTgx MSw3ICs4MTEsNyBAQCBzdGF0aWMgaW50IGdsNTIwX2RldGVjdChzdHJ1Y3Qg aTJjX2NsaWVuDQogCQlyZXR1cm4gLUVOT0RFVjsNCiAJfQ0KIA0KLQlzdHJs Y3B5KGluZm8tPnR5cGUsICJnbDUyMHNtIiwgSTJDX05BTUVfU0laRSk7DQor CXN0cmFjcHkoaW5mby0+dHlwZSwgImdsNTIwc20iKTsNCiANCiAJcmV0dXJu IDA7DQogfQ0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvbWVkaWEvcGNpL3NhYTcx NjQvc2FhNzE2NC1kdmIuYyBiL2RyaXZlcnMvbWVkaWEvcGNpL3NhYTcxNjQv c2FhNzE2NC1kdmIuYw0KLS0tIGEvZHJpdmVycy9tZWRpYS9wY2kvc2FhNzE2 NC9zYWE3MTY0LWR2Yi5jDQorKysgYi9kcml2ZXJzL21lZGlhL3BjaS9zYWE3 MTY0L3NhYTcxNjQtZHZiLmMNCkBAIC0xMTAsNyArMTEwLDcgQEAgc3RhdGlj IGludCBzaTIxNTdfYXR0YWNoKHN0cnVjdCBzYWE3MTY0Xw0KIA0KIAltZW1z ZXQoJmJpLCAwLCBzaXplb2YoYmkpKTsNCiANCi0Jc3Ryc2NweShiaS50eXBl LCAic2kyMTU3IiwgSTJDX05BTUVfU0laRSk7DQorCXN0cmFjcHkoYmkudHlw ZSwgInNpMjE1NyIpOw0KIAliaS5wbGF0Zm9ybV9kYXRhID0gY2ZnOw0KIAli aS5hZGRyID0gYWRkcjhiaXQgPj4gMTsNCiANCkBAIC02MzMsNyArNjMzLDcg QEAgaW50IHNhYTcxNjRfZHZiX3JlZ2lzdGVyKHN0cnVjdCBzYWE3MTY0Xw0K IAkJCXNpMjE2OF9jb25maWcuZmUgPSAmcG9ydC0+ZHZiLmZyb250ZW5kOw0K IAkJCXNpMjE2OF9jb25maWcudHNfbW9kZSA9IFNJMjE2OF9UU19TRVJJQUw7 DQogCQkJbWVtc2V0KCZpbmZvLCAwLCBzaXplb2Yoc3RydWN0IGkyY19ib2Fy ZF9pbmZvKSk7DQotCQkJc3Ryc2NweShpbmZvLnR5cGUsICJzaTIxNjgiLCBJ MkNfTkFNRV9TSVpFKTsNCisJCQlzdHJhY3B5KGluZm8udHlwZSwgInNpMjE2 OCIpOw0KIAkJCWluZm8uYWRkciA9IDB4YzggPj4gMTsNCiAJCQlpbmZvLnBs YXRmb3JtX2RhdGEgPSAmc2kyMTY4X2NvbmZpZzsNCiAJCQlyZXF1ZXN0X21v ZHVsZShpbmZvLnR5cGUpOw0KQEAgLTY1Myw3ICs2NTMsNyBAQCBpbnQgc2Fh NzE2NF9kdmJfcmVnaXN0ZXIoc3RydWN0IHNhYTcxNjRfDQogCQkJc2kyMTU3 X2NvbmZpZy5pZl9wb3J0ID0gMTsNCiAJCQlzaTIxNTdfY29uZmlnLmZlID0g cG9ydC0+ZHZiLmZyb250ZW5kOw0KIAkJCW1lbXNldCgmaW5mbywgMCwgc2l6 ZW9mKHN0cnVjdCBpMmNfYm9hcmRfaW5mbykpOw0KLQkJCXN0cnNjcHkoaW5m by50eXBlLCAic2kyMTU3IiwgSTJDX05BTUVfU0laRSk7DQorCQkJc3RyYWNw eShpbmZvLnR5cGUsICJzaTIxNTciKTsNCiAJCQlpbmZvLmFkZHIgPSAweGMw ID4+IDE7DQogCQkJaW5mby5wbGF0Zm9ybV9kYXRhID0gJnNpMjE1N19jb25m aWc7DQogCQkJcmVxdWVzdF9tb2R1bGUoaW5mby50eXBlKTsNCkBAIC02Nzgs NyArNjc4LDcgQEAgaW50IHNhYTcxNjRfZHZiX3JlZ2lzdGVyKHN0cnVjdCBz YWE3MTY0Xw0KIAkJCXNpMjE2OF9jb25maWcuZmUgPSAmcG9ydC0+ZHZiLmZy b250ZW5kOw0KIAkJCXNpMjE2OF9jb25maWcudHNfbW9kZSA9IFNJMjE2OF9U U19TRVJJQUw7DQogCQkJbWVtc2V0KCZpbmZvLCAwLCBzaXplb2Yoc3RydWN0 IGkyY19ib2FyZF9pbmZvKSk7DQotCQkJc3Ryc2NweShpbmZvLnR5cGUsICJz aTIxNjgiLCBJMkNfTkFNRV9TSVpFKTsNCisJCQlzdHJhY3B5KGluZm8udHlw ZSwgInNpMjE2OCIpOw0KIAkJCWluZm8uYWRkciA9IDB4Y2MgPj4gMTsNCiAJ CQlpbmZvLnBsYXRmb3JtX2RhdGEgPSAmc2kyMTY4X2NvbmZpZzsNCiAJCQly ZXF1ZXN0X21vZHVsZShpbmZvLnR5cGUpOw0KQEAgLTY5OCw3ICs2OTgsNyBA QCBpbnQgc2FhNzE2NF9kdmJfcmVnaXN0ZXIoc3RydWN0IHNhYTcxNjRfDQog CQkJc2kyMTU3X2NvbmZpZy5mZSA9IHBvcnQtPmR2Yi5mcm9udGVuZDsNCiAJ CQlzaTIxNTdfY29uZmlnLmlmX3BvcnQgPSAxOw0KIAkJCW1lbXNldCgmaW5m bywgMCwgc2l6ZW9mKHN0cnVjdCBpMmNfYm9hcmRfaW5mbykpOw0KLQkJCXN0 cnNjcHkoaW5mby50eXBlLCAic2kyMTU3IiwgSTJDX05BTUVfU0laRSk7DQor CQkJc3RyYWNweShpbmZvLnR5cGUsICJzaTIxNTciKTsNCiAJCQlpbmZvLmFk ZHIgPSAweGMwID4+IDE7DQogCQkJaW5mby5wbGF0Zm9ybV9kYXRhID0gJnNp MjE1N19jb25maWc7DQogCQkJcmVxdWVzdF9tb2R1bGUoaW5mby50eXBlKTsN CmRpZmYgLXUgLXAgYS9kcml2ZXJzL21lZGlhL3VzYi9kdmItdXNiL2R3MjEw Mi5jIGIvZHJpdmVycy9tZWRpYS91c2IvZHZiLXVzYi9kdzIxMDIuYw0KLS0t IGEvZHJpdmVycy9tZWRpYS91c2IvZHZiLXVzYi9kdzIxMDIuYw0KKysrIGIv ZHJpdmVycy9tZWRpYS91c2IvZHZiLXVzYi9kdzIxMDIuYw0KQEAgLTE1ODYs NyArMTU4Niw3IEBAIHN0YXRpYyBpbnQgdHRfczJfNDYwMF9mcm9udGVuZF9h dHRhY2goc3QNCiAJbTg4ZHMzMTAzX3BkYXRhLmxuYl9odl9wb2wgPSAxOw0K IAltODhkczMxMDNfcGRhdGEubG5iX2VuX3BvbCA9IDA7DQogCW1lbXNldCgm Ym9hcmRfaW5mbywgMCwgc2l6ZW9mKGJvYXJkX2luZm8pKTsNCi0Jc3Ryc2Nw eShib2FyZF9pbmZvLnR5cGUsICJtODhkczMxMDMiLCBJMkNfTkFNRV9TSVpF KTsNCisJc3RyYWNweShib2FyZF9pbmZvLnR5cGUsICJtODhkczMxMDMiKTsN CiAJYm9hcmRfaW5mby5hZGRyID0gMHg2ODsNCiAJYm9hcmRfaW5mby5wbGF0 Zm9ybV9kYXRhID0gJm04OGRzMzEwM19wZGF0YTsNCiAJcmVxdWVzdF9tb2R1 bGUoIm04OGRzMzEwMyIpOw0KQEAgLTE2MDUsNyArMTYwNSw3IEBAIHN0YXRp YyBpbnQgdHRfczJfNDYwMF9mcm9udGVuZF9hdHRhY2goc3QNCiAJLyogYXR0 YWNoIHR1bmVyICovDQogCXRzMjAyMF9jb25maWcuZmUgPSBhZGFwLT5mZV9h ZGFwWzBdLmZlOw0KIAltZW1zZXQoJmJvYXJkX2luZm8sIDAsIHNpemVvZihi b2FyZF9pbmZvKSk7DQotCXN0cnNjcHkoYm9hcmRfaW5mby50eXBlLCAidHMy MDIyIiwgSTJDX05BTUVfU0laRSk7DQorCXN0cmFjcHkoYm9hcmRfaW5mby50 eXBlLCAidHMyMDIyIik7DQogCWJvYXJkX2luZm8uYWRkciA9IDB4NjA7DQog CWJvYXJkX2luZm8ucGxhdGZvcm1fZGF0YSA9ICZ0czIwMjBfY29uZmlnOw0K IAlyZXF1ZXN0X21vZHVsZSgidHMyMDIwIik7DQpkaWZmIC11IC1wIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OV9maXJtd2FyZS5jIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OV9maXJtd2FyZS5j DQotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrL3I4MTY5X2Zp cm13YXJlLmMNCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsv cjgxNjlfZmlybXdhcmUuYw0KQEAgLTY4LDcgKzY4LDcgQEAgc3RhdGljIGJv b2wgcnRsX2Z3X2Zvcm1hdF9vayhzdHJ1Y3QgcnRsXw0KIAkJaWYgKHNpemUg PiAoZnctPnNpemUgLSBzdGFydCkgLyBGV19PUENPREVfU0laRSkNCiAJCQly ZXR1cm4gZmFsc2U7DQogDQotCQlzdHJzY3B5KHJ0bF9mdy0+dmVyc2lvbiwg ZndfaW5mby0+dmVyc2lvbiwgUlRMX1ZFUl9TSVpFKTsNCisJCXN0cmFjcHko cnRsX2Z3LT52ZXJzaW9uLCBmd19pbmZvLT52ZXJzaW9uKTsNCiANCiAJCXBh LT5jb2RlID0gKF9fbGUzMiAqKShmdy0+ZGF0YSArIHN0YXJ0KTsNCiAJCXBh LT5zaXplID0gc2l6ZTsNCkBAIC03Niw3ICs3Niw3IEBAIHN0YXRpYyBib29s IHJ0bF9md19mb3JtYXRfb2soc3RydWN0IHJ0bF8NCiAJCWlmIChmdy0+c2l6 ZSAlIEZXX09QQ09ERV9TSVpFKQ0KIAkJCXJldHVybiBmYWxzZTsNCiANCi0J CXN0cnNjcHkocnRsX2Z3LT52ZXJzaW9uLCBydGxfZnctPmZ3X25hbWUsIFJU TF9WRVJfU0laRSk7DQorCQlzdHJhY3B5KHJ0bF9mdy0+dmVyc2lvbiwgcnRs X2Z3LT5md19uYW1lKTsNCiANCiAJCXBhLT5jb2RlID0gKF9fbGUzMiAqKWZ3 LT5kYXRhOw0KIAkJcGEtPnNpemUgPSBmdy0+c2l6ZSAvIEZXX09QQ09ERV9T SVpFOw0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvcGxhdGZvcm0veDg2L2ludGVs X2NodF9pbnQzM2ZlLmMgYi9kcml2ZXJzL3BsYXRmb3JtL3g4Ni9pbnRlbF9j aHRfaW50MzNmZS5jDQotLS0gYS9kcml2ZXJzL3BsYXRmb3JtL3g4Ni9pbnRl bF9jaHRfaW50MzNmZS5jDQorKysgYi9kcml2ZXJzL3BsYXRmb3JtL3g4Ni9p bnRlbF9jaHRfaW50MzNmZS5jDQpAQCAtMjg1LDcgKzI4NSw3IEBAIGNodF9p bnQzM2ZlX3JlZ2lzdGVyX21heDE3MDQ3KHN0cnVjdCBkZXYNCiAJfQ0KIA0K IAltZW1zZXQoJmJvYXJkX2luZm8sIDAsIHNpemVvZihib2FyZF9pbmZvKSk7 DQotCXN0cmxjcHkoYm9hcmRfaW5mby50eXBlLCAibWF4MTcwNDciLCBJMkNf TkFNRV9TSVpFKTsNCisJc3RyYWNweShib2FyZF9pbmZvLnR5cGUsICJtYXgx NzA0NyIpOw0KIAlib2FyZF9pbmZvLmRldl9uYW1lID0gIm1heDE3MDQ3IjsN CiAJYm9hcmRfaW5mby5md25vZGUgPSBmd25vZGU7DQogCWRhdGEtPm1heDE3 MDQ3ID0gaTJjX2FjcGlfbmV3X2RldmljZShkZXYsIDEsICZib2FyZF9pbmZv KTsNCkBAIC0zNzQsNyArMzc0LDcgQEAgc3RhdGljIGludCBjaHRfaW50MzNm ZV9wcm9iZShzdHJ1Y3QgcGxhdA0KIAl9DQogDQogCW1lbXNldCgmYm9hcmRf aW5mbywgMCwgc2l6ZW9mKGJvYXJkX2luZm8pKTsNCi0Jc3RybGNweShib2Fy ZF9pbmZvLnR5cGUsICJ0eXBlY19mdXNiMzAyIiwgSTJDX05BTUVfU0laRSk7 DQorCXN0cmFjcHkoYm9hcmRfaW5mby50eXBlLCAidHlwZWNfZnVzYjMwMiIp Ow0KIAlib2FyZF9pbmZvLmRldl9uYW1lID0gImZ1c2IzMDIiOw0KIAlib2Fy ZF9pbmZvLmZ3bm9kZSA9IGZ3bm9kZTsNCiAJYm9hcmRfaW5mby5pcnEgPSBm dXNiMzAyX2lycTsNCkBAIC0zOTQsNyArMzk0LDcgQEAgc3RhdGljIGludCBj aHRfaW50MzNmZV9wcm9iZShzdHJ1Y3QgcGxhdA0KIAltZW1zZXQoJmJvYXJk X2luZm8sIDAsIHNpemVvZihib2FyZF9pbmZvKSk7DQogCWJvYXJkX2luZm8u ZGV2X25hbWUgPSAicGkzdXNiMzA1MzIiOw0KIAlib2FyZF9pbmZvLmZ3bm9k ZSA9IGZ3bm9kZTsNCi0Jc3RybGNweShib2FyZF9pbmZvLnR5cGUsICJwaTN1 c2IzMDUzMiIsIEkyQ19OQU1FX1NJWkUpOw0KKwlzdHJhY3B5KGJvYXJkX2lu Zm8udHlwZSwgInBpM3VzYjMwNTMyIik7DQogDQogCWRhdGEtPnBpM3VzYjMw NTMyID0gaTJjX2FjcGlfbmV3X2RldmljZShkZXYsIDMsICZib2FyZF9pbmZv KTsNCiAJaWYgKElTX0VSUihkYXRhLT5waTN1c2IzMDUzMikpIHsNCmRpZmYg LXUgLXAgYS9uZXQvY29yZS9uZXRwb2xsLmMgYi9uZXQvY29yZS9uZXRwb2xs LmMNCi0tLSBhL25ldC9jb3JlL25ldHBvbGwuYw0KKysrIGIvbmV0L2NvcmUv bmV0cG9sbC5jDQpAQCAtNTg4LDcgKzU4OCw3IEBAIGludCBfX25ldHBvbGxf c2V0dXAoc3RydWN0IG5ldHBvbGwgKm5wLA0KIAlpbnQgZXJyOw0KIA0KIAlu cC0+ZGV2ID0gbmRldjsNCi0Jc3RybGNweShucC0+ZGV2X25hbWUsIG5kZXYt Pm5hbWUsIElGTkFNU0laKTsNCisJc3RyYWNweShucC0+ZGV2X25hbWUsIG5k ZXYtPm5hbWUpOw0KIA0KIAlpZiAobmRldi0+cHJpdl9mbGFncyAmIElGRl9E SVNBQkxFX05FVFBPTEwpIHsNCiAJCW5wX2VycihucCwgIiVzIGRvZXNuJ3Qg c3VwcG9ydCBwb2xsaW5nLCBhYm9ydGluZ1xuIiwNCmRpZmYgLXUgLXAgYS9k cml2ZXJzL2h3bW9uL2xtOTIuYyBiL2RyaXZlcnMvaHdtb24vbG05Mi5jDQot LS0gYS9kcml2ZXJzL2h3bW9uL2xtOTIuYw0KKysrIGIvZHJpdmVycy9od21v bi9sbTkyLmMNCkBAIC0yODcsNyArMjg3LDcgQEAgc3RhdGljIGludCBsbTky X2RldGVjdChzdHJ1Y3QgaTJjX2NsaWVudA0KIAllbHNlDQogCQlyZXR1cm4g LUVOT0RFVjsNCiANCi0Jc3RybGNweShpbmZvLT50eXBlLCAibG05MiIsIEky Q19OQU1FX1NJWkUpOw0KKwlzdHJhY3B5KGluZm8tPnR5cGUsICJsbTkyIik7 DQogDQogCXJldHVybiAwOw0KIH0NCmRpZmYgLXUgLXAgYS9kcml2ZXJzL21l ZGlhL2R2Yi1mcm9udGVuZHMvdHMyMDIwLmMgYi9kcml2ZXJzL21lZGlhL2R2 Yi1mcm9udGVuZHMvdHMyMDIwLmMNCi0tLSBhL2RyaXZlcnMvbWVkaWEvZHZi LWZyb250ZW5kcy90czIwMjAuYw0KKysrIGIvZHJpdmVycy9tZWRpYS9kdmIt ZnJvbnRlbmRzL3RzMjAyMC5jDQpAQCAtNTE2LDcgKzUxNiw3IEBAIHN0cnVj dCBkdmJfZnJvbnRlbmQgKnRzMjAyMF9hdHRhY2goc3RydWMNCiAJcGRhdGEu YXR0YWNoX2luX3VzZSA9IHRydWU7DQogDQogCW1lbXNldCgmYm9hcmRfaW5m bywgMCwgc2l6ZW9mKGJvYXJkX2luZm8pKTsNCi0Jc3Ryc2NweShib2FyZF9p bmZvLnR5cGUsICJ0czIwMjAiLCBJMkNfTkFNRV9TSVpFKTsNCisJc3RyYWNw eShib2FyZF9pbmZvLnR5cGUsICJ0czIwMjAiKTsNCiAJYm9hcmRfaW5mby5h ZGRyID0gY29uZmlnLT50dW5lcl9hZGRyZXNzOw0KIAlib2FyZF9pbmZvLnBs YXRmb3JtX2RhdGEgPSAmcGRhdGE7DQogCWNsaWVudCA9IGkyY19uZXdfZGV2 aWNlKGkyYywgJmJvYXJkX2luZm8pOw0KZGlmZiAtdSAtcCBhL2RyaXZlcnMv c29jL3Fjb20vYXByLmMgYi9kcml2ZXJzL3NvYy9xY29tL2Fwci5jDQotLS0g YS9kcml2ZXJzL3NvYy9xY29tL2Fwci5jDQorKysgYi9kcml2ZXJzL3NvYy9x Y29tL2Fwci5jDQpAQCAtMjczLDcgKzI3Myw3IEBAIHN0YXRpYyBpbnQgYXBy X2FkZF9kZXZpY2Uoc3RydWN0IGRldmljZQ0KIAlpZiAobnApDQogCQlzbnBy aW50ZihhZGV2LT5uYW1lLCBBUFJfTkFNRV9TSVpFLCAiJXBPRm4iLCBucCk7 DQogCWVsc2UNCi0JCXN0cnNjcHkoYWRldi0+bmFtZSwgaWQtPm5hbWUsIEFQ Ul9OQU1FX1NJWkUpOw0KKwkJc3RyYWNweShhZGV2LT5uYW1lLCBpZC0+bmFt ZSk7DQogDQogCWRldl9zZXRfbmFtZSgmYWRldi0+ZGV2LCAiYXByc3ZjOiVz OiV4OiV4IiwgYWRldi0+bmFtZSwNCiAJCSAgICAgaWQtPmRvbWFpbl9pZCwg aWQtPnN2Y19pZCk7DQpkaWZmIC11IC1wIGEva2VybmVsL2thbGxzeW1zLmMg Yi9rZXJuZWwva2FsbHN5bXMuYw0KLS0tIGEva2VybmVsL2thbGxzeW1zLmMN CisrKyBiL2tlcm5lbC9rYWxsc3ltcy5jDQpAQCAtNDk1LDcgKzQ5NSw3IEBA IHN0YXRpYyBpbnQgZ2V0X2tzeW1ib2xfZnRyYWNlX21vZChzdHJ1Y3QNCiAN CiBzdGF0aWMgaW50IGdldF9rc3ltYm9sX2JwZihzdHJ1Y3Qga2FsbHN5bV9p dGVyICppdGVyKQ0KIHsNCi0Jc3RybGNweShpdGVyLT5tb2R1bGVfbmFtZSwg ImJwZiIsIE1PRFVMRV9OQU1FX0xFTik7DQorCXN0cmFjcHkoaXRlci0+bW9k dWxlX25hbWUsICJicGYiKTsNCiAJaXRlci0+ZXhwb3J0ZWQgPSAwOw0KIAly ZXR1cm4gYnBmX2dldF9rYWxsc3ltKGl0ZXItPnBvcyAtIGl0ZXItPnBvc19m dHJhY2VfbW9kX2VuZCwNCiAJCQkgICAgICAgJml0ZXItPnZhbHVlLCAmaXRl ci0+dHlwZSwNCmRpZmYgLXUgLXAgYS9kcml2ZXJzL2h3bW9uL2FkbTEwMjUu YyBiL2RyaXZlcnMvaHdtb24vYWRtMTAyNS5jDQotLS0gYS9kcml2ZXJzL2h3 bW9uL2FkbTEwMjUuYw0KKysrIGIvZHJpdmVycy9od21vbi9hZG0xMDI1LmMN CkBAIC00NzAsNyArNDcwLDcgQEAgc3RhdGljIGludCBhZG0xMDI1X2RldGVj dChzdHJ1Y3QgaTJjX2NsaQ0KIAllbHNlDQogCQlyZXR1cm4gLUVOT0RFVjsN CiANCi0Jc3RybGNweShpbmZvLT50eXBlLCBuYW1lLCBJMkNfTkFNRV9TSVpF KTsNCisJc3RyYWNweShpbmZvLT50eXBlLCBuYW1lKTsNCiANCiAJcmV0dXJu IDA7DQogfQ0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvaHdtb24vdzgzNzgxZC5j IGIvZHJpdmVycy9od21vbi93ODM3ODFkLmMNCi0tLSBhL2RyaXZlcnMvaHdt b24vdzgzNzgxZC5jDQorKysgYi9kcml2ZXJzL2h3bW9uL3c4Mzc4MWQuYw0K QEAgLTExNzEsNyArMTE3MSw3IEBAIHc4Mzc4MWRfZGV0ZWN0KHN0cnVjdCBp MmNfY2xpZW50ICpjbGllbnQNCiAJaWYgKGlzYSkNCiAJCW11dGV4X3VubG9j aygmaXNhLT51cGRhdGVfbG9jayk7DQogDQotCXN0cmxjcHkoaW5mby0+dHlw ZSwgY2xpZW50X25hbWUsIEkyQ19OQU1FX1NJWkUpOw0KKwlzdHJhY3B5KGlu Zm8tPnR5cGUsIGNsaWVudF9uYW1lKTsNCiANCiAJcmV0dXJuIDA7DQogDQpk aWZmIC11IC1wIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FlZGUv cWVkZV9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVk ZS9xZWRlX21haW4uYw0KLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxv Z2ljL3FlZGUvcWVkZV9tYWluLmMNCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L3Fsb2dpYy9xZWRlL3FlZGVfbWFpbi5jDQpAQCAtMTA5NCw3ICsxMDk0 LDcgQEAgc3RhdGljIGludCBfX3FlZGVfcHJvYmUoc3RydWN0IHBjaV9kZXYg Kg0KIAlzcF9wYXJhbXMuZHJ2X21pbm9yID0gUUVERV9NSU5PUl9WRVJTSU9O Ow0KIAlzcF9wYXJhbXMuZHJ2X3JldiA9IFFFREVfUkVWSVNJT05fVkVSU0lP TjsNCiAJc3BfcGFyYW1zLmRydl9lbmcgPSBRRURFX0VOR0lORUVSSU5HX1ZF UlNJT047DQotCXN0cmxjcHkoc3BfcGFyYW1zLm5hbWUsICJxZWRlIExBTiIs IFFFRF9EUlZfVkVSX1NUUl9TSVpFKTsNCisJc3RyYWNweShzcF9wYXJhbXMu bmFtZSwgInFlZGUgTEFOIik7DQogCXJjID0gcWVkX29wcy0+Y29tbW9uLT5z bG93cGF0aF9zdGFydChjZGV2LCAmc3BfcGFyYW1zKTsNCiAJaWYgKHJjKSB7 DQogCQlwcl9ub3RpY2UoIkNhbm5vdCBzdGFydCBzbG93cGF0aFxuIik7DQpk aWZmIC11IC1wIGEvbmV0L2wydHAvbDJ0cF9ldGguYyBiL25ldC9sMnRwL2wy dHBfZXRoLmMNCi0tLSBhL25ldC9sMnRwL2wydHBfZXRoLmMNCisrKyBiL25l dC9sMnRwL2wydHBfZXRoLmMNCkBAIC0zMjgsNyArMzI4LDcgQEAgc3RhdGlj IGludCBsMnRwX2V0aF9jcmVhdGUoc3RydWN0IG5ldCAqbg0KIAkJcmV0dXJu IHJjOw0KIAl9DQogDQotCXN0cmxjcHkoc2Vzc2lvbi0+aWZuYW1lLCBkZXYt Pm5hbWUsIElGTkFNU0laKTsNCisJc3RyYWNweShzZXNzaW9uLT5pZm5hbWUs IGRldi0+bmFtZSk7DQogCXJjdV9hc3NpZ25fcG9pbnRlcihzcHJpdi0+ZGV2 LCBkZXYpOw0KIA0KIAlydG5sX3VubG9jaygpOw0KZGlmZiAtdSAtcCBhL2Ry aXZlcnMvaHdtb24vbG04MC5jIGIvZHJpdmVycy9od21vbi9sbTgwLmMNCi0t LSBhL2RyaXZlcnMvaHdtb24vbG04MC5jDQorKysgYi9kcml2ZXJzL2h3bW9u L2xtODAuYw0KQEAgLTU4Niw3ICs1ODYsNyBAQCBzdGF0aWMgaW50IGxtODBf ZGV0ZWN0KHN0cnVjdCBpMmNfY2xpZW50DQogCQluYW1lID0gImxtODAiOw0K IAl9DQogDQotCXN0cmxjcHkoaW5mby0+dHlwZSwgbmFtZSwgSTJDX05BTUVf U0laRSk7DQorCXN0cmFjcHkoaW5mby0+dHlwZSwgbmFtZSk7DQogDQogCXJl dHVybiAwOw0KIH0NCmRpZmYgLXUgLXAgYS9kcml2ZXJzL3RoZXJtYWwvdGhl cm1hbF9od21vbi5jIGIvZHJpdmVycy90aGVybWFsL3RoZXJtYWxfaHdtb24u Yw0KLS0tIGEvZHJpdmVycy90aGVybWFsL3RoZXJtYWxfaHdtb24uYw0KKysr IGIvZHJpdmVycy90aGVybWFsL3RoZXJtYWxfaHdtb24uYw0KQEAgLTE0MSw3 ICsxNDEsNyBAQCBpbnQgdGhlcm1hbF9hZGRfaHdtb25fc3lzZnMoc3RydWN0 IHRoZXJtDQogCQlyZXR1cm4gLUVOT01FTTsNCiANCiAJSU5JVF9MSVNUX0hF QUQoJmh3bW9uLT50el9saXN0KTsNCi0Jc3RybGNweShod21vbi0+dHlwZSwg dHotPnR5cGUsIFRIRVJNQUxfTkFNRV9MRU5HVEgpOw0KKwlzdHJhY3B5KGh3 bW9uLT50eXBlLCB0ei0+dHlwZSk7DQogCXN0cnJlcGxhY2UoaHdtb24tPnR5 cGUsICctJywgJ18nKTsNCiAJaHdtb24tPmRldmljZSA9IGh3bW9uX2Rldmlj ZV9yZWdpc3Rlcl93aXRoX2luZm8oJnR6LT5kZXZpY2UsIGh3bW9uLT50eXBl LA0KIAkJCQkJCQlod21vbiwgTlVMTCwgTlVMTCk7DQpkaWZmIC11IC1wIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVf ZG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0v YW1kZ3B1X2RtLmMNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxh eS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMNCkBAIC00ODUw LDcgKzQ4NTAsNyBAQCBhbWRncHVfZG1fY3JlYXRlX2NvbW1vbl9tb2RlKHN0 cnVjdCBkcm1fDQogCW1vZGUtPmhkaXNwbGF5ID0gaGRpc3BsYXk7DQogCW1v ZGUtPnZkaXNwbGF5ID0gdmRpc3BsYXk7DQogCW1vZGUtPnR5cGUgJj0gfkRS TV9NT0RFX1RZUEVfUFJFRkVSUkVEOw0KLQlzdHJzY3B5KG1vZGUtPm5hbWUs IG5hbWUsIERSTV9ESVNQTEFZX01PREVfTEVOKTsNCisJc3RyYWNweShtb2Rl LT5uYW1lLCBuYW1lKTsNCiANCiAJcmV0dXJuIG1vZGU7DQogDQpkaWZmIC11 IC1wIGEvaW5jbHVkZS9yZG1hL3JkbWFfdnQuaCBiL2luY2x1ZGUvcmRtYS9y ZG1hX3Z0LmgNCi0tLSBhL2luY2x1ZGUvcmRtYS9yZG1hX3Z0LmgNCisrKyBi L2luY2x1ZGUvcmRtYS9yZG1hX3Z0LmgNCkBAIC00ODYsNyArNDg2LDcgQEAg c3RhdGljIGlubGluZSB2b2lkIHJ2dF9zZXRfaWJkZXZfbmFtZShzdA0KIAkg KiB0byB3b3JrIGJ5IHNldHRpbmcgdGhlIG5hbWUgbWFudWFsbHkgaGVyZS4N CiAJICovDQogCWRldl9zZXRfbmFtZSgmcmRpLT5pYmRldi5kZXYsIGZtdCwg bmFtZSwgdW5pdCk7DQotCXN0cmxjcHkocmRpLT5pYmRldi5uYW1lLCBkZXZf bmFtZSgmcmRpLT5pYmRldi5kZXYpLCBJQl9ERVZJQ0VfTkFNRV9NQVgpOw0K KwlzdHJhY3B5KHJkaS0+aWJkZXYubmFtZSwgZGV2X25hbWUoJnJkaS0+aWJk ZXYuZGV2KSk7DQogfQ0KIA0KIC8qKg0KZGlmZiAtdSAtcCBhL2RyaXZlcnMv bWVkaWEvdXNiL2R2Yi11c2IvY3h1c2IuYyBiL2RyaXZlcnMvbWVkaWEvdXNi L2R2Yi11c2IvY3h1c2IuYw0KLS0tIGEvZHJpdmVycy9tZWRpYS91c2IvZHZi LXVzYi9jeHVzYi5jDQorKysgYi9kcml2ZXJzL21lZGlhL3VzYi9kdmItdXNi L2N4dXNiLmMNCkBAIC0xNDA2LDcgKzE0MDYsNyBAQCBzdGF0aWMgaW50IGN4 dXNiX215Z2ljYV90MjMwX2Zyb250ZW5kX2F0DQogCXNpMjE2OF9jb25maWcu dHNfbW9kZSA9IFNJMjE2OF9UU19QQVJBTExFTDsNCiAJc2kyMTY4X2NvbmZp Zy50c19jbG9ja19pbnYgPSAxOw0KIAltZW1zZXQoJmluZm8sIDAsIHNpemVv ZihzdHJ1Y3QgaTJjX2JvYXJkX2luZm8pKTsNCi0Jc3Ryc2NweShpbmZvLnR5 cGUsICJzaTIxNjgiLCBJMkNfTkFNRV9TSVpFKTsNCisJc3RyYWNweShpbmZv LnR5cGUsICJzaTIxNjgiKTsNCiAJaW5mby5hZGRyID0gMHg2NDsNCiAJaW5m by5wbGF0Zm9ybV9kYXRhID0gJnNpMjE2OF9jb25maWc7DQogCXJlcXVlc3Rf bW9kdWxlKGluZm8udHlwZSk7DQpAQCAtMTQyNiw3ICsxNDI2LDcgQEAgc3Rh dGljIGludCBjeHVzYl9teWdpY2FfdDIzMF9mcm9udGVuZF9hdA0KIAlzaTIx NTdfY29uZmlnLmZlID0gYWRhcC0+ZmVfYWRhcFswXS5mZTsNCiAJc2kyMTU3 X2NvbmZpZy5pZl9wb3J0ID0gMTsNCiAJbWVtc2V0KCZpbmZvLCAwLCBzaXpl b2Yoc3RydWN0IGkyY19ib2FyZF9pbmZvKSk7DQotCXN0cnNjcHkoaW5mby50 eXBlLCAic2kyMTU3IiwgSTJDX05BTUVfU0laRSk7DQorCXN0cmFjcHkoaW5m by50eXBlLCAic2kyMTU3Iik7DQogCWluZm8uYWRkciA9IDB4NjA7DQogCWlu Zm8ucGxhdGZvcm1fZGF0YSA9ICZzaTIxNTdfY29uZmlnOw0KIAlyZXF1ZXN0 X21vZHVsZShpbmZvLnR5cGUpOw0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvc2Nz aS9iZmEvYmZhX2Zjcy5jIGIvZHJpdmVycy9zY3NpL2JmYS9iZmFfZmNzLmMN Ci0tLSBhL2RyaXZlcnMvc2NzaS9iZmEvYmZhX2Zjcy5jDQorKysgYi9kcml2 ZXJzL3Njc2kvYmZhL2JmYV9mY3MuYw0KQEAgLTc2MSw4ICs3NjEsNyBAQCBi ZmFfZmNzX2ZhYnJpY19wc3ltYl9pbml0KHN0cnVjdCBiZmFfZmNzDQogCWJm YV9pb2NfZ2V0X2FkYXB0ZXJfbW9kZWwoJmZhYnJpYy0+ZmNzLT5iZmEtPmlv YywgbW9kZWwpOw0KIA0KIAkvKiBNb2RlbCBuYW1lL251bWJlciAqLw0KLQlz dHJsY3B5KHBvcnRfY2ZnLT5zeW1fbmFtZS5zeW1uYW1lLCBtb2RlbCwNCi0J CUJGQV9TWU1OQU1FX01BWExFTik7DQorCXN0cmFjcHkocG9ydF9jZmctPnN5 bV9uYW1lLnN5bW5hbWUsIG1vZGVsKTsNCiAJc3RybGNhdChwb3J0X2NmZy0+ c3ltX25hbWUuc3ltbmFtZSwgQkZBX0ZDU19QT1JUX1NZTUJOQU1FX1NFUEFS QVRPUiwNCiAJCUJGQV9TWU1OQU1FX01BWExFTik7DQogDQpAQCAtODIyLDgg KzgyMSw3IEBAIGJmYV9mY3NfZmFicmljX25zeW1iX2luaXQoc3RydWN0IGJm YV9mY3MNCiAJYmZhX2lvY19nZXRfYWRhcHRlcl9tb2RlbCgmZmFicmljLT5m Y3MtPmJmYS0+aW9jLCBtb2RlbCk7DQogDQogCS8qIE1vZGVsIG5hbWUvbnVt YmVyICovDQotCXN0cmxjcHkocG9ydF9jZmctPm5vZGVfc3ltX25hbWUuc3lt bmFtZSwgbW9kZWwsDQotCQlCRkFfU1lNTkFNRV9NQVhMRU4pOw0KKwlzdHJh Y3B5KHBvcnRfY2ZnLT5ub2RlX3N5bV9uYW1lLnN5bW5hbWUsIG1vZGVsKTsN CiAJc3RybGNhdChwb3J0X2NmZy0+bm9kZV9zeW1fbmFtZS5zeW1uYW1lLA0K IAkJCUJGQV9GQ1NfUE9SVF9TWU1CTkFNRV9TRVBBUkFUT1IsDQogCQkJQkZB X1NZTU5BTUVfTUFYTEVOKTsNCmRpZmYgLXUgLXAgYS9kcml2ZXJzL2h3bW9u L2FtYzY4MjEuYyBiL2RyaXZlcnMvaHdtb24vYW1jNjgyMS5jDQotLS0gYS9k cml2ZXJzL2h3bW9uL2FtYzY4MjEuYw0KKysrIGIvZHJpdmVycy9od21vbi9h bWM2ODIxLmMNCkBAIC04MDksNyArODA5LDcgQEAgc3RhdGljIGludCBhbWM2 ODIxX2RldGVjdCgNCiAJfQ0KIA0KIAlkZXZfaW5mbygmYWRhcHRlci0+ZGV2 LCAiYW1jNjgyMTogY2hpcCBmb3VuZCBhdCAweCUwMnguXG4iLCBhZGRyZXNz KTsNCi0Jc3RybGNweShpbmZvLT50eXBlLCAiYW1jNjgyMSIsIEkyQ19OQU1F X1NJWkUpOw0KKwlzdHJhY3B5KGluZm8tPnR5cGUsICJhbWM2ODIxIik7DQog DQogCXJldHVybiAwOw0KIH0NCmRpZmYgLXUgLXAgYS9kcml2ZXJzL2h3bW9u L3c4Mzc5MWQuYyBiL2RyaXZlcnMvaHdtb24vdzgzNzkxZC5jDQotLS0gYS9k cml2ZXJzL2h3bW9uL3c4Mzc5MWQuYw0KKysrIGIvZHJpdmVycy9od21vbi93 ODM3OTFkLmMNCkBAIC0xMzQ5LDcgKzEzNDksNyBAQCBzdGF0aWMgaW50IHc4 Mzc5MWRfZGV0ZWN0KHN0cnVjdCBpMmNfY2xpDQogCWlmICh2YWwxICE9IDB4 NzEgfHwgdmFsMiAhPSAweDVjKQ0KIAkJcmV0dXJuIC1FTk9ERVY7DQogDQot CXN0cmxjcHkoaW5mby0+dHlwZSwgInc4Mzc5MWQiLCBJMkNfTkFNRV9TSVpF KTsNCisJc3RyYWNweShpbmZvLT50eXBlLCAidzgzNzkxZCIpOw0KIA0KIAly ZXR1cm4gMDsNCiB9DQpkaWZmIC11IC1wIGEvZHJpdmVycy9zMzkwL2NoYXIv dGFwZV9jbGFzcy5jIGIvZHJpdmVycy9zMzkwL2NoYXIvdGFwZV9jbGFzcy5j DQotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci90YXBlX2NsYXNzLmMNCisrKyBi L2RyaXZlcnMvczM5MC9jaGFyL3RhcGVfY2xhc3MuYw0KQEAgLTU0LDEwICs1 NCwxMCBAQCBzdHJ1Y3QgdGFwZV9jbGFzc19kZXZpY2UgKnJlZ2lzdGVyX3Rh cGVfDQogCWlmICghdGNkKQ0KIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7 DQogDQotCXN0cmxjcHkodGNkLT5kZXZpY2VfbmFtZSwgZGV2aWNlX25hbWUs IFRBUEVDTEFTU19OQU1FX0xFTik7DQorCXN0cmFjcHkodGNkLT5kZXZpY2Vf bmFtZSwgZGV2aWNlX25hbWUpOw0KIAlmb3IgKHMgPSBzdHJjaHIodGNkLT5k ZXZpY2VfbmFtZSwgJy8nKTsgczsgcyA9IHN0cmNocihzLCAnLycpKQ0KIAkJ KnMgPSAnISc7DQotCXN0cmxjcHkodGNkLT5tb2RlX25hbWUsIG1vZGVfbmFt ZSwgVEFQRUNMQVNTX05BTUVfTEVOKTsNCisJc3RyYWNweSh0Y2QtPm1vZGVf bmFtZSwgbW9kZV9uYW1lKTsNCiAJZm9yIChzID0gc3RyY2hyKHRjZC0+bW9k ZV9uYW1lLCAnLycpOyBzOyBzID0gc3RyY2hyKHMsICcvJykpDQogCQkqcyA9 ICchJzsNCiANCmRpZmYgLXUgLXAgYS9kcml2ZXJzL2h3bW9uL2FkbTEwMjku YyBiL2RyaXZlcnMvaHdtb24vYWRtMTAyOS5jDQotLS0gYS9kcml2ZXJzL2h3 bW9uL2FkbTEwMjkuYw0KKysrIGIvZHJpdmVycy9od21vbi9hZG0xMDI5LmMN CkBAIC0zMjksNyArMzI5LDcgQEAgc3RhdGljIGludCBhZG0xMDI5X2RldGVj dChzdHJ1Y3QgaTJjX2NsaQ0KIAkJcmV0dXJuIC1FTk9ERVY7DQogCX0NCiAN Ci0Jc3RybGNweShpbmZvLT50eXBlLCAiYWRtMTAyOSIsIEkyQ19OQU1FX1NJ WkUpOw0KKwlzdHJhY3B5KGluZm8tPnR5cGUsICJhZG0xMDI5Iik7DQogDQog CXJldHVybiAwOw0KIH0NCmRpZmYgLXUgLXAgYS9kcml2ZXJzL21lZGlhL3Bj aS9zbWlwY2llL3NtaXBjaWUtbWFpbi5jIGIvZHJpdmVycy9tZWRpYS9wY2kv c21pcGNpZS9zbWlwY2llLW1haW4uYw0KLS0tIGEvZHJpdmVycy9tZWRpYS9w Y2kvc21pcGNpZS9zbWlwY2llLW1haW4uYw0KKysrIGIvZHJpdmVycy9tZWRp YS9wY2kvc21pcGNpZS9zbWlwY2llLW1haW4uYw0KQEAgLTU0MCw3ICs1NDAs NyBAQCBzdGF0aWMgaW50IHNtaV9kdmJza3lfbTg4ZHMzMTAzX2ZlX2F0dGFj DQogCX0NCiAJLyogYXR0YWNoIHR1bmVyICovDQogCXRzMjAyMF9jb25maWcu ZmUgPSBwb3J0LT5mZTsNCi0Jc3Ryc2NweSh0dW5lcl9pbmZvLnR5cGUsICJ0 czIwMjAiLCBJMkNfTkFNRV9TSVpFKTsNCisJc3RyYWNweSh0dW5lcl9pbmZv LnR5cGUsICJ0czIwMjAiKTsNCiAJdHVuZXJfaW5mby5hZGRyID0gMHg2MDsN CiAJdHVuZXJfaW5mby5wbGF0Zm9ybV9kYXRhID0gJnRzMjAyMF9jb25maWc7 DQogCXR1bmVyX2NsaWVudCA9IHNtaV9hZGRfaTJjX2NsaWVudCh0dW5lcl9p MmNfYWRhcHRlciwgJnR1bmVyX2luZm8pOw0KQEAgLTU5Niw3ICs1OTYsNyBA QCBzdGF0aWMgaW50IHNtaV9kdmJza3lfbTg4cnM2MDAwX2ZlX2F0dGFjDQog CX0NCiAJLyogYXR0YWNoIHR1bmVyICovDQogCW04OHJzNjAwMHRfY29uZmln LmZlID0gcG9ydC0+ZmU7DQotCXN0cnNjcHkodHVuZXJfaW5mby50eXBlLCAi bTg4cnM2MDAwdCIsIEkyQ19OQU1FX1NJWkUpOw0KKwlzdHJhY3B5KHR1bmVy X2luZm8udHlwZSwgIm04OHJzNjAwMHQiKTsNCiAJdHVuZXJfaW5mby5hZGRy ID0gMHgyMTsNCiAJdHVuZXJfaW5mby5wbGF0Zm9ybV9kYXRhID0gJm04OHJz NjAwMHRfY29uZmlnOw0KIAl0dW5lcl9jbGllbnQgPSBzbWlfYWRkX2kyY19j bGllbnQodHVuZXJfaTJjX2FkYXB0ZXIsICZ0dW5lcl9pbmZvKTsNCkBAIC02 MzgsNyArNjM4LDcgQEAgc3RhdGljIGludCBzbWlfZHZic2t5X3NpdDJfZmVf YXR0YWNoKHN0cg0KIAlzaTIxNjhfY29uZmlnLnRzX21vZGUgPSBTSTIxNjhf VFNfUEFSQUxMRUw7DQogDQogCW1lbXNldCgmY2xpZW50X2luZm8sIDAsIHNp emVvZihzdHJ1Y3QgaTJjX2JvYXJkX2luZm8pKTsNCi0Jc3Ryc2NweShjbGll bnRfaW5mby50eXBlLCAic2kyMTY4IiwgSTJDX05BTUVfU0laRSk7DQorCXN0 cmFjcHkoY2xpZW50X2luZm8udHlwZSwgInNpMjE2OCIpOw0KIAljbGllbnRf aW5mby5hZGRyID0gMHg2NDsNCiAJY2xpZW50X2luZm8ucGxhdGZvcm1fZGF0 YSA9ICZzaTIxNjhfY29uZmlnOw0KIA0KQEAgLTY1NSw3ICs2NTUsNyBAQCBz dGF0aWMgaW50IHNtaV9kdmJza3lfc2l0Ml9mZV9hdHRhY2goc3RyDQogCXNp MjE1N19jb25maWcuaWZfcG9ydCA9IDE7DQogDQogCW1lbXNldCgmY2xpZW50 X2luZm8sIDAsIHNpemVvZihzdHJ1Y3QgaTJjX2JvYXJkX2luZm8pKTsNCi0J c3Ryc2NweShjbGllbnRfaW5mby50eXBlLCAic2kyMTU3IiwgSTJDX05BTUVf U0laRSk7DQorCXN0cmFjcHkoY2xpZW50X2luZm8udHlwZSwgInNpMjE1NyIp Ow0KIAljbGllbnRfaW5mby5hZGRyID0gMHg2MDsNCiAJY2xpZW50X2luZm8u cGxhdGZvcm1fZGF0YSA9ICZzaTIxNTdfY29uZmlnOw0KIA0KZGlmZiAtdSAt cCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2Fm L3J2dS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250 eDIvYWYvcnZ1LmMNCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZl bGwvb2N0ZW9udHgyL2FmL3J2dS5jDQorKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYw0KQEAgLTIzNjcsOCAr MjM2Nyw4IEBAIHN0YXRpYyB2b2lkIHJ2dV91cGRhdGVfbW9kdWxlX3BhcmFt cyhzdHINCiB7DQogCWNvbnN0IGNoYXIgKmRlZmF1bHRfcGZsX25hbWUgPSAi ZGVmYXVsdCI7DQogDQotCXN0cnNjcHkocnZ1LT5ta2V4X3BmbF9uYW1lLA0K LQkJbWtleF9wcm9maWxlID8gbWtleF9wcm9maWxlIDogZGVmYXVsdF9wZmxf bmFtZSwgTUtFWF9OQU1FX0xFTik7DQorCXN0cmFjcHkocnZ1LT5ta2V4X3Bm bF9uYW1lLA0KKwkJbWtleF9wcm9maWxlID8gbWtleF9wcm9maWxlIDogZGVm YXVsdF9wZmxfbmFtZSk7DQogfQ0KIA0KIHN0YXRpYyBpbnQgcnZ1X3Byb2Jl KHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2Rldmlj ZV9pZCAqaWQpDQpkaWZmIC11IC1wIGEvZHJpdmVycy9wbGF0Zm9ybS94ODYv aTJjLW11bHRpLWluc3RhbnRpYXRlLmMgYi9kcml2ZXJzL3BsYXRmb3JtL3g4 Ni9pMmMtbXVsdGktaW5zdGFudGlhdGUuYw0KLS0tIGEvZHJpdmVycy9wbGF0 Zm9ybS94ODYvaTJjLW11bHRpLWluc3RhbnRpYXRlLmMNCisrKyBiL2RyaXZl cnMvcGxhdGZvcm0veDg2L2kyYy1tdWx0aS1pbnN0YW50aWF0ZS5jDQpAQCAt OTEsNyArOTEsNyBAQCBzdGF0aWMgaW50IGkyY19tdWx0aV9pbnN0X3Byb2Jl KHN0cnVjdCBwDQogDQogCWZvciAoaSA9IDA7IGkgPCBtdWx0aS0+bnVtX2Ns aWVudHMgJiYgaW5zdF9kYXRhW2ldLnR5cGU7IGkrKykgew0KIAkJbWVtc2V0 KCZib2FyZF9pbmZvLCAwLCBzaXplb2YoYm9hcmRfaW5mbykpOw0KLQkJc3Ry bGNweShib2FyZF9pbmZvLnR5cGUsIGluc3RfZGF0YVtpXS50eXBlLCBJMkNf TkFNRV9TSVpFKTsNCisJCXN0cmFjcHkoYm9hcmRfaW5mby50eXBlLCBpbnN0 X2RhdGFbaV0udHlwZSk7DQogCQlzbnByaW50ZihuYW1lLCBzaXplb2YobmFt ZSksICIlcy0lcy4lZCIsIG1hdGNoLT5pZCwNCiAJCQkgaW5zdF9kYXRhW2ld LnR5cGUsIGkpOw0KIAkJYm9hcmRfaW5mby5kZXZfbmFtZSA9IG5hbWU7DQpk aWZmIC11IC1wIGEvZHJpdmVycy9zdGFnaW5nL2dyZXlidXMvYXVkaW9fbW9k dWxlLmMgYi9kcml2ZXJzL3N0YWdpbmcvZ3JleWJ1cy9hdWRpb19tb2R1bGUu Yw0KLS0tIGEvZHJpdmVycy9zdGFnaW5nL2dyZXlidXMvYXVkaW9fbW9kdWxl LmMNCisrKyBiL2RyaXZlcnMvc3RhZ2luZy9ncmV5YnVzL2F1ZGlvX21vZHVs ZS5jDQpAQCAtMzQxLDcgKzM0MSw3IEBAIHN0YXRpYyBpbnQgZ2JfYXVkaW9f cHJvYmUoc3RydWN0IGdiX2J1bmQNCiAJLyogaW5mb3JtIGFib3ZlIGxheWVy IGZvciB1ZXZlbnQgKi8NCiAJZGV2X2RiZyhkZXYsICJJbmZvcm0gc2V0X2V2 ZW50OiVkIHRvIGFib3ZlIGxheWVyXG4iLCAxKTsNCiAJLyogcHJlcGFyZSBm b3IgdGhlIGF1ZGlvIG1hbmFnZXIgKi8NCi0Jc3RybGNweShkZXNjLm5hbWUs IGdibW9kdWxlLT5uYW1lLCBHQl9BVURJT19NQU5BR0VSX01PRFVMRV9OQU1F X0xFTik7DQorCXN0cmFjcHkoZGVzYy5uYW1lLCBnYm1vZHVsZS0+bmFtZSk7 DQogCWRlc2MudmlkID0gMjsgLyogdG9kbyAqLw0KIAlkZXNjLnBpZCA9IDM7 IC8qIHRvZG8gKi8NCiAJZGVzYy5pbnRmX2lkID0gZ2Jtb2R1bGUtPmRldl9p ZDsNCmRpZmYgLXUgLXAgYS9kcml2ZXJzL2h3bW9uL2ZzY2htZC5jIGIvZHJp dmVycy9od21vbi9mc2NobWQuYw0KLS0tIGEvZHJpdmVycy9od21vbi9mc2No bWQuYw0KKysrIGIvZHJpdmVycy9od21vbi9mc2NobWQuYw0KQEAgLTEwNzUs NyArMTA3NSw3IEBAIHN0YXRpYyBpbnQgZnNjaG1kX2RldGVjdChzdHJ1Y3Qg aTJjX2NsaWUNCiAJZWxzZQ0KIAkJcmV0dXJuIC1FTk9ERVY7DQogDQotCXN0 cmxjcHkoaW5mby0+dHlwZSwgZnNjaG1kX2lkW2tpbmRdLm5hbWUsIEkyQ19O QU1FX1NJWkUpOw0KKwlzdHJhY3B5KGluZm8tPnR5cGUsIGZzY2htZF9pZFtr aW5kXS5uYW1lKTsNCiANCiAJcmV0dXJuIDA7DQogfQ0KZGlmZiAtdSAtcCBh L2ZzL29yYW5nZWZzL29yYW5nZWZzLXV0aWxzLmMgYi9mcy9vcmFuZ2Vmcy9v cmFuZ2Vmcy11dGlscy5jDQotLS0gYS9mcy9vcmFuZ2Vmcy9vcmFuZ2Vmcy11 dGlscy5jDQorKysgYi9mcy9vcmFuZ2Vmcy9vcmFuZ2Vmcy11dGlscy5jDQpA QCAtMzM1LDkgKzMzNSw4IEBAIGFnYWluMjoNCiAJCWlmIChmbGFncyAmIE9S QU5HRUZTX0dFVEFUVFJfTkVXKSB7DQogCQkJaW5vZGUtPmlfc2l6ZSA9IChs b2ZmX3Qpc3RybGVuKG5ld19vcC0+DQogCQkJICAgIGRvd25jYWxsLnJlc3Au Z2V0YXR0ci5saW5rX3RhcmdldCk7DQotCQkJcmV0ID0gc3Ryc2NweShvcmFu Z2Vmc19pbm9kZS0+bGlua190YXJnZXQsDQotCQkJICAgIG5ld19vcC0+ZG93 bmNhbGwucmVzcC5nZXRhdHRyLmxpbmtfdGFyZ2V0LA0KLQkJCSAgICBPUkFO R0VGU19OQU1FX01BWCk7DQorCQkJcmV0ID0gc3RyYWNweShvcmFuZ2Vmc19p bm9kZS0+bGlua190YXJnZXQsDQorCQkJICAgIG5ld19vcC0+ZG93bmNhbGwu cmVzcC5nZXRhdHRyLmxpbmtfdGFyZ2V0KTsNCiAJCQlpZiAocmV0ID09IC1F MkJJRykgew0KIAkJCQlyZXQgPSAtRUlPOw0KIAkJCQlnb3RvIG91dF91bmxv Y2s7DQpkaWZmIC11IC1wIGEvZHJpdmVycy9od21vbi9hZG0xMDIxLmMgYi9k cml2ZXJzL2h3bW9uL2FkbTEwMjEuYw0KLS0tIGEvZHJpdmVycy9od21vbi9h ZG0xMDIxLmMNCisrKyBiL2RyaXZlcnMvaHdtb24vYWRtMTAyMS5jDQpAQCAt NDExLDcgKzQxMSw3IEBAIHN0YXRpYyBpbnQgYWRtMTAyMV9kZXRlY3Qoc3Ry dWN0IGkyY19jbGkNCiANCiAJcHJfZGVidWcoIkRldGVjdGVkIGNoaXAgJXMg YXQgYWRhcHRlciAlZCwgYWRkcmVzcyAweCUwMnguXG4iLA0KIAkJIHR5cGVf bmFtZSwgaTJjX2FkYXB0ZXJfaWQoYWRhcHRlciksIGNsaWVudC0+YWRkcik7 DQotCXN0cmxjcHkoaW5mby0+dHlwZSwgdHlwZV9uYW1lLCBJMkNfTkFNRV9T SVpFKTsNCisJc3RyYWNweShpbmZvLT50eXBlLCB0eXBlX25hbWUpOw0KIA0K IAlyZXR1cm4gMDsNCiB9DQpkaWZmIC11IC1wIGEvZHJpdmVycy9od21vbi9t YXg2NjQyLmMgYi9kcml2ZXJzL2h3bW9uL21heDY2NDIuYw0KLS0tIGEvZHJp dmVycy9od21vbi9tYXg2NjQyLmMNCisrKyBiL2RyaXZlcnMvaHdtb24vbWF4 NjY0Mi5jDQpAQCAtMTQ4LDcgKzE0OCw3IEBAIHN0YXRpYyBpbnQgbWF4NjY0 Ml9kZXRlY3Qoc3RydWN0IGkyY19jbGkNCiAJaWYgKChyZWdfc3RhdHVzICYg MHgyYikgIT0gMHgwMCkNCiAJCXJldHVybiAtRU5PREVWOw0KIA0KLQlzdHJs Y3B5KGluZm8tPnR5cGUsICJtYXg2NjQyIiwgSTJDX05BTUVfU0laRSk7DQor CXN0cmFjcHkoaW5mby0+dHlwZSwgIm1heDY2NDIiKTsNCiANCiAJcmV0dXJu IDA7DQogfQ0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvbWVkaWEvcGNpL2l2dHYv aXZ0di1pMmMuYyBiL2RyaXZlcnMvbWVkaWEvcGNpL2l2dHYvaXZ0di1pMmMu Yw0KLS0tIGEvZHJpdmVycy9tZWRpYS9wY2kvaXZ0di9pdnR2LWkyYy5jDQor KysgYi9kcml2ZXJzL21lZGlhL3BjaS9pdnR2L2l2dHYtaTJjLmMNCkBAIC0y MDYsNyArMjA2LDcgQEAgc3RhdGljIGludCBpdnR2X2kyY19uZXdfaXIoc3Ry dWN0IGl2dHYgKg0KIA0KIAltZW1zZXQoJmluZm8sIDAsIHNpemVvZihzdHJ1 Y3QgaTJjX2JvYXJkX2luZm8pKTsNCiAJaW5mby5wbGF0Zm9ybV9kYXRhID0g aW5pdF9kYXRhOw0KLQlzdHJzY3B5KGluZm8udHlwZSwgdHlwZSwgSTJDX05B TUVfU0laRSk7DQorCXN0cmFjcHkoaW5mby50eXBlLCB0eXBlKTsNCiANCiAJ cmV0dXJuIGkyY19uZXdfcHJvYmVkX2RldmljZShhZGFwLCAmaW5mbywgYWRk cl9saXN0LCBOVUxMKSA9PSBOVUxMID8NCiAJICAgICAgIC0xIDogMDsNCkBA IC0yMzQsNyArMjM0LDcgQEAgc3RydWN0IGkyY19jbGllbnQgKml2dHZfaTJj X25ld19pcl9sZWdhYw0KIAl9Ow0KIA0KIAltZW1zZXQoJmluZm8sIDAsIHNp emVvZihzdHJ1Y3QgaTJjX2JvYXJkX2luZm8pKTsNCi0Jc3Ryc2NweShpbmZv LnR5cGUsICJpcl92aWRlbyIsIEkyQ19OQU1FX1NJWkUpOw0KKwlzdHJhY3B5 KGluZm8udHlwZSwgImlyX3ZpZGVvIik7DQogCXJldHVybiBpMmNfbmV3X3By b2JlZF9kZXZpY2UoJml0di0+aTJjX2FkYXAsICZpbmZvLCBhZGRyX2xpc3Qs IE5VTEwpOw0KIH0NCiANCmRpZmYgLXUgLXAgYS9kcml2ZXJzL3VzYi93dXNi Y29yZS9jYmFmLmMgYi9kcml2ZXJzL3VzYi93dXNiY29yZS9jYmFmLmMNCi0t LSBhL2RyaXZlcnMvdXNiL3d1c2Jjb3JlL2NiYWYuYw0KKysrIGIvZHJpdmVy cy91c2Ivd3VzYmNvcmUvY2JhZi5jDQpAQCAtMjg5LDcgKzI4OSw3IEBAIHN0 YXRpYyBpbnQgY2JhZl9jZGlkX2dldChzdHJ1Y3QgY2JhZiAqY2INCiAJCXJl dHVybiAtRU5PRU5UOw0KIAl9DQogDQotCXN0cmxjcHkoY2JhZi0+ZGV2aWNl X25hbWUsIGRpLT5EZXZpY2VGcmllbmRseU5hbWUsIENCQV9OQU1FX0xFTik7 DQorCXN0cmFjcHkoY2JhZi0+ZGV2aWNlX25hbWUsIGRpLT5EZXZpY2VGcmll bmRseU5hbWUpOw0KIAljYmFmLT5jZGlkID0gZGktPkNESUQ7DQogCWNiYWYt PmRldmljZV9iYW5kX2dyb3VwcyA9IGxlMTZfdG9fY3B1KGRpLT5CYW5kR3Jv dXBzKTsNCiANCg== --8323329-977020579-1564095084=:2494--