[5078] in arla-drinkers
Re: PATCH v10: Arla CVS Current on Linux 2.6.3x to 4.4
daemon@ATHENA.MIT.EDU (Bo Branten)
Tue Feb 16 12:55:14 2016
From arla-drinkers-bounces@stacken.kth.se Tue Feb 16 17:55:14 2016
Return-Path: <arla-drinkers-bounces@stacken.kth.se>
Delivered-To: arla-drinkers-mtg@bloom-picayune.mit.edu
Received: (qmail 16492 invoked from network); 16 Feb 2016 17:55:13 -0000
Received: from mx7.kth.se (130.237.48.48)
by charon.mit.edu with SMTP; 16 Feb 2016 17:55:13 -0000
Received: from mx7.kth.se (localhost [127.0.0.1])
by mx7.kth.se (Postfix) with ESMTP id C65C11400EA;
Tue, 16 Feb 2016 18:55:12 +0100 (CET)
X-Virus-Scanned: by amavisd-new at kth.se
Received: from mx7.kth.se ([127.0.0.1])
by mx7.kth.se (mx7.kth.se [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id Kr7DlvFVQhjl; Tue, 16 Feb 2016 18:55:01 +0100 (CET)
Received: from vingummi.stacken.kth.se (unknown [IPv6:2001:6b0:1:ea:211:43ff:fe35:104c])
by mx7.kth.se (Postfix) with ESMTP;
Tue, 16 Feb 2016 18:55:01 +0100 (CET)
Received: from vingummi.stacken.kth.se (localhost [IPv6:::1])
by vingummi.stacken.kth.se (Postfix) with ESMTP id 46BEB14CB5D;
Tue, 16 Feb 2016 18:55:01 +0100 (CET)
Received: by vingummi.stacken.kth.se (Postfix)
id EA3F414CB5D; Tue, 16 Feb 2016 18:54:59 +0100 (CET)
Delivered-To: al_stacken_kth_se______________arla-drinkers@vingummi.stacken.kth.se
Received: from mx7.kth.se (mx7.kth.se [130.237.48.48])
by vingummi.stacken.kth.se (Postfix) with ESMTPS id E4C3F14CB5C
for <arla-drinkers@stacken.kth.se>; Tue, 16 Feb 2016 18:54:59 +0100 (CET)
Received: from mx7.kth.se (localhost [127.0.0.1])
by mx7.kth.se (Postfix) with ESMTP id DE1791400EA
for <arla-drinkers@stacken.kth.se>; Tue, 16 Feb 2016 18:54:59 +0100 (CET)
X-Virus-Scanned: by amavisd-new at kth.se
X-Amavis-OS-Fingerprint: Windows NT kernel; dist: 9; link: Ethernet or modem;
params: generic fuzzy; raw_mtu: 1500; raw_sig:
6:55+9:0:1440:mss*45,0:mss,nop,ws,nop,nop,sok::0,
[2001:6b0:e:2018::156]:34370
Received: from mx7.kth.se ([127.0.0.1])
by mx7.kth.se (mx7.kth.se [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id GpzkagAqLgsT for <arla-drinkers@stacken.kth.se>;
Tue, 16 Feb 2016 18:54:53 +0100 (CET)
Received: from mail.acc.umu.se (mail.acc.umu.se [IPv6:2001:6b0:e:2018::156])
by mx7.kth.se (Postfix) with ESMTPS
for <arla-drinkers@stacken.kth.se>; Tue, 16 Feb 2016 18:54:53 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
by amavisd-new (Postfix) with ESMTP id 6AE20653
for <arla-drinkers@stacken.kth.se>; Tue, 16 Feb 2016 18:54:53 +0100 (MET)
X-Virus-Scanned: amavisd-new at acc.umu.se
Received: from suiko.acc.umu.se (suiko.acc.umu.se [130.239.18.162])
by mail.acc.umu.se (Postfix) with ESMTP id 67FB7652
for <arla-drinkers@stacken.kth.se>; Tue, 16 Feb 2016 18:54:48 +0100 (MET)
Received: by suiko.acc.umu.se (Postfix, from userid 10005)
id 5C5E244B8C; Tue, 16 Feb 2016 18:54:48 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
by suiko.acc.umu.se (Postfix) with ESMTP id 5987444B8B
for <arla-drinkers@stacken.kth.se>; Tue, 16 Feb 2016 18:54:48 +0100 (CET)
Date: Tue, 16 Feb 2016 18:54:48 +0100 (CET)
From: Bo Branten <bosse@acc.umu.se>
To: arla-drinkers@stacken.kth.se
Subject: Re: PATCH v10: Arla CVS Current on Linux 2.6.3x to 4.4
In-Reply-To: <alpine.DEB.2.10.1601150312080.11672@suiko.acc.umu.se>
Message-ID: <alpine.DEB.2.10.1602161852590.24402@suiko.acc.umu.se>
References: <alpine.DEB.2.10.1601110319280.18025@suiko.acc.umu.se>
<alpine.DEB.2.10.1601150312080.11672@suiko.acc.umu.se>
User-Agent: Alpine 2.10 (DEB 1266 2009-07-14)
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED;
BOUNDARY="-276651502-1163068867-1455645288=:24402"
X-BeenThere: arla-drinkers@stacken.kth.se
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Arla discussions <arla-drinkers.stacken.kth.se>
List-Unsubscribe: <https://lists.stacken.kth.se/mailman/options/arla-drinkers>,
<mailto:arla-drinkers-request@stacken.kth.se?subject=unsubscribe>
List-Archive: <http://lists.stacken.kth.se/pipermail/arla-drinkers/>
List-Post: <mailto:arla-drinkers@stacken.kth.se>
List-Help: <mailto:arla-drinkers-request@stacken.kth.se?subject=help>
List-Subscribe: <https://lists.stacken.kth.se/mailman/listinfo/arla-drinkers>,
<mailto:arla-drinkers-request@stacken.kth.se?subject=subscribe>
Errors-To: arla-drinkers-bounces@stacken.kth.se
Sender: "Arla-drinkers" <arla-drinkers-bounces@stacken.kth.se>
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
---276651502-1163068867-1455645288=:24402
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII
PATCH v10: Arla CVS Current on Linux 2.6.3x to 4.4
Corrected an error in the use of getname/putname that showed up on Linux
kernel 3.14 and later.
Bo Branten
---276651502-1163068867-1455645288=:24402
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-v10-arla-cvs-for-linux-2.6.3x-to-4.4
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.DEB.2.10.1602161854480.24402@suiko.acc.umu.se>
Content-Description:
Content-Disposition: attachment; filename=patch-v10-arla-cvs-for-linux-2.6.3x-to-4.4
ZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLWN2cy1vbGQvbm5wZnMvaW5jbHVk
ZS9ubnBmcy9ubnBmc19hdHRyLmggYXJsYS9ubnBmcy9pbmNsdWRlL25ucGZz
L25ucGZzX2F0dHIuaA0KLS0tIGFybGEtY3ZzLW9sZC9ubnBmcy9pbmNsdWRl
L25ucGZzL25ucGZzX2F0dHIuaAkyMDA2LTEwLTI0IDE4OjMzOjMwLjAwMDAw
MDAwMCArMDIwMA0KKysrIGFybGEvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBm
c19hdHRyLmgJMjAxNi0wMS0yMiAxMjo1MTowNy4wMDAwMDAwMDAgKzAxMDAN
CkBAIC0xMTMsOCArMTEzLDE4IEBAIHN0cnVjdCBubnBmc19hdHRyIHsNCiAg
ICAgdWludDMyX3QJCXhhX25saW5rOw0KICAgICB1aW50MzJfdAkJeGFfdHlw
ZTsNCiANCisjaWZuZGVmIF9fS0VSTkVMX18NCiAgICAgdWludDMyX3QJCXhh
X3VpZDsNCiAgICAgdWludDMyX3QJCXhhX2dpZDsNCisjZWxzZQ0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0K
KyAgICBrdWlkX3QJCXhhX3VpZDsNCisgICAga2dpZF90CQl4YV9naWQ7DQor
I2Vsc2UNCisgICAgdWludDMyX3QJCXhhX3VpZDsNCisgICAgdWludDMyX3QJ
CXhhX2dpZDsNCisjZW5kaWYNCisjZW5kaWYNCiANCiAgICAgdWludDMyX3QJ
CXhhX2F0aW1lOw0KICAgICB1aW50MzJfdAkJeGFfbXRpbWU7DQpkaWZmIC11
cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9ubnBmcy9pbmNsdWRlL25ucGZz
L25ucGZzX21lc3NhZ2UuaCBhcmxhL25ucGZzL2luY2x1ZGUvbm5wZnMvbm5w
ZnNfbWVzc2FnZS5oDQotLS0gYXJsYS1jdnMtb2xkL25ucGZzL2luY2x1ZGUv
bm5wZnMvbm5wZnNfbWVzc2FnZS5oCTIwMDktMDItMjQgMjE6MjA6NTUuMDAw
MDAwMDAwICswMTAwDQorKysgYXJsYS9ubnBmcy9pbmNsdWRlL25ucGZzL25u
cGZzX21lc3NhZ2UuaAkyMDE2LTAxLTIyIDEyOjUzOjI5LjAwMDAwMDAwMCAr
MDEwMA0KQEAgLTUyLDcgKzUyLDE1IEBAIHR5cGVkZWYgdWludDE2X3Qgbm5w
ZnNfcmlnaHRzOw0KICAqIFRoZSBubnBmc19jcmVkLCBpZiBwYWcgPT0gMCwg
dXNlIHVpZCANCiAgKi8NCiB0eXBlZGVmIHN0cnVjdCBubnBmc19jcmVkIHsN
CisjaWZuZGVmIF9fS0VSTkVMX18NCiAgICAgdWludDMyX3QgdWlkOw0KKyNl
bHNlDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lP
TigzLDE0LDApDQorICAgIGt1aWRfdCB1aWQ7DQorI2Vsc2UNCisgICAgdWlu
dDMyX3QgdWlkOw0KKyNlbmRpZg0KKyNlbmRpZg0KICAgICBubnBmc19wYWdf
dCBwYWc7DQogfSBubnBmc19jcmVkOw0KIA0KZGlmZiAtdXByTiAtWG5vZGlm
ZiBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMuaCBh
cmxhL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmgNCi0tLSBhcmxhLWN2
cy1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMuaAkyMDA2LTEwLTI0
IDE4OjMzOjQ4LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEvbm5wZnMvbGlu
dXgvbm5wZnMvbm5wZnNfZnMuaAkyMDE2LTAxLTEzIDIyOjU3OjA2LjAwMDAw
MDAwMCArMDEwMA0KQEAgLTg0LDggKzg0LDEzIEBAIHN0cnVjdCBubnBmcyB7
DQogICAgIHN0cnVjdCB2ZnNtb3VudCAqY2FjaGVyb290OyAvKiBzaW1wbGlm
eSBvcGVuIG9mIGNhY2hlIGJsb2NrcyAqLw0KICAgICBzdHJ1Y3QgZGVudHJ5
ICpjYWNoZWRpcjsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMywxNCwwKQ0KICAgICB1aWRfdCB1aWQ7IC8qIGtlZXAg
dHJhY2sgb2YgZGFlbW9uJ3MgaWRlbnRpdHkgKi8NCiAgICAgZ2lkX3QgZ2lk
Ow0KKyNlbHNlDQorICAgIGt1aWRfdCB1aWQ7IC8qIGtlZXAgdHJhY2sgb2Yg
ZGFlbW9uJ3MgaWRlbnRpdHkgKi8NCisgICAga2dpZF90IGdpZDsNCisjZW5k
aWYNCiANCiAgICAgc3RydWN0IHsNCiAJaW50IHJlY3Vyc2U7DQpkaWZmIC11
cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmcy9u
bnBmc19sb2NsLmggYXJsYS9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2Ns
LmgNCi0tLSBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNf
bG9jbC5oCTIwMTAtMDgtMDggMjI6NDM6MDYuMDAwMDAwMDAwICswMjAwDQor
KysgYXJsYS9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2NsLmgJMjAxNi0w
MS0xMyAyMzowMToxMC4wMDAwMDAwMDAgKzAxMDANCkBAIC01MSw3ICs1MSw5
IEBADQogI2luY2x1ZGUgPGxpbnV4L3N0YXQuaD4NCiAjaW5jbHVkZSA8bGlu
dXgvc3RyaW5nLmg+DQogI2luY2x1ZGUgPGxpbnV4L25hbWVpLmg+DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkN
CiAjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4NCisjZW5kaWYNCiAjaW5j
bHVkZSA8bGludXgvd2FpdC5oPg0KIA0KIC8qDQpAQCAtMTM4LDEwICsxNDAs
MTcgQEAgdHlwZWRlZiBfX3UzMiAgdWludDMyX3Q7DQogaW50DQogbm5wZnNf
ZmV0Y2hfcm9vdChzdHJ1Y3QgaW5vZGUgKmkpOw0KIA0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogaW50DQog
bm5wZnNfZ2V0X3NiKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBl
LA0KIAkgICAgIGludCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUsDQog
CSAgICAgdm9pZCAqZGF0YSwgc3RydWN0IHZmc21vdW50ICptbnQpOw0KKyNl
bHNlDQorc3RydWN0IGRlbnRyeSoNCitubnBmc19tb3VudChzdHJ1Y3QgZmls
ZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCisJICAgICBpbnQgZmxhZ3MsIGNv
bnN0IGNoYXIgKmRldl9uYW1lLA0KKwkgICAgIHZvaWQgKmRhdGEpOw0KKyNl
bmRpZg0KIA0KIGV4dGVybiBzdHJ1Y3QgZGVudHJ5X29wZXJhdGlvbnMgbm5w
ZnNfZGVudHJ5X29wZXJhdGlvbnM7DQogDQpAQCAtMTk0LDEwICsyMDMsMjEg
QEAgbm5wZnNfaXdyaXRlY291bnQgKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQog
ICogSGVscCBmdW5jdGlvbiB0byByZWFkIHRoZSBkZW50cnktPmRfY291bnQg
YSBwb3J0YWJsZSB3YXkNCiAgKi8NCiANCisvKiNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpKi8NCiBzdGF0aWMgaW5s
aW5lIGludA0KIG5ucGZzX2Rjb3VudCAoY29uc3Qgc3RydWN0IGRlbnRyeSAq
ZGVudHJ5KQ0KKy8qI2Vsc2UNCitzdGF0aWMgaW5saW5lIGludA0KK25ucGZz
X2Rjb3VudCAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZiovDQog
ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzgpDQogICAgIHJldHVybiBhdG9taWNfcmVhZCgmZGVudHJ5LT5kX2Nv
dW50KTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDExLDApDQorICAgIHJldHVybiBhdG9taWNfcmVhZCgoY29uc3Qg
YXRvbWljX3QqKSZkZW50cnktPmRfY291bnQpOw0KKyNlbHNlDQorICAgIHJl
dHVybiBkX2NvdW50KGRlbnRyeSk7Ow0KKyNlbmRpZg0KIH0NCiANCiBleHRl
cm4gDQpAQCAtMjI5LDcgKzI0OSwxMiBAQCBubnBmc19maXh1cF9zeXNjYWxs
X2xvc3NhZ2Uodm9pZCk7DQogI2VuZGlmDQogDQogI2RlZmluZSBubnBmc19k
ZXZfdCBkZXZfdA0KKw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigyLDYsMzgpDQogI2RlZmluZSBubnBmc19kX2VudHJ5X3Vu
aGFzaGVkKGQpIGhsaXN0X3VuaGFzaGVkKGQpDQorI2Vsc2UNCisjZGVmaW5l
IG5ucGZzX2RfZW50cnlfdW5oYXNoZWQoZCkgaGxpc3RfYmxfdW5oYXNoZWQo
ZCkNCisjZW5kaWYNCiANCiAjZGVmaW5lIE5OUEZTX05PT1AgICAgICB3aGls
ZSgwKXt9DQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9u
bnBmcy9saW51eC9ubnBmc19ibG9ja3MuYyBhcmxhL25ucGZzL2xpbnV4L25u
cGZzX2Jsb2Nrcy5jDQotLS0gYXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25u
cGZzX2Jsb2Nrcy5jCTIwMTAtMDgtMDggMjI6NDM6MDQuMDAwMDAwMDAwICsw
MjAwDQorKysgYXJsYS9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYwkyMDE2
LTAxLTI4IDE3OjQ0OjM2LjAwMDAwMDAwMCArMDEwMA0KQEAgLTQzLDYgKzQz
LDExIEBADQogI2luY2x1ZGUgPGxpbnV4L21vdW50Lmg+DQogI2luY2x1ZGUg
PGxpbnV4L21tLmg+DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBL
RVJORUxfVkVSU0lPTigzLDEyLDApDQorZXh0ZXJuIGludCB2ZnNfcGF0aF9s
b29rdXAoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgdmZzbW91bnQgKiwNCisJ
CQkgICBjb25zdCBjaGFyICosIHVuc2lnbmVkIGludCwgc3RydWN0IHBhdGgg
Kik7DQorI2VuZGlmDQorDQogLyoNCiAgKiByZXR1cm4gdHJ1ZSBpZiBibG9j
ayBpcyBpbiBjYWNoZQ0KICAqLw0KQEAgLTI5MCw3ICsyOTUsMTMgQEAgbm5w
ZnNfYmxvY2tfZXh0ZW5kKHN0cnVjdCBubnBmc19ub2RlICpubw0KICAgICBi
YWNrbm9kZSA9IGJhY2tmaWxlLT5mX21hcHBpbmctPmhvc3Q7DQogDQogICAg
IG11dGV4X2xvY2soJmJhY2tub2RlLT5pX211dGV4KTsNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw4LDApDQogICAgIHJl
dCA9IHZtdHJ1bmNhdGUoYmFja25vZGUsIG5ucGZzX2Jsb2Nrc2l6ZSk7DQor
I2Vsc2UNCisgICAgcmV0ID0gaW5vZGVfbmV3c2l6ZV9vayhiYWNrbm9kZSwg
bm5wZnNfYmxvY2tzaXplKTsNCisgICAgaWYoIXJldCkNCisgICAgICAgIHRy
dW5jYXRlX3NldHNpemUoYmFja25vZGUsIG5ucGZzX2Jsb2Nrc2l6ZSk7DQor
I2VuZGlmDQogICAgIG11dGV4X3VubG9jaygmYmFja25vZGUtPmlfbXV0ZXgp
Ow0KICAgICANCiAgICAgZmlscF9jbG9zZShiYWNrZmlsZSwgTlVMTCk7DQpA
QCAtMzE4LDE0ICszMjksMTkgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qg
bm5wZnNfbm9kZSAqbm9kZQ0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9
IE5OUEZTX0ZST01fWE5PREUobm9kZSk7DQogICAgIHN0cnVjdCBpbm9kZSAq
aW5vZGUgPSBYTk9ERV9UT19WTk9ERShub2RlKTsNCiAgICAgaW50IGZsYWdz
ID0gT19MQVJHRUZJTEUgfCBmbGFnOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBuYW1l
aWRhdGEgbmQ7DQorI2Vsc2UNCisgICAgc3RydWN0IHBhdGggcGF0aDsNCisj
ZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMiw2LDI5KQ0KICAgICB1aWRfdCBzYXZldWlkOw0KICAgICBnaWRfdCBz
YXZlZ2lkOw0KLSAgICBpbnQgcmV0Ow0KLSNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KKyNlbHNlDQogICAgIGNv
bnN0IHN0cnVjdCBjcmVkICpvbGRfY3JlZDsNCiAgICAgc3RydWN0IGNyZWQg
Km92ZXJyaWRlX2NyZWQ7DQogI2VuZGlmDQorICAgIGludCByZXQ7DQogDQog
ICAgIEJVR19PTighbm5wZnNwKTsNCiAgICAgQlVHX09OKGZsYWdzICYgT19D
UkVBVCAmJiBmaWxlICE9IE5VTEwpOw0KQEAgLTM1MCwxNCArMzY2LDEyIEBA
IG5ucGZzX2Jsb2NrX29wZW4oc3RydWN0IG5ucGZzX25vZGUgKm5vZGUNCiAg
ICAgQlVHX09OKCFubnBmc3AtPmNhY2hlZGlyIHx8ICFubnBmc3AtPmNhY2hl
cm9vdCk7DQogICAgIA0KICAgICAvKiB1c2UgdGhlIG5mc2QgdHJpY2sgdG8g
Z2l2ZSB1cyBhY2Nlc3MgKi8NCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9
IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KICAgICBzYXZldWlkID0g
Y3VycmVudC0+ZnN1aWQ7DQogICAgIHNhdmVnaWQgPSBjdXJyZW50LT5mc2dp
ZDsNCiAgICAgY3VycmVudC0+ZnN1aWQgPSBubnBmc3AtPnVpZDsNCiAgICAg
Y3VycmVudC0+ZnNnaWQgPSBubnBmc3AtPmdpZDsNCiAjZWxzZQ0KLSAgICBz
YXZldWlkID0gY3VycmVudF9mc3VpZCgpOw0KLSAgICBzYXZlZ2lkID0gY3Vy
cmVudF9mc2dpZCgpOw0KICAgICBvdmVycmlkZV9jcmVkID0gcHJlcGFyZV9j
cmVkcygpOw0KICAgICBpZiAob3ZlcnJpZGVfY3JlZCA9PSBOVUxMKQ0KICAg
ICAgICAgcmV0dXJuIC1FTk9NRU07DQpAQCAtMzY2LDEwICszODAsMjIgQEAg
bm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KICAg
ICBvbGRfY3JlZCA9IG92ZXJyaWRlX2NyZWRzKG92ZXJyaWRlX2NyZWQpOw0K
ICNlbmRpZg0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDEsMCkNCiAgICAgcmV0ID0gdmZzX3BhdGhfbG9va3VwKG5u
cGZzcC0+Y2FjaGVkaXIsIG5ucGZzcC0+Y2FjaGVyb290LA0KIAkJCSAgY2Fj
aGVuYW1lLA0KIAkJCSAgZmxhZ3MgJiBPX0NSRUFUID8gTE9PS1VQX1BBUkVO
VCA6IDAsDQogCQkJICAmbmQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgcmV0ID0gdmZzX3Bh
dGhfbG9va3VwKG5ucGZzcC0+Y2FjaGVkaXIsIG5ucGZzcC0+Y2FjaGVyb290
LA0KKwkJCSAgY2FjaGVuYW1lLA0KKwkJCSAgZmxhZ3MgJiBPX0NSRUFUID8g
TE9PS1VQX1BBUkVOVCA6IDAsDQorCQkJICAmbmQucGF0aCk7DQorI2Vsc2UN
CisgICAgcmV0ID0gdmZzX3BhdGhfbG9va3VwKG5ucGZzcC0+Y2FjaGVkaXIs
IG5ucGZzcC0+Y2FjaGVyb290LA0KKwkJCSAgY2FjaGVuYW1lLA0KKwkJCSAg
ZmxhZ3MgJiBPX0NSRUFUID8gTE9PS1VQX1BBUkVOVCA6IDAsDQorCQkJICAm
cGF0aCk7DQorI2VuZGlmDQogICAgIGlmIChyZXQpIHsNCiAJdWludDMyX3Qg
bm1hc2tzID0gbm9kZS0+ZGF0YS5ubWFza3M7DQogCXVpbnQzMl90IG1hc2s7
DQpAQCAtMzk2LDE3ICs0MjIsMzkgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1
Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KICAgICANCiAgICAgaWYgKGZsYWdzICYg
T19DUkVBVCkgew0KIAkvKiBYWFggbW9kZSBiaXRzIG9uIGNyZWF0ZSAtLSBT
X0lSVVNSfFNfSVdVU1IgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMywxLDApDQogCXN0cnVjdCBkZW50cnkgKmRlbnRy
eSA9IGxvb2t1cF9jcmVhdGUoJm5kLCAwKTsJDQorI2VsaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwkvKiBYWFgg
dmVyaWZ5IHRoYXQgY2FjaGVuYW1lIGlzIHRoZSBjb3JyZWN0IHBhdGggc3Ry
aW5nIHRvIHVzZSBoZXJlICovDQorCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9
IGtlcm5fcGF0aF9jcmVhdGUoQVRfRkRDV0QsIGNhY2hlbmFtZSwgJm5kLnBh
dGgsIDApOwkNCisjZWxzZQ0KKwkvKiBYWFggdmVyaWZ5IHRoYXQgY2FjaGVu
YW1lIGlzIHRoZSBjb3JyZWN0IHBhdGggc3RyaW5nIHRvIHVzZSBoZXJlICov
DQorCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGtlcm5fcGF0aF9jcmVhdGUo
QVRfRkRDV0QsIGNhY2hlbmFtZSwgJnBhdGgsIDApOwkNCisjZW5kaWYNCiAJ
aWYgKElTX0VSUihkZW50cnkpKSB7DQogCSAgICByZXQgPSBQVFJfRVJSKGRl
bnRyeSk7DQogCX0gZWxzZSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAkgICAgcmV0ID0gdmZzX2NyZWF0
ZShuZC5wYXRoLmRlbnRyeS0+ZF9pbm9kZSwgZGVudHJ5LCBTX0lSVVNSfFNf
SVdVU1IsICZuZCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMywxOSwwKQ0KKwkgICAgLyogWFhYIHNob3VsZCB0aGUg
bGFzdCBhcmd1bWVudCB0byB2ZnNfY3JlYXRlOiBib29sIHdhbnRfZXhjbCwg
YmUgMCBvciAxPyAqLw0KKwkgICAgcmV0ID0gdmZzX2NyZWF0ZShuZC5wYXRo
LmRlbnRyeS0+ZF9pbm9kZSwgZGVudHJ5LCBTX0lSVVNSfFNfSVdVU1IsIDAp
Ow0KKyNlbHNlDQorCSAgICAvKiBYWFggc2hvdWxkIHRoZSBsYXN0IGFyZ3Vt
ZW50IHRvIHZmc19jcmVhdGU6IGJvb2wgd2FudF9leGNsLCBiZSAwIG9yIDE/
ICovDQorCSAgICByZXQgPSB2ZnNfY3JlYXRlKHBhdGguZGVudHJ5LT5kX2lu
b2RlLCBkZW50cnksIFNfSVJVU1J8U19JV1VTUiwgMCk7DQorI2VuZGlmDQor
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
NiwwKQ0KIAkgICAgZHB1dChkZW50cnkpOw0KKwkgICAgbXV0ZXhfdW5sb2Nr
KCZuZC5wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9tdXRleCk7DQorCSAgICBw
YXRoX3B1dCgmbmQucGF0aCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwkgICAgZG9uZV9wYXRoX2Ny
ZWF0ZSgmbmQucGF0aCwgZGVudHJ5KTsNCisjZWxzZQ0KKwkgICAgZG9uZV9w
YXRoX2NyZWF0ZSgmcGF0aCwgZGVudHJ5KTsNCisjZW5kaWYNCiAJfQ0KIA0K
LQltdXRleF91bmxvY2soJm5kLnBhdGguZGVudHJ5LT5kX2lub2RlLT5pX211
dGV4KTsNCi0JcGF0aF9wdXQoJm5kLnBhdGgpOw0KLQ0KIAlpZiAocmV0KSB7
DQogCSAgICBwcmludGsoIm5ucGZzX2Jsb2NrX29wZW4oJXMpIGNyZWF0ZSBm
YWlsZWQ6ICVkXG4iLCBjYWNoZW5hbWUsIC1yZXQpOw0KIAkgICAgbm5wZnNf
ZGVidWdfb29wcygpOw0KQEAgLTQyMSwxNCArNDY5LDIyIEBAIG5ucGZzX2Js
b2NrX29wZW4oc3RydWN0IG5ucGZzX25vZGUgKm5vZGUNCiAgICAgfSBlbHNl
IHsNCiAjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Miw2LDI5KQ0KIAlzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKG5kLnBh
dGguZGVudHJ5LCBuZC5wYXRoLm1udCwgZmxhZ3MpOw0KLSNlbHNlDQorI2Vs
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDAp
DQogICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKG5kLnBh
dGguZGVudHJ5LCBuZC5wYXRoLm1udCwgZmxhZ3MsIGN1cnJlbnRfY3JlZCgp
KTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDE5LDApDQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9v
cGVuKCZuZC5wYXRoLCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNlbHNl
DQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKCZwYXRo
LCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KICNlbmRpZg0KIAlpZiAoSVNf
RVJSKGYpKSB7DQogCSAgICByZXQgPSBQVFJfRVJSKGYpOw0KIAkgICAgcHJp
bnRrKCJubnBmc19ibG9ja19vcGVuKCVzKSBvcGVuIGZhaWxlZDogJWRcbiIs
IGNhY2hlbmFtZSwgLXJldCk7DQogCSAgICBubnBmc19kZWJ1Z19vb3BzKCk7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTksMCkNCiAJICAgIHBhdGhfcHV0KCZuZC5wYXRoKTsNCisjZWxzZQ0KKwkg
ICAgcGF0aF9wdXQoJnBhdGgpOw0KKyNlbmRpZg0KIAl9IGVsc2Ugew0KIAkg
ICAgKmZpbGUgPSBmOw0KIAl9DQpAQCAtNDM3LDcgKzQ5Myw3IEBAIG5ucGZz
X2Jsb2NrX29wZW4oc3RydWN0IG5ucGZzX25vZGUgKm5vZGUNCiAgICAgLyog
cGF0aF9yZWxlYXNlKCkgaXMgdXN1YWxseSBoYW5kbGVkIG9uIGNsb3NlICov
DQogDQogIG91dDoNCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5F
TF9WRVJTSU9OKDIsNiwyOCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KICAgICBjdXJyZW50LT5mc3VpZCA9
IHNhdmV1aWQ7DQogICAgIGN1cnJlbnQtPmZzZ2lkID0gc2F2ZWdpZDsNCiAj
ZWxzZQ0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLWN2cy1vbGQvbm5wZnMv
bGludXgvbm5wZnNfY29tbW9uLmMgYXJsYS9ubnBmcy9saW51eC9ubnBmc19j
b21tb24uYw0KLS0tIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc19j
b21tb24uYwkyMDA2LTEyLTExIDE3OjMxOjQ2LjAwMDAwMDAwMCArMDEwMA0K
KysrIGFybGEvbm5wZnMvbGludXgvbm5wZnNfY29tbW9uLmMJMjAxNi0wMS0x
NCAxNjoxNTowMC4wMDAwMDAwMDAgKzAxMDANCkBAIC0xMTIsMTAgKzExMiwx
NSBAQCBubnBmc19wcmludF9hbGlhc2VzKGNvbnN0IHN0cnVjdCBpbm9kZSAq
DQogdm9pZA0KIG5ucGZzX3ByaW50X2FsaWFzZXNfcmVhbChjb25zdCBzdHJ1
Y3QgaW5vZGUgKmlub2RlKQ0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHN0cnVjdCBsaXN0X2hl
YWQgKmFsaWFzOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqYWxp
YXM7DQorI2VuZGlmDQogICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeTsNCiAg
ICAgaW50IGJhaWxvdXQgPSAxMDA7DQogDQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBhbGlhcyA9IGlu
b2RlLT5pX2RlbnRyeS5uZXh0Ow0KICAgICB3aGlsZSAoYWxpYXMgIT0gJmlu
b2RlLT5pX2RlbnRyeSkgew0KIAlpZiAoLS1iYWlsb3V0IDwgMCkgew0KQEAg
LTEzMSw2ICsxMzYsMjYgQEAgbm5wZnNfcHJpbnRfYWxpYXNlc19yZWFsKGNv
bnN0IHN0cnVjdCBpbg0KIAl9DQogCWFsaWFzID0gYWxpYXMtPm5leHQ7DQog
ICAgIH0NCisjZWxzZQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnko
ZGVudHJ5LCBhbGlhcywgJmlub2RlLT5pX2RlbnRyeSwgZF9hbGlhcykgew0K
KyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5LCAmaW5v
ZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2Vsc2UNCisgICAgaGxpc3Rf
Zm9yX2VhY2hfZW50cnkoZGVudHJ5LCAmaW5vZGUtPmlfZGVudHJ5LCBkX3Uu
ZF9hbGlhcykgew0KKyNlbmRpZg0KKwlpZiAoLS1iYWlsb3V0IDwgMCkgew0K
KwkgICAgcHJpbnRrKCIgLi4uIik7DQorCSAgICBicmVhazsNCisJfQ0KKwlp
ZiAoZGVudHJ5KSB7DQorCSAgICBwcmludGsoIiAlLipzKCVwKSIsIChpbnQp
ZGVudHJ5LT5kX25hbWUubGVuLA0KKwkJICAgZGVudHJ5LT5kX25hbWUubmFt
ZSwgZGVudHJ5KTsNCisJICAgIGlmIChubnBmc19kX2VudHJ5X3VuaGFzaGVk
KCZkZW50cnktPmRfaGFzaCkpDQorCQlwcmludGsoIih1bmhhc2hlZCkiKTsN
CisJfQ0KKyAgICB9DQorI2VuZGlmDQogICAgIHByaW50aygiXG4iKTsNCiB9
DQogDQpAQCAtMTQ2LDcgKzE3MSwxMSBAQCBubnBmc19wcmludF9jaGlsZHJl
bihjb25zdCBzdHJ1Y3QgZGVudHJ5DQogDQogICAgIHdoaWxlIChzdWJkaXJz
ICE9ICZkZW50cnktPmRfc3ViZGlycykgew0KIAlzdHJ1Y3QgbGlzdF9oZWFk
ICp0bXAgPSBzdWJkaXJzOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDE5LDApDQogCXN0cnVjdCBkZW50cnkgKmNoaWxk
ID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRfdS5kX2NoaWxk
KTsNCisjZWxzZQ0KKwlzdHJ1Y3QgZGVudHJ5ICpjaGlsZCA9IGxpc3RfZW50
cnkodG1wLCBzdHJ1Y3QgZGVudHJ5LCBkX2NoaWxkKTsNCisjZW5kaWYNCiAN
CiAJcHJpbnRrKCIgJS4qcyglcCkiLCAoaW50KWNoaWxkLT5kX25hbWUubGVu
LA0KIAkgICAgICAgY2hpbGQtPmRfbmFtZS5uYW1lLCBjaGlsZCk7DQpkaWZm
IC11cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBm
c19kZXYuYyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jDQotLS0gYXJs
YS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jCTIwMDYtMTAtMjQg
MTg6MzM6MzYuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS9ubnBmcy9saW51
eC9ubnBmc19kZXYuYwkyMDE2LTAxLTE0IDE2OjI4OjE5LjAwMDAwMDAwMCAr
MDEwMA0KQEAgLTMwMCw3ICszMDAsOSBAQCBubnBmc19pbnZhbGlkYXRlX2Fs
bChzdHJ1Y3Qgbm5wZnMgKm5ucGZzDQogICAgIE5OUEZTREVCKFhERUJOT0RF
LCAoImZyZWVfYWxsX25ucGZzX25vZGVzIHN0YXJ0aW5nXG4iKSk7DQogDQog
ICAgIHNocmlua19kY2FjaGVfc2Iobm5wZnMtPnNiKTsNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM3KQ0KICAgICBp
bnZhbGlkYXRlX2lub2RlcyhubnBmcy0+c2IpOw0KKyNlbmRpZg0KICAgICAN
CiAgICAgTk5QRlNERUIoWERFQk5PREUsICgiZnJlZV9hbGxfbm5wZnNfbm9k
ZXMgZG9uZVxuIikpOw0KIH0NCkBAIC0zNzQsNyArMzc2LDExIEBAIG5ucGZz
X2RldmNsb3NlKHN0cnVjdCBpbm9kZSAqIGlub2RlLCBzdHINCiBzdGF0aWMg
c3NpemVfdA0KIG5ucGZzX2RldnJlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNo
YXIgKmJ1Ziwgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpDQogew0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp
DQogICAgIG5ucGZzX2Rldl90IGRldiA9IGZpbGUtPmZfZGVudHJ5LT5kX2lu
b2RlLT5pX3JkZXY7DQorI2Vsc2UNCisgICAgbm5wZnNfZGV2X3QgZGV2ID0g
ZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbmRp
Zg0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9ICZubnBmc1tNSU5PUihk
ZXYpXTsNCiAgICAgc3RydWN0IG5ucGZzX2xpbmsgKmZpcnN0Ow0KICAgICBp
bnQgcmV0ID0gMCwgZXJyb3IgPSAwOw0KQEAgLTQzOSw4ICs0NDUsMTIgQEAg
bm5wZnNfZGV2d3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IA0KIA0K
ICAgICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2RldndyaXRlXG4iKSk7
DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDE5LDApDQogICAgIGRldiA9IGZpbGUtPmZfZGVudHJ5LT5kX2lu
b2RlLT5pX3JkZXY7DQotICAgIG5ucGZzcCA9ICZubnBmc1tNSU5PUihkZXYp
XTsNCisjZWxzZQ0KKyAgICBkZXYgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5k
X2lub2RlLT5pX3JkZXY7DQorI2VuZGlmDQorICAgICBubnBmc3AgPSAmbm5w
ZnNbTUlOT1IoZGV2KV07DQogDQogICAgIGRvd24oJm5ucGZzcC0+Y2hhbm5l
bF9zZW0pOw0KICAgICBpZiAobm5wZnNwLT5zdGF0dXMgJiBOTlBGU19ERVZX
UklURSkgew0KQEAgLTUwNSwxOSArNTE1LDM3IEBAIG5ucGZzX2RldndyaXRl
KHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCANCiAvKg0KICAqIE5vdCB1c2Vk
Lg0KICAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigyLDYsMzYpDQogc3RhdGljIGludA0KIG5ucGZzX2RldmlvY3RsKHN0
cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLA0KIAkgICAg
ICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQorI2Vs
c2UNCitzdGF0aWMgbG9uZw0KK25ucGZzX3VubG9ja2VkX2RldmlvY3RsKHN0
cnVjdCBmaWxlICpmaWxlLA0KKwkgICAgICAgdW5zaWduZWQgaW50IGNtZCwg
dW5zaWduZWQgbG9uZyBhcmcpDQorI2VuZGlmDQogew0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQogICAgIE5O
UEZTREVCKFhERUJERVYsICgibm5wZnNfZGV2aW9jdGwgZGV2ID0gJWQsIGZs
YWdzID0gJWRcbiIsDQogCQkgICAgICAgaW5vZGUtPmlfcmRldiwgZmlsZS0+
Zl9mbGFncykpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMTksMCkNCisgICAgTk5QRlNERUIoWERFQkRFViwgKCJu
bnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3MgPSAlZFxuIiwNCisJCSAg
ICAgICBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2LCBmaWxlLT5m
X2ZsYWdzKSk7DQorI2Vsc2UNCisgICAgTk5QRlNERUIoWERFQkRFViwgKCJu
bnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3MgPSAlZFxuIiwNCisJCSAg
ICAgICBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlLT5pX3JkZXYsIGZp
bGUtPmZfZmxhZ3MpKTsNCisjZW5kaWYNCiAgICAgcmV0dXJuIC1FSU5WQUw7
DQogfQ0KIA0KIHN0YXRpYyB1bnNpZ25lZCBpbnQNCiBubnBmc19kZXZwb2xs
KHN0cnVjdCBmaWxlICpmaWxlLCBwb2xsX3RhYmxlICp3YWl0KQ0KIHsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSww
KQ0KICAgICBubnBmc19kZXZfdCBkZXYgPSBmaWxlLT5mX2RlbnRyeS0+ZF9p
bm9kZS0+aV9yZGV2Ow0KKyNlbHNlDQorICAgIG5ucGZzX2Rldl90IGRldiA9
IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisjZW5k
aWYNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSAmbm5wZnNbTUlOT1Io
ZGV2KV07DQogICAgIGludCByZXQgPSAwOw0KICAgICANCkBAIC05NTMsNyAr
OTgxLDExIEBAIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZm9wcyA9
IHsNCiAgICAgcmVhZDoJCW5ucGZzX2RldnJlYWQsDQogICAgIHdyaXRlOgkJ
bm5wZnNfZGV2d3JpdGUsDQogICAgIHBvbGw6CQlubnBmc19kZXZwb2xsLA0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs
MzYpDQogICAgIGlvY3RsOgkJbm5wZnNfZGV2aW9jdGwsDQorI2Vsc2UNCisg
ICAgdW5sb2NrZWRfaW9jdGw6CW5ucGZzX3VubG9ja2VkX2RldmlvY3RsLA0K
KyNlbmRpZg0KICAgICByZWxlYXNlOgkJbm5wZnNfZGV2Y2xvc2UsDQogICAg
IG9wZW46CQlubnBmc19kZXZvcGVuLA0KIH07DQpAQCAtOTY4LDggKzEwMDAs
MTMgQEAgbm5wZnNfaW5pdF9kZXZpY2Uodm9pZCkNCiAJaW5pdF93YWl0cXVl
dWVfaGVhZCgmKG5ucGZzW2ldLndhaXRfcXVldWUpKTsNCiAJbm5wZnNfaW5p
dHEoJm5ucGZzW2ldLm1lc3NhZ2VxKTsNCiAJbm5wZnNfaW5pdHEoJm5ucGZz
W2ldLnNsZWVwcSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDIsNiwzNykNCiAJaW5pdF9NVVRFWCgmbm5wZnNbaV0uaW5h
Y3RpdmVfc2VtKTsNCiAJaW5pdF9NVVRFWCgmbm5wZnNbaV0uY2hhbm5lbF9z
ZW0pOw0KKyNlbHNlDQorCXNlbWFfaW5pdCgmbm5wZnNbaV0uaW5hY3RpdmVf
c2VtLCAxKTsNCisJc2VtYV9pbml0KCZubnBmc1tpXS5jaGFubmVsX3NlbSwg
MSk7DQorI2VuZGlmDQogCUlOSVRfTElTVF9IRUFEKCZubnBmc1tpXS5pbmFj
dGl2ZV9saXN0KTsNCiAJbm5wZnNbaV0ubm5vZGVzID0gMDsNCiAgICAgfQ0K
ZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgv
bm5wZnNfaW5vZGVvcHMuYyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX2lub2Rl
b3BzLmMNCi0tLSBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnNfaW5v
ZGVvcHMuYwkyMDEwLTA4LTA4IDIyOjQzOjA0LjAwMDAwMDAwMCArMDIwMA0K
KysrIGFybGEvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYwkyMDE2LTAy
LTE1IDE2OjE1OjI5LjAwMDAwMDAwMCArMDEwMA0KQEAgLTQwLDEwICs0MCwx
NCBAQA0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19kZXYuaD4NCiAjaW5jbHVk
ZSA8bm5wZnMvbm5wZnNfZGlyZW50Lmg+DQogI2luY2x1ZGUgPG5ucGZzL25u
cGZzX3N5c2NhbGxzLmg+DQorI2luY2x1ZGUgPGxpbnV4L2Fpby5oPg0KICNp
bmNsdWRlIDxsaW51eC9iaW5mbXRzLmg+DQogI2luY2x1ZGUgPGxpbnV4L2Zp
bGUuaD4NCiAjaW5jbHVkZSA8bGludXgvcGFnZW1hcC5oPg0KICNpbmNsdWRl
IDxsaW51eC9wYWdlLWZsYWdzLmg+DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA+PSBLRVJORUxfVkVSU0lPTig0LDEsMCkNCisjaW5jbHVkZSA8bGludXgv
dWlvLmg+DQorI2VuZGlmDQogI2luY2x1ZGUgPGxpbnV4L3dyaXRlYmFjay5o
Pg0KICNpbmNsdWRlIDxhc20vZmNudGwuaD4NCiANCkBAIC01NCwxMSArNTgs
MjMgQEAgUkNTSUQoIiRJZDogbm5wZnNfaW5vZGVvcHMuYyx2IDEuMjI2IDIw
MQ0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUg
KmZpbGUsIHVfaW50IGZsYWcpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiBzdGF0aWMgaW50DQogbm5w
ZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0
IG5hbWVpZGF0YSAqbmQpOw0KLQ0KKyNlbHNlDQogc3RhdGljIGludA0KK25u
cGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVuc2ln
bmVkIGludCBmbGFncyk7DQorI2VuZGlmDQorDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCitzdGF0aWMNCitp
bnQNCiBubnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOw0K
KyNlbHNlDQorc3RhdGljDQoraW50DQorbm5wZnNfZF9kZWxldGUoY29uc3Qg
c3RydWN0IGRlbnRyeSAqZGVudHJ5KTsNCisjZW5kaWYNCiANCiBzdGF0aWMg
dm9pZA0KIG5ucGZzX2RfcmVsZWFzZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkp
Ow0KQEAgLTIxNCw4ICsyMzAsMTMgQEAgbm5wZnNfaW5vZGVfdmFsaWQoc3Ry
dWN0IGlub2RlICppbm9kZSkNCiAgKiBubnBmc19sb29rdXAgbm93IHJldHVy
bnMgYSBkZW50cnkuDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyBzdHJ1Y3QgZGVu
dHJ5ICoNCiBubnBmc19sb29rdXAgKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1
Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNl
bHNlDQorc3RhdGljIHN0cnVjdCBkZW50cnkgKg0KK25ucGZzX2xvb2t1cCAo
c3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW5z
aWduZWQgaW50IGZsYWdzKQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IG5u
cGZzX21lc3NhZ2VfZ2V0bm9kZSBtc2c7DQogICAgIHN0cnVjdCBubnBmcyAq
bm5wZnNwOw0KQEAgLTQwNyw3ICs0MjgsMTEgQEAgZmluZF9maXJzdF9ibG9j
ayhzdHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KIHN0YXRpYyBpbnQNCiBubnBm
c19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50IGZsYWcpDQog
ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDE5LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2Rl
bnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlu
b2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYN
CiAgICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSBOTlBGU19GUk9NX1ZOT0RF
KGlub2RlKTsNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5PREVf
VE9fWE5PREUoaW5vZGUpOw0KICAgICBsb2ZmX3QgbGVuID0gaV9zaXplX3Jl
YWQoaW5vZGUpOw0KQEAgLTQ3NCwxNSArNDk5LDE4IEBAIG5ucGZzX2ZzeW5j
X2ludChzdHJ1Y3QgZmlsZSAqZmlsZSwgdV9pbnQNCiAgKg0KICAqLw0KIA0K
LSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLCA2
LCAzNSkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMiw2LDM1KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3luYyhzdHJ1Y3Qg
ZmlsZSAqZmlsZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBpbnQgZGF0YXN5
bmMpDQotI2Vsc2UNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDEsMCkNCiBzdGF0aWMgaW50DQogbm5wZnNfZnN5bmMo
c3RydWN0IGZpbGUgKmZpbGUsIGludCBkYXRhc3luYykNCisjZWxzZQ0KK3N0
YXRpYyBpbnQNCitubnBmc19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9m
Zl90IHN0YXJ0LCBsb2ZmX3QgZW5kLCBpbnQgZGF0YXN5bmMpDQogI2VuZGlm
DQogew0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJ
T04oMiwgNiwgMzUpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO
RUxfVkVSU0lPTigyLDYsMzUpDQogICAgIHN0cnVjdCBkZW50cnkgKmRlbnRy
eSA9IGZpbGUtPmZfcGF0aC5kZW50cnk7DQogI2VuZGlmDQogICAgIHN0cnVj
dCBpbm9kZSAqaW5vZGUgPSBERU5UUllfVE9fSU5PREUoZGVudHJ5KTsNCkBA
IC00OTAsNiArNTE4LDggQEAgbm5wZnNfZnN5bmMoc3RydWN0IGZpbGUgKmZp
bGUsIGludCBkYXRhcw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQog
ICAgIGludCBlcnJvciA9IDA7DQogDQorICAgICh2b2lkKW5ucGZzcDsNCisN
CiAgICAgZXJyb3IgPSBubnBmc19pbm9kZV92YWxpZChpbm9kZSk7DQogICAg
IGlmIChlcnJvcikNCiAJcmV0dXJuIGVycm9yOw0KQEAgLTYyMiwxMSArNjUy
LDI1IEBAIGNoZWNrX3JpZ2h0cyAobm5wZnNfcmlnaHRzIHJpZ2h0cywgaW50
IG0NCiAgKiBXZSBkb24ndCBob2xkIGlfbXV0ZXguDQogICovDQogDQorI2lm
IChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgp
IHx8IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDEs
MCkpDQogc3RhdGljIGludA0KIG5ucGZzX3Blcm1pc3Npb24oc3RydWN0IGlu
b2RlICppbm9kZSwgaW50IG1vZGUpDQorI2Vsc2UNCitzdGF0aWMgaW50DQor
bm5wZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9k
ZSwgdW5zaWduZWQgaW50IGZsYWdzKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50
IGVycm9yID0gMDsNCi0gICAgbm5wZnNfcGFnX3QgcGFnID0gbm5wZnNfZ2V0
X3BhZygpOw0KKyAgICBubnBmc19wYWdfdCBwYWc7DQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDEsMCkNCisgICAgaWYg
KG1vZGUgJiBNQVlfTk9UX0JMT0NLKQ0KKyAgICAgICAgcmV0dXJuIC1FQ0hJ
TEQ7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJT
SU9OKDIsNiwzOCkNCisgICAgaWYgKGZsYWdzICYgSVBFUk1fRkxBR19SQ1Up
DQorICAgICAgICByZXR1cm4gLUVDSElMRDsNCisjZW5kaWYNCisNCisgICAg
cGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICANCiAgICAgTk5QRlNERUIo
WERFQlZOT1BTLCAoIm5ucGZzX2FjY2VzcyAoJXApIG1vZGUgPSAwJW8gYWxp
YXNlczoiLCBpbm9kZSwgbW9kZSkpOw0KICAgICBubnBmc19wcmludF9hbGlh
c2VzKGlub2RlKTsNCkBAIC03ODQsMTEgKzgyOCwxOSBAQCBubnBmc19kYXRh
X3ZhbGlkKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVfDQogaW50IG5ucGZzX2Zp
bGVfbW1hcChzdHJ1Y3QgZmlsZSAqIGZpbGUsIHN0cnVjdCB2bV9hcmVhX3N0
cnVjdCAqIHZtYSkNCiB7DQogICAgIGludCBmbGFncywgZXJyb3IgPSAwOw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5
LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRy
eS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2Rl
ID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAg
ICAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBmaWxlLT5mX21h
cHBpbmc7DQogDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19t
bWFwIGlub2RlOiAlcFxuIiwgaW5vZGUpKTsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBubnBmc19w
cmludF9wYXRoKGZpbGUtPmZfZGVudHJ5KTsNCisjZWxzZQ0KKyAgICBubnBm
c19wcmludF9wYXRoKGZpbGUtPmZfcGF0aC5kZW50cnkpOw0KKyNlbmRpZg0K
ICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfbW1hcCBhbGlhc2Vz
OiIpKTsNCiAgICAgbm5wZnNfcHJpbnRfYWxpYXNlcyhpbm9kZSk7DQogICAg
IA0KQEAgLTgyMywyOCArODc1LDUxIEBAIGludCBubnBmc19maWxlX21tYXAo
c3RydWN0IGZpbGUgKiBmaWxlLCANCiAgKg0KICAqLw0KIA0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQogc3Rh
dGljIHNzaXplX3QNCiBubnBmc19haW9fcmVhZChzdHJ1Y3Qga2lvY2IgKmlv
Y2IsDQogCSAgICAgICBjb25zdCBzdHJ1Y3QgaW92ZWMgKmlvdiwgdW5zaWdu
ZWQgbG9uZyBucl9zZWdzLA0KIAkgICAgICAgbG9mZl90IHBvcykNCisjZWxz
ZQ0KK3N0YXRpYyBzc2l6ZV90DQorbm5wZnNfcmVhZF9pdGVyKHN0cnVjdCBr
aW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICp0bykNCisjZW5kaWYNCiB7
DQogICAgIGludCBlcnJvciA9IDA7DQogICAgIHN0cnVjdCBmaWxlICpmaWxl
ID0gaW9jYi0+a2lfZmlscDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMywxMiwwKQ0KICAgICBzc2l6ZV90IGNvdW50ID0g
aW9jYi0+a2lfbGVmdDsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTig0LDEsMCkNCisgICAgc3NpemVfdCBjb3VudCA9IGlv
Y2ItPmtpX25ieXRlczsNCisjZWxzZQ0KKyAgICBzc2l6ZV90IGNvdW50ID0g
aW92X2l0ZXJfY291bnQodG8pOw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVj
dCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisj
ZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRo
LmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0IG5ucGZz
X25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KICAgICANCiAg
ICAgaWYgKHhuICE9IE5VTEwpDQogCU5OUEZTREVCKFhERUJWTk9QUywgKCJu
bnBmc19yZWFkX2ZpbGUoJXApOiB0b2tlbnM6IDB4JXhcbiIsDQogCQkJICAg
ICBpbm9kZSwgeG4tPnRva2VucykpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQogICAgIGVycm9yID0g
bm5wZnNfZGF0YV92YWxpZChpbm9kZSwgTk5QRlNfREFUQV9SLCBwb3MsIHBv
cyArIGNvdW50KTsNCisjZWxzZQ0KKyAgICBlcnJvciA9IG5ucGZzX2RhdGFf
dmFsaWQoaW5vZGUsIE5OUEZTX0RBVEFfUiwgaW9jYi0+a2lfcG9zLCBpb2Ni
LT5raV9wb3MgKyBjb3VudCk7DQorI2VuZGlmDQogICAgIGlmIChlcnJvcikg
ew0KIAlOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfcmVhZF9maWxlOiBk
YXRhIG5vdCB2YWxpZCAlZFxuIiwgZXJyb3IpKTsNCiAJcmV0dXJuIGVycm9y
Ow0KICAgICB9DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDE2LDApDQogICAgIGVycm9yID0gZ2VuZXJpY19m
aWxlX2Fpb19yZWFkKGlvY2IsIGlvdiwgbnJfc2VncywgcG9zKTsNCisjZWxz
ZQ0KKyAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV9yZWFkX2l0ZXIoaW9jYiwg
dG8pOw0KKyNlbmRpZg0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5w
ZnNfcmVhZF9maWxlOiBlcnJvciA9ICVkXG4iLCBlcnJvcikpOw0KICAgICBy
ZXR1cm4gZXJyb3I7DQogfQ0KQEAgLTg1MywxNyArOTI4LDM2IEBAIG5ucGZz
X2Fpb19yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAgKg0KICAqLw0KIA0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2
LDApDQogc3RhdGljIHNzaXplX3QNCiBubnBmc19haW9fd3JpdGUoc3RydWN0
IGtpb2NiICppb2NiLA0KIAkJY29uc3Qgc3RydWN0IGlvdmVjICppb3YsIHVu
c2lnbmVkIGxvbmcgbnJfc2VncywNCiAJCWxvZmZfdCBwb3MpDQorI2Vsc2UN
CitzdGF0aWMgc3NpemVfdA0KK25ucGZzX3dyaXRlX2l0ZXIoc3RydWN0IGtp
b2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKmZyb20pDQorI2VuZGlmDQog
ew0KICAgICBpbnQgZXJyb3IgPSAwOw0KICAgICBzdHJ1Y3QgZmlsZSAqZmls
ZSA9IGlvY2ItPmtpX2ZpbHA7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkNCiAgICAgc3NpemVfdCBjb3VudCA9
IGlvY2ItPmtpX2xlZnQ7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oNCwxLDApDQorICAgIHNzaXplX3QgY291bnQgPSBp
b2NiLT5raV9uYnl0ZXM7DQorI2Vsc2UNCisgICAgc3NpemVfdCBjb3VudCA9
IGlvdl9pdGVyX2NvdW50KGZyb20pOw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0
cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsN
CisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9w
YXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0IG5u
cGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQog
ICAgIGxvZmZfdCByZWFscG9zID0gcG9zOw0KKyNlbHNlDQorICAgIGxvZmZf
dCByZWFscG9zID0gaW9jYi0+a2lfcG9zOw0KKyNlbmRpZg0KICAgICANCiAg
ICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2Fpb193cml0ZSglcCk6
IHRva2VuczogMHgleFxuIiwNCiAJCQkgaW5vZGUsIHhuLT50b2tlbnMpKTsN
CkBAIC04NzcsNyArOTcxLDExIEBAIG5ucGZzX2Fpb193cml0ZShzdHJ1Y3Qg
a2lvY2IgKmlvY2IsDQogCXJldHVybiBlcnJvcjsNCiAgICAgfQ0KIA0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDAp
DQogICAgIGVycm9yID0gZ2VuZXJpY19maWxlX2Fpb193cml0ZShpb2NiLCBp
b3YsIG5yX3NlZ3MsIHBvcyk7DQorI2Vsc2UNCisgICAgZXJyb3IgPSBnZW5l
cmljX2ZpbGVfd3JpdGVfaXRlcihpb2NiLCBmcm9tKTsNCisjZW5kaWYNCiAg
ICAgaWYgKCFJU19FUlJfVkFMVUUoZXJyb3IpKQ0KIAl4bi0+ZmxhZ3MgfD0g
Tk5QRlNfREFUQV9ESVJUWTsgLyogWFhYIHJhY2UgKi8NCiANCkBAIC04ODUs
OSArOTgzLDE5IEBAIG5ucGZzX2Fpb193cml0ZShzdHJ1Y3Qga2lvY2IgKmlv
Y2IsDQogICAgIHJldHVybiBlcnJvcjsNCiB9DQogDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMywwKQ0KIHN0YXRpYyBp
bnQNCiBubnBmc19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBk
ZW50cnkgKmRlbnRyeSwNCiAJICAgICBpbnQgbW9kZSwgc3RydWN0IG5hbWVp
ZGF0YSAqbmQpDQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMyw2LDApDQorc3RhdGljIGludA0KK25ucGZzX2NyZWF0ZShz
dHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KKwkg
ICAgIHVtb2RlX3QgbW9kZSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vs
c2UNCitzdGF0aWMgaW50DQorbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAq
ZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksDQorCSAgICAgdW1vZGVfdCBt
b2RlLCBib29sIGV4Y2wpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3Qgbm5w
ZnMgKm5ucGZzcDsNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0KQEAg
LTEwMzgsOCArMTE0NiwxMyBAQCBubnBmc19yZW5hbWUgKHN0cnVjdCBpbm9k
ZSAqIG9sZF9kaXIsIHN0DQogICAgIHJldHVybiBlcnJvcjsNCiB9DQogDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMyww
KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19ta2RpcihzdHJ1Y3QgaW5vZGUgKiBk
aXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgaW50IG1vZGUpDQorI2Vsc2UN
CitzdGF0aWMgaW50DQorbm5wZnNfbWtkaXIoc3RydWN0IGlub2RlICogZGly
LCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVtb2RlX3QgbW9kZSkNCisjZW5k
aWYNCiB7DQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KICAgICBzdHJ1
Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAtMTI1MiwxMiArMTM2NSwyMSBAQCBz
dGF0aWMgaW50IG5ucGZzX3N5bWxpbmsoc3RydWN0IGlub2RlICpkDQogLyoN
CiAgKiBXZSBob2xkIGlfbXV0ZXguDQogICovDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEsMCkNCiBzdGF0aWMgaW50
DQogbm5wZnNfcmVhZGRpcihzdHJ1Y3QgZmlsZSAqIGZpbGUsIHZvaWQgKiBk
aXJlbnQsIGZpbGxkaXJfdCBmaWxsZGlyKQ0KKyNlbHNlDQorc3RhdGljIGlu
dA0KK25ucGZzX2l0ZXJhdGUoc3RydWN0IGZpbGUgKiBmaWxlLCBzdHJ1Y3Qg
ZGlyX2NvbnRleHQgKmN0eCkNCisjZW5kaWYNCiB7DQogICAgIGludCBlcnJv
cjsNCiAgICAgbG9mZl90IG9mZnNldCwgYmVnaW5fb2Zmc2V0Ow0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQog
ICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9p
bm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmls
ZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3Ry
dWN0IGlub2RlICpjYWNoZV9pbm9kZTsNCiAgICAgc3RydWN0IG5ucGZzX25v
ZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KICAgICBjaGFyICpi
dWY7DQpAQCAtMTI4MSw2ICsxNDAzLDcgQEAgbm5wZnNfcmVhZGRpcihzdHJ1
Y3QgZmlsZSAqIGZpbGUsIHZvaWQgKg0KIA0KICAgICBjYWNoZV9pbm9kZSA9
IGJhY2tmaWxlLT5mX21hcHBpbmctPmhvc3Q7DQogDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEsMCkNCiAgICAgd2hp
bGUgKGZpbGUtPmZfcG9zIDwgaV9zaXplX3JlYWQoY2FjaGVfaW5vZGUpKSB7
DQogCU5OUEZTREVCKFhERUJSRUFERElSLA0KIAkgICAgICAgKCJubnBmc19y
ZWFkZGlyIGZpbGUtPmZfcG9zOiAlZCBpX3NpemU6ICVkXG4iLA0KQEAgLTEy
OTMsNiArMTQxNiwyMCBAQCBubnBmc19yZWFkZGlyKHN0cnVjdCBmaWxlICog
ZmlsZSwgdm9pZCAqDQogCW1hcHBpbmcgPSBiYWNrZmlsZS0+Zl9tYXBwaW5n
Ow0KIAlpbnBhZ2UgPSBmaWxlLT5mX3BvcyAmIChQQUdFX0NBQ0hFX1NJWkUt
MSk7DQogCXBhZ2VfbnVtID0gZmlsZS0+Zl9wb3MgPj4gUEFHRV9DQUNIRV9T
SElGVDsNCisjZWxzZQ0KKyAgICB3aGlsZSAoY3R4LT5wb3MgPCBpX3NpemVf
cmVhZChjYWNoZV9pbm9kZSkpIHsNCisJTk5QRlNERUIoWERFQlJFQURESVIs
DQorCSAgICAgICAoIm5ucGZzX3JlYWRkaXIgZmlsZS0+Zl9wb3M6ICVkIGlf
c2l6ZTogJWRcbiIsDQorCQkoaW50KSBjdHgtPnBvcywgKGludCkgY2FjaGVf
aW5vZGUtPmlfc2l6ZSkpOw0KKwliZWdpbl9vZmZzZXQgPSBjdHgtPnBvcyAm
fiAoTk5QRlNfRElSRU5UX0JMT0NLU0laRSAtIDEpOw0KKwlvZmZzZXQgPSBj
dHgtPnBvcyAmIChOTlBGU19ESVJFTlRfQkxPQ0tTSVpFIC0gMSk7DQorCWN0
eC0+cG9zID0gYmVnaW5fb2Zmc2V0Ow0KKwlOTlBGU0RFQihYREVCUkVBRERJ
UiwgKCJubnBmc19yZWFkZGlyIGJlZ2luX29mZnNldDogJWQgb2Zmc2V0OiAl
ZFxuIiwNCisJCQkgICAgIChpbnQpYmVnaW5fb2Zmc2V0LCAoaW50KW9mZnNl
dCkpOw0KKwltYXBwaW5nID0gYmFja2ZpbGUtPmZfbWFwcGluZzsNCisJaW5w
YWdlID0gY3R4LT5wb3MgJiAoUEFHRV9DQUNIRV9TSVpFLTEpOw0KKwlwYWdl
X251bSA9IGN0eC0+cG9zID4+IFBBR0VfQ0FDSEVfU0hJRlQ7DQorI2VuZGlm
DQogDQogCU5OUEZTREVCKFhERUJSRUFERElSLA0KIAkgICAgICAgKCJubnBm
c19yZWFkZGlyIGlucGFnZTogJWQgcGFnZV9udW06ICVsdVxuIiwNCkBAIC0x
MzI4LDYgKzE0NjUsNyBAQCBubnBmc19yZWFkZGlyKHN0cnVjdCBmaWxlICog
ZmlsZSwgdm9pZCAqDQogCQkgICAgKGludCkgeGRpcmVudC0+ZF9uYW1sZW4s
DQogCQkgICAgKGludCkgKG9mZnNldCtiZWdpbl9vZmZzZXQpKSk7DQogDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEs
MCkNCiAJICAgIGlmICh4ZGlyZW50LT5kX2ZpbGVubyAhPSAwDQogCQkmJiAo
ZmlsbGRpcl9lcnJvciA9IGZpbGxkaXIgKGRpcmVudCwNCiAJCQkJICAgICB4
ZGlyZW50LT5kX25hbWUsDQpAQCAtMTMzOSwxMiArMTQ3NywyOCBAQCBubnBm
c19yZWFkZGlyKHN0cnVjdCBmaWxlICogZmlsZSwgdm9pZCAqDQogCQkJICgi
bm5wZnNfcmVhZGRpciBmaWxsZGlyOiAlZFxuIiwgZmlsbGRpcl9lcnJvcikp
Ow0KIAkJYnJlYWs7DQogCSAgICB9DQorI2Vsc2UNCisJICAgIGlmICh4ZGly
ZW50LT5kX2ZpbGVubyAhPSAwDQorCQkmJiAoZmlsbGRpcl9lcnJvciA9IGRp
cl9lbWl0IChjdHgsDQorCQkJCSAgICAgeGRpcmVudC0+ZF9uYW1lLA0KKwkJ
CQkgICAgIHhkaXJlbnQtPmRfbmFtbGVuLA0KKwkJCQkgICAgIHhkaXJlbnQt
PmRfZmlsZW5vLA0KKwkJCQkgICAgIERUX1VOS05PV04pKSA8IDApIHsNCisJ
CU5OUEZTREVCKFhERUJSRUFERElSLA0KKwkJCSAoIm5ucGZzX3JlYWRkaXIg
ZmlsbGRpcjogJWRcbiIsIGZpbGxkaXJfZXJyb3IpKTsNCisJCWJyZWFrOw0K
KwkgICAgfQ0KKyNlbmRpZg0KIAkgICAgb2Zmc2V0ICs9IHhkaXJlbnQtPmRf
cmVjbGVuOw0KIA0KIAkgICAgaWYgKHhkaXJlbnQtPmRfcmVjbGVuID09IDAp
IHsNCiAJCXByaW50ayhLRVJOX0VNRVJHICJOTlBGUyBQYW5pYzogIg0KIAkJ
ICAgICAgICJlbXB0eSBkaXJlbnQgYXQgJWxsZCBpbiBubnBmc19yZWFkZGly
LCBwb3MgJWQgc2l6ZSAlZFxuIiwNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxMSwwKQ0KIAkJICAgICAgIChsb25nIGxv
bmcpb2Zmc2V0LCAoaW50KWZpbGUtPmZfcG9zLA0KKyNlbHNlDQorCQkgICAg
ICAgKGxvbmcgbG9uZylvZmZzZXQsIChpbnQpY3R4LT5wb3MsDQorI2VuZGlm
DQogCQkgICAgICAgKGludCljYWNoZV9pbm9kZS0+aV9zaXplKTsNCiAJCU5O
UEZTREVCKFhERUJWTk9QUywgKCJpbm9kZTogJXAgYWxpYXNlczoiLCBpbm9k
ZSkpOw0KIAkJbm5wZnNfcHJpbnRfYWxpYXNlcyhpbm9kZSk7DQpAQCAtMTM2
Miw3ICsxNTE2LDExIEBAIG5ucGZzX3JlYWRkaXIoc3RydWN0IGZpbGUgKiBm
aWxlLCB2b2lkICoNCiAJaWYgKG9mZnNldCA+IE5OUEZTX0RJUkVOVF9CTE9D
S1NJWkUpDQogCSAgICBvZmZzZXQgPSBOTlBGU19ESVJFTlRfQkxPQ0tTSVpF
Ow0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDExLDApDQogCWZpbGUtPmZfcG9zID0gYmVnaW5fb2Zmc2V0ICsgb2Zm
c2V0Ow0KKyNlbHNlDQorCWN0eC0+cG9zID0gYmVnaW5fb2Zmc2V0ICsgb2Zm
c2V0Ow0KKyNlbmRpZg0KIA0KIAlpZiAoZXJyb3IgfHwgb2Zmc2V0IDwgTk5Q
RlNfRElSRU5UX0JMT0NLU0laRSkNCiAJICAgIGJyZWFrOw0KQEAgLTEzOTUs
OSArMTU1MywxNSBAQCBubnBmc19yZWFkbGluayAoc3RydWN0IGRlbnRyeSAq
ZGVudHJ5LCBjDQogICogV2UgZG9uJ3QgaG9sZCBpX211dGV4Lg0KICAqLw0K
IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0
LDIsMCkNCiBzdGF0aWMgdm9pZCAqDQogbm5wZnNfZm9sbG93X2xpbmsgKHN0
cnVjdCBkZW50cnkgKmRlbnRyeSwNCiAJCSBzdHJ1Y3QgbmFtZWlkYXRhICpu
ZCkNCisjZWxzZQ0KK3N0YXRpYyBjb25zdCBjaGFyICoNCitubnBmc19mb2xs
b3dfbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KKwkJIHZvaWQgKipw
YWdlKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCiAgICAg
c3RydWN0IGlub2RlICppbm9kZSA9IERFTlRSWV9UT19JTk9ERShkZW50cnkp
Ow0KQEAgLTE0MDgsNyArMTU3MiwxMSBAQCBubnBmc19mb2xsb3dfbGluayAo
c3RydWN0IGRlbnRyeSAqZGVudHJ5DQogICAgIGlmIChlcnJvcikNCiAgICAg
ICAgcmV0dXJuIEVSUl9QVFIoZXJyb3IpOw0KIA0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDIsMCkNCiAgICAgcmV0dXJu
IHBhZ2VfZm9sbG93X2xpbmtfbGlnaHQoZGVudHJ5LCBuZCk7DQorI2Vsc2UN
CisgICAgcmV0dXJuIHBhZ2VfZm9sbG93X2xpbmtfbGlnaHQoZGVudHJ5LCBw
YWdlKTsNCisjZW5kaWYNCiB9DQogDQogLyoNCkBAIC0xNDkwLDYgKzE2NTgs
OCBAQCBubnBmc19yZWxlYXNlX2ZpbGUgKHN0cnVjdCBpbm9kZSAqaW5vZGUs
DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCiAgICAgaW50IGVycm9y
ID0gMDsNCiANCisgICAgKHZvaWQpbm5wZnNwOw0KKw0KICAgICBOTlBGU0RF
QihYREVCVk5PUFMsICgibm5wZnNfcmVsZWFzZV9maWxlXG4iKSk7DQogDQog
ICAgIGVycm9yID0gbm5wZnNfaW5vZGVfdmFsaWQoaW5vZGUpOw0KQEAgLTE1
MjMsOCArMTY5MywxMyBAQCBubnBmc19mbHVzaChzdHJ1Y3QgZmlsZSAqZmls
ZSwgZmxfb3duZXJfDQogew0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgi
bm5wZnNfZmx1c2hcbiIpKTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBpZiAoZmlsZSAmJiBm
aWxlLT5mX2RlbnRyeSAmJiBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZSkNCiAJ
cmV0dXJuIG5ucGZzX3JlbGVhc2VfZmlsZShmaWxlLT5mX2RlbnRyeS0+ZF9p
bm9kZSwgZmlsZSk7DQorI2Vsc2UNCisgICAgaWYgKGZpbGUgJiYgZmlsZS0+
Zl9wYXRoLmRlbnRyeSAmJiBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2Rl
KQ0KKwlyZXR1cm4gbm5wZnNfcmVsZWFzZV9maWxlKGZpbGUtPmZfcGF0aC5k
ZW50cnktPmRfaW5vZGUsIGZpbGUpOw0KKyNlbmRpZg0KICAgICBlbHNlDQog
CXJldHVybiAwOw0KIH0NCkBAIC0xNTMzLDEwICsxNzA4LDI0IEBAIG5ucGZz
X2ZsdXNoKHN0cnVjdCBmaWxlICpmaWxlLCBmbF9vd25lcl8NCiAgKiBSZXR1
cm4gMSBpZiBgZGVudHJ5JyBpcyBzdGlsbCB2YWxpZCwgb3RoZXJ3aXNlIDAu
DQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsNiwwKQ0KK3N0YXRpYyBpbnQNCitubnBmc19kX3JldmFsaWRh
dGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRhICpu
ZCkNCisjZWxzZQ0KIHN0YXRpYyBpbnQNCi1ubnBmc19kX3JldmFsaWRhdGUo
c3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkg
DQorbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwg
dW5zaWduZWQgaW50IGZsYWdzKQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0
IGlub2RlICppbm9kZSA9IERFTlRSWV9UT19JTk9ERShkZW50cnkpOw0KKw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMyw2
LDApDQorICAgIGlmIChmbGFncyAmIExPT0tVUF9SQ1UpDQorICAgICAgICBy
ZXR1cm4gLUVDSElMRDsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0g
S0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KKyAgICBpZiAobmQgJiYgbmQtPmZs
YWdzICYgTE9PS1VQX1JDVSkNCisgICAgICAgIHJldHVybiAtRUNISUxEOw0K
KyNlbmRpZg0KKw0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNf
ZF9yZXZhbGlkYXRlICVwIFwiJS4qc1wiIChpbm9kZSAlcClcbiIsDQogCQkg
ICAgICAgZGVudHJ5LA0KIAkJICAgICAgIChpbnQpZGVudHJ5LT5kX25hbWUu
bGVuLA0KQEAgLTE1ODIsOSArMTc3MSwxNSBAQCBubnBmc19kX3JldmFsaWRh
dGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5DQogICAgIHJldHVybiAwOw0KIH0N
CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Miw2LDM4KQ0KIHN0YXRpYw0KIGludA0KIG5ucGZzX2RfZGVsZXRlKHN0cnVj
dCBkZW50cnkgKmRlbnRyeSkNCisjZWxzZQ0KK3N0YXRpYw0KK2ludA0KK25u
cGZzX2RfZGVsZXRlKGNvbnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkNCisj
ZW5kaWYNCiB7DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGU7DQogICAgIHN0
cnVjdCBubnBmc19ub2RlICp4bjsNCkBAIC0xNjE0LDcgKzE4MDksMTEgQEAg
bm5wZnNfc3BsaWNlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGxvZg0KIAkJ
ICB1bnNpZ25lZCBpbnQgZmxhZ3MpDQogew0KICAgICBpbnQgZXJyb3IgPSAw
Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDE5LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2Rl
bnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlu
b2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYN
CiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUo
aW5vZGUpOw0KICAgICANCiAgICAgaWYgKHhuICE9IE5VTEwpDQpAQCAtMTcw
Nyw2ICsxOTA2LDggQEAgbm5wZnNfd3JpdGVfYmFja3BhZ2Uoc3RydWN0IHBh
Z2UgKnBhZ2UsIA0KIA0KIAlpbnQgZXJyb3I7DQogCQ0KKwkodm9pZClvZmZz
ZXQ7DQorDQogCWRvIHsNCiAJCWVycm9yID0gcGFnZWNhY2hlX3dyaXRlX2Jl
Z2luKGJhY2tmaWxlLCBtYXBwaW5nLCAwLCBsZW4sDQogCQkJCQkgICAgICBB
T1BfRkxBR19VTklOVEVSUlVQVElCTEUsDQpAQCAtMTczMCw3ICsxOTMxLDEx
IEBAIG5ucGZzX3dyaXRlX2JhY2twYWdlKHN0cnVjdCBwYWdlICpwYWdlLCAN
CiAJCXByaW50aygibm5wZnNfd3JpdGVfYmFja3BhZ2U6IEVJT1xuIik7DQog
I2lmZGVmIE5OUEZTX1NBRkVfU1lOQw0KIAllbHNlDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzMikNCiAJCSh2b2lk
KXN5bmNfcGFnZV9yYW5nZShtYXBwaW5nLT5ob3N0LCBtYXBwaW5nLCBvZmZz
ZXQsIGxlbik7DQorI2Vsc2UNCisJCSh2b2lkKWZpbGVtYXBfd3JpdGVfYW5k
X3dhaXRfcmFuZ2UobWFwcGluZywgb2Zmc2V0LCBvZmZzZXQgKyBsZW4gLSAx
KTsNCisjZW5kaWYNCiAjZW5kaWYNCiAJDQogCXJldHVybiBlcnJvcjsNCkBA
IC0xNzQ3LDYgKzE5NTIsOCBAQCBubnBmc19yZWFkX2JhY2twYWdlKHN0cnVj
dCBwYWdlICpwYWdlLCBzDQogCXN0cnVjdCBwYWdlICpiYWNrcGFnZTsNCiAJ
dW5zaWduZWQgbG9uZyBvZmZzZXQ7DQogDQorCSh2b2lkKW9mZnNldDsNCisN
CiAJYmFja3BhZ2UgPSByZWFkX21hcHBpbmdfcGFnZShtYXBwaW5nLCBuLCBi
YWNrZmlsZSk7DQogCWlmICghSVNfRVJSKGJhY2twYWdlKSkgew0KIAkJd2Fp
dF9vbl9wYWdlX2xvY2tlZChiYWNrcGFnZSk7DQpAQCAtMTg5NCwxMSArMjEw
MSwxNyBAQCBubnBmc19wcmVwYXJlX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxl
LCBzDQogDQogCWlmIChtb2RzaXplID4gaV9zaXplX3JlYWQoaW5vZGUpKSB7
DQogCQlpbnQgZXJyb3I7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsOCwwKQ0KIAkJZXJyb3IgPSB2bXRydW5jYXRlKGlu
b2RlLCBtb2RzaXplKTsNCisjZWxzZQ0KKwkJZXJyb3IgPSBpbm9kZV9uZXdz
aXplX29rKGlub2RlLCBtb2RzaXplKTsNCisJCWlmKCFlcnJvcikNCisJCQl0
cnVuY2F0ZV9zZXRzaXplKGlub2RlLCBtb2RzaXplKTsNCisjZW5kaWYNCiAJ
CWlmIChlcnJvcikgew0KIAkJCXByaW50aygibm5wZnNfcHJlcGFyZV93cml0
ZTogdHJ1bmNhdGUoJWxsdSkgLT4gJWRcbiIsDQogCQkJICAgICAgIG1vZHNp
emUsIC1lcnJvcik7DQotCQkJQlVHKCk7IC8qIFhYWCBub3QgY29ycmVjdCAq
Lw0KKwkJCS8qQlVHKCk7Ki8gLyogWFhYIG5vdCBjb3JyZWN0ICovDQogCQl9
DQogCX0NCiANCkBAIC0xOTI1LDcgKzIxMzgsNiBAQCBubnBmc19wcmVwYXJl
X3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBzDQogfQ0KIA0KICNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KLQ0K
IHN0YXRpYyBpbnQNCiBubnBmc193cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAq
ZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBw
b3MsDQogdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBmbGFncywgc3RydWN0IHBh
Z2UgKipwYWdlcCwgdm9pZCAqKmZzZGF0YSkNCkBAIC0xOTMzLDU4ICsyMTQ1
LDY3IEBAIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgZmxhZ3MsIHN0cnVjdCBw
YWcNCiAJc3RydWN0IHBhZ2UgKnBhZ2U7DQogCXBnb2ZmX3QgaW5kZXg7DQog
CXVuc2lnbmVkIGZyb207DQorCWludCByZXQgPSAwOw0KIA0KIAlpbmRleCA9
IHBvcyA+PiBQQUdFX0NBQ0hFX1NISUZUOw0KIAlmcm9tID0gcG9zICYgKFBB
R0VfQ0FDSEVfU0laRSAtIDEpOw0KIA0KLSNpZmRlZiBBT1BfRkxBR19OT0ZT
DQogCXBhZ2UgPSBncmFiX2NhY2hlX3BhZ2Vfd3JpdGVfYmVnaW4obWFwcGlu
ZywgaW5kZXgsIGZsYWdzKTsNCi0jZWxzZQ0KLQlwYWdlID0gX19ncmFiX2Nh
Y2hlX3BhZ2UobWFwcGluZywgaW5kZXgpOw0KLSNlbmRpZg0KLQlpZiAocGFn
ZSA9PSBOVUxMKQ0KKwlpZiAoIXBhZ2UpDQogCQlyZXR1cm4gLUVOT01FTTsN
CiANCiAJKnBhZ2VwID0gcGFnZTsNCiANCi0JcmV0dXJuIG5ucGZzX3ByZXBh
cmVfd3JpdGUoZmlsZSwgcGFnZSwgZnJvbSwgZnJvbSArIGxlbik7DQotfQ0K
KwlyZXQgPSBubnBmc19wcmVwYXJlX3dyaXRlKGZpbGUsIHBhZ2UsIGZyb20s
IGZyb20gKyBsZW4pOw0KKwlpZiAocmV0KSB7DQorCQl1bmxvY2tfcGFnZShw
YWdlKTsNCisJCXBhZ2VfY2FjaGVfcmVsZWFzZShwYWdlKTsNCisJfQ0KIA0K
KwlyZXR1cm4gcmV0Ow0KK30NCiAjZW5kaWYNCiANCisvKiBYWFggd2UgdXNl
IHRoZSBzeXN0ZW0gcHJvdmlkZWQgc2ltcGxlX2NvbW1pdF93cml0ZSBpbnN0
ZWFkIHNvIHRoaXMgZnVuY3Rpb24gaXMgdW51c2VkIGZvciBub3cgKi8NCisj
aWYgMA0KIHN0YXRpYyBpbnQNCiBubnBmc19jb21taXRfd3JpdGUoc3RydWN0
IGZpbGUgKmZpbGUsIHN0cnVjdCBwYWdlICpwYWdlLA0KIAkJICAgdW5zaWdu
ZWQgZnJvbSwgdW5zaWduZWQgdG8pDQogew0KLSAgICBzdHJ1Y3QgaW5vZGUg
Kmlub2RlID0gcGFnZS0+bWFwcGluZy0+aG9zdDsNCi0gICAgbG9mZl90IHBv
cyA9ICgobG9mZl90KXBhZ2UtPmluZGV4IDw8IFBBR0VfQ0FDSEVfU0hJRlQp
ICsgdG87DQorCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBwaW5n
LT5ob3N0Ow0KKwlsb2ZmX3QgcG9zID0gKChsb2ZmX3QpcGFnZS0+aW5kZXgg
PDwgUEFHRV9DQUNIRV9TSElGVCkgKyB0bzsNCiANCi0gICAgaWYgKHBvcyA+
IGlub2RlLT5pX3NpemUpIHsNCi0JaV9zaXplX3dyaXRlKGlub2RlLCBwb3Mp
Ow0KKwlpZiAoIVBhZ2VVcHRvZGF0ZShwYWdlKSkNCisJCVNldFBhZ2VVcHRv
ZGF0ZShwYWdlKTsNCiANCi0Jc3Bpbl9sb2NrKCZpbm9kZS0+aV9sb2NrKTsN
Ci0JaW5vZGUtPmlfYmxvY2tzID0gKHBvcyArIElfQkxPQ0tTX1VOSVQgLSAx
KSA+PiBJX0JMT0NLU19CSVRTOw0KLQlzcGluX3VubG9jaygmaW5vZGUtPmlf
bG9jayk7DQotICAgIH0NCi0gICAgc2V0X3BhZ2VfZGlydHkocGFnZSk7DQor
CWlmIChwb3MgPiBpbm9kZS0+aV9zaXplKSB7DQorCQlpX3NpemVfd3JpdGUo
aW5vZGUsIHBvcyk7DQorDQorCQlzcGluX2xvY2soJmlub2RlLT5pX2xvY2sp
Ow0KKwkJaW5vZGUtPmlfYmxvY2tzID0gKHBvcyArIElfQkxPQ0tTX1VOSVQg
LSAxKSA+PiBJX0JMT0NLU19CSVRTOw0KKwkJc3Bpbl91bmxvY2soJmlub2Rl
LT5pX2xvY2spOw0KKwl9DQorCXNldF9wYWdlX2RpcnR5KHBhZ2UpOw0KIA0K
ICNpZiAwDQotICAgIHsNCi0JY2hhciAqYWRkcjsNCi0Ja21hcChwYWdlKTsN
Ci0JYWRkciA9IHBhZ2VfYWRkcmVzcyhwYWdlKTsNCi0JTk5QRlNERUIoWERF
QlZOT1BTLCAoIm5ucGZzX2NvbW1pdF93cml0ZSglcCk6ICV4JXgleCV4XG4i
LA0KKwl7DQorCSAgICBjaGFyICphZGRyOw0KKwkgICAga21hcChwYWdlKTsN
CisJICAgIGFkZHIgPSBwYWdlX2FkZHJlc3MocGFnZSk7DQorCSAgICBOTlBG
U0RFQihYREVCVk5PUFMsICgibm5wZnNfY29tbWl0X3dyaXRlKCVwKTogJXgl
eCV4JXhcbiIsDQogCQkJICAgICBmaWxlLT5mX21hcHBpbmctPmhvc3QsIA0K
IAkJCSAgICAgYWRkclswXSwgYWRkclsxXSwgYWRkclsyXSwgYWRkclszXSkp
Ow0KLQlrdW5tYXAocGFnZSk7DQotICAgIH0NCisJICAgIGt1bm1hcChwYWdl
KTsNCisJfQ0KICNlbmRpZg0KLSAgICANCi0gICAgcmV0dXJuIDA7DQorIA0K
KwlyZXR1cm4gMDsNCiB9DQorI2VuZGlmDQogDQogI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQotDQorLyogWFhY
IHdlIHVzZSB0aGUgc3lzdGVtIHByb3ZpZGVkIHNpbXBsZV93cml0ZV9lbmQg
aW5zdGVhZCBzbyB0aGlzIGZ1bmN0aW9uIGlzIHVudXNlZCBmb3Igbm93ICov
DQorI2lmIDANCiBzdGF0aWMgaW50DQogbm5wZnNfd3JpdGVfZW5kKHN0cnVj
dCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywg
bG9mZl90IHBvcywNCiAJCXVuc2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVk
LCBzdHJ1Y3QgcGFnZSAqcGFnZSwgdm9pZCAqZnNkYXRhKQ0KQEAgLTE5OTMs
MTAgKzIyMTQsMTggQEAgbm5wZnNfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpm
aWxlLCBzdHJ1Yw0KIA0KIAkvKiB6ZXJvIHRoZSBzdGFsZSBwYXJ0IG9mIHRo
ZSBwYWdlIGlmIHdlIGRpZCBhIHNob3J0IGNvcHkgKi8NCiAJaWYgKGNvcGll
ZCA8IGxlbikgew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDYsMCkNCiAJCXZvaWQgKmthZGRyID0ga21hcF9hdG9taWMo
cGFnZSwgS01fVVNFUjApOw0KKyNlbHNlDQorCQl2b2lkICprYWRkciA9IGtt
YXBfYXRvbWljKHBhZ2UpOw0KKyNlbmRpZg0KIAkJbWVtc2V0KGthZGRyICsg
ZnJvbSArIGNvcGllZCwgMCwgbGVuIC0gY29waWVkKTsNCiAJCWZsdXNoX2Rj
YWNoZV9wYWdlKHBhZ2UpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDYsMCkNCiAJCWt1bm1hcF9hdG9taWMoa2FkZHIs
IEtNX1VTRVIwKTsNCisjZWxzZQ0KKwkJa3VubWFwX2F0b21pYyhrYWRkcik7
DQorI2VuZGlmDQogCX0NCiANCiAJbm5wZnNfY29tbWl0X3dyaXRlKGZpbGUs
IHBhZ2UsIGZyb20sIGZyb20gKyBjb3BpZWQpOw0KQEAgLTIwMDYsNyArMjIz
NSw3IEBAIG5ucGZzX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3Ry
dWMNCiANCiAJcmV0dXJuIGNvcGllZDsNCiB9DQotDQorI2VuZGlmDQogI2Vu
ZGlmDQogDQogY29uc3QNCkBAIC0yMDE1LDEwICsyMjQ0LDEwIEBAIHN0cnVj
dCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgbm5wZnNfYW8NCiAJLndyaXRl
cGFnZSA9IG5ucGZzX3dyaXRlcGFnZSwNCiAjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAkucHJlcGFyZV93cml0
ZSA9IG5ucGZzX3ByZXBhcmVfd3JpdGUsDQotCS5jb21taXRfd3JpdGUgPSBu
bnBmc19jb21taXRfd3JpdGUsDQorCS5jb21taXRfd3JpdGUgPSBzaW1wbGVf
Y29tbWl0X3dyaXRlLA0KICNlbHNlDQogCS53cml0ZV9iZWdpbiA9IG5ucGZz
X3dyaXRlX2JlZ2luLA0KLQkud3JpdGVfZW5kID0gbm5wZnNfd3JpdGVfZW5k
LA0KKwkud3JpdGVfZW5kID0gc2ltcGxlX3dyaXRlX2VuZCwNCiAjZW5kaWYN
CiB9Ow0KIA0KQEAgLTIwMjcsOCArMjI1NiwxMyBAQCBzdHJ1Y3QgYWRkcmVz
c19zcGFjZV9vcGVyYXRpb25zIG5ucGZzX2FvDQogICovDQogDQogc3RydWN0
IGZpbGVfb3BlcmF0aW9ucyBubnBmc19maWxlX29wZXJhdGlvbnMgPSB7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYs
MCkNCiAgICAgLmFpb19yZWFkCT0gbm5wZnNfYWlvX3JlYWQsDQogICAgIC5h
aW9fd3JpdGUJPSBubnBmc19haW9fd3JpdGUsDQorI2Vsc2UNCisgICAgLnJl
YWRfaXRlcgk9IG5ucGZzX3JlYWRfaXRlciwNCisgICAgLndyaXRlX2l0ZXIJ
PSBubnBmc193cml0ZV9pdGVyLA0KKyNlbmRpZg0KICAgICAubW1hcAk9IG5u
cGZzX2ZpbGVfbW1hcCwNCiAgICAgLm9wZW4JPSBubnBmc19vcGVuLA0KICAg
ICAuZmx1c2gJPSBubnBmc19mbHVzaCwNCkBAIC0yMDQxLDcgKzIyNzUsMTEg
QEAgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19kZWFkX29wZXJhdA0K
IH07DQogDQogc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19kaXJfb3Bl
cmF0aW9ucyA9IHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxMSwwKQ0KICAgICAucmVhZGRpcgk9IG5ucGZzX3JlYWRk
aXIsDQorI2Vsc2UNCisgICAgLml0ZXJhdGUgICAgPSBubnBmc19pdGVyYXRl
LA0KKyNlbmRpZg0KICAgICAuZmx1c2gJPSBubnBmc19mbHVzaCwNCiB9Ow0K
IA0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLWN2cy1vbGQvbm5wZnMvbGlu
dXgvbm5wZnNfbG9hZC5jIGFybGEvbm5wZnMvbGludXgvbm5wZnNfbG9hZC5j
DQotLS0gYXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYwky
MDA2LTEwLTMxIDExOjAyOjQxLjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEv
bm5wZnMvbGludXgvbm5wZnNfbG9hZC5jCTIwMTYtMDEtMTMgMjA6MTQ6MDIu
MDAwMDAwMDAwICswMTAwDQpAQCAtNTQsNyArNTQsMTEgQEAgZXh0ZXJuIHN0
cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZm9wcw0KIA0KIHN0cnVjdCBm
aWxlX3N5c3RlbV90eXBlIG5ucGZzX2ZzX3R5cGUgPSB7DQogICAgICAgIG5h
bWU6ICAgICAgICAgICAibm5wZnMiLA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogICAgICAgIGdldF9zYjog
ICAgICAgICBubnBmc19nZXRfc2IsDQorI2Vsc2UNCisgICAgICAgbW91bnQ6
ICAgICAgICAgIG5ucGZzX21vdW50LA0KKyNlbmRpZg0KICAgICAgICBraWxs
X3NiOiAgICAgICAga2lsbF9saXR0ZXJfc3VwZXIsDQogICAgICAgIG93bmVy
OiAgICAgICAgICBUSElTX01PRFVMRSwNCiB9Ow0KZGlmZiAtdXByTiAtWG5v
ZGlmZiBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnNfbWVzc2FnZS5j
IGFybGEvbm5wZnMvbGludXgvbm5wZnNfbWVzc2FnZS5jDQotLS0gYXJsYS1j
dnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYwkyMDEwLTA4LTA4
IDIyOjQzOjA1LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEvbm5wZnMvbGlu
dXgvbm5wZnNfbWVzc2FnZS5jCTIwMTYtMDEtMjQgMTg6NTI6MjguMDAwMDAw
MDAwICswMTAwDQpAQCAtNTUsOSArNTUsMTUgQEAgc3RhdGljIHZvaWQNCiBu
bnBmc19kX3JlbW92ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQogew0KICAg
ICBOTlBGU0RFQihYREVCTVNHLCAoIm5ucGZzX2RfcmVtb3ZlICVwXG4iLCBk
ZW50cnkpKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMiw2LDM4KQ0KICAgICBzcGluX2xvY2soJmRjYWNoZV9sb2NrKTsN
CiAgICAgZGdldF9sb2NrZWQoZGVudHJ5KTsNCiAgICAgc3Bpbl91bmxvY2so
JmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAgICBzcGluX2xvY2soJmRlbnRy
eS0+ZF9sb2NrKTsNCisgICAgZGdldF9kbG9jayhkZW50cnkpOw0KKyAgICBz
cGluX3VubG9jaygmZGVudHJ5LT5kX2xvY2spOw0KKyNlbmRpZg0KICAgICBk
X2Ryb3AoZGVudHJ5KTsNCiAgICAgZHB1dChkZW50cnkpOw0KIH0NCkBAIC0x
MjEsNyArMTI3LDExIEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGUoc3Ry
dWN0IG5ucGZzICoNCiAgICAgc3RydWN0IGlub2RlICpkaSwgKmlub2RlOw0K
ICAgICBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQgPSBOVUxMOw0KICAgICBzdHJ1
Y3QgcXN0ciBzcXN0cjsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHN0cnVjdCBsaXN0X2hlYWQgKmFs
aWFzOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsOSwwKQ0KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqYWxpYXM7DQor
I2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCTVNHLCAoIm5ucGZz
X21lc3NhZ2VfaW5zdGFsbG5vZGVcbiIpKTsNCiAgICAgDQpAQCAtMTc2LDEy
ICsxODYsMjYgQEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZShzdHJ1Y3Qg
bm5wZnMgKg0KICAgICAgKg0KICAgICAgKi8NCiAgICAgDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBh
bGlhcyA9IGRpLT5pX2RlbnRyeS5uZXh0Ow0KICAgICB3aGlsZSAoYWxpYXMg
IT0gJmRpLT5pX2RlbnRyeSkgew0KIAlwYXJlbnQgPSBsaXN0X2VudHJ5KGFs
aWFzLCBzdHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCi0Jc3Bpbl9sb2NrKCZk
Y2FjaGVfbG9jayk7DQotCWRnZXRfbG9ja2VkKHBhcmVudCk7DQotCXNwaW5f
dW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQorICAgIGhsaXN0X2Zvcl9l
YWNoX2VudHJ5KHBhcmVudCwgYWxpYXMsICZkaS0+aV9kZW50cnksIGRfYWxp
YXMpIHsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDE5LDApDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KHBhcmVu
dCwgJmRpLT5pX2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbHNlDQorICAgIGhs
aXN0X2Zvcl9lYWNoX2VudHJ5KHBhcmVudCwgJmRpLT5pX2RlbnRyeSwgZF91
LmRfYWxpYXMpIHsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KKyAgICBzcGluX2xvY2soJmRj
YWNoZV9sb2NrKTsNCisgICAgZGdldF9sb2NrZWQocGFyZW50KTsNCisgICAg
c3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAgICBzcGlu
X2xvY2soJnBhcmVudC0+ZF9sb2NrKTsNCisgICAgZGdldF9kbG9jayhwYXJl
bnQpOw0KKyAgICBzcGluX3VubG9jaygmcGFyZW50LT5kX2xvY2spOw0KKyNl
bmRpZg0KIAlkZW50cnkgPSBkX2xvb2t1cChwYXJlbnQsICZzcXN0cik7DQog
CU5OUEZTREVCKFhERUJNU0csDQogCQkgKCJubnBmc19tZXNzYWdlX2luc3Rh
bGxub2RlOiBhbGlhcyAlcCwgbG9va3VwICVwXG4iLA0KQEAgLTIzMyw3ICsy
NTcsOSBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxub2RlKHN0cnVjdCBubnBm
cyAqDQogCQ0KIAlkcHV0KGRlbnRyeSk7DQogCWRlbnRyeSA9IE5VTEw7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiww
KQ0KIAlhbGlhcyA9IGFsaWFzLT5uZXh0Ow0KKyNlbmRpZg0KIAlkcHV0KHBh
cmVudCk7DQogICAgIH0NCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBm
c19tZXNzYWdlX2luc3RhbGxub2RlOiBkb25lIGluc3RhbGxpbmdcbiIpKTsN
CkBAIC0yNjgsNyArMjk0LDEzIEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbGF0
dHIoc3RydWN0IG5ucGZzICoNCiAgICAgfQ0KIA0KICAgICBpbm9kZSA9IFhO
T0RFX1RPX1ZOT0RFKHQpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgZGVudHJ5ID0gbGlzdF9lbnRy
eShpbm9kZS0+aV9kZW50cnkubmV4dCwgc3RydWN0IGRlbnRyeSwgZF9hbGlh
cyk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMywxOSwwKQ0KKyAgICBkZW50cnkgPSBobGlzdF9lbnRyeShpbm9kZS0+
aV9kZW50cnkuZmlyc3QsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KKyNl
bHNlDQorICAgIGRlbnRyeSA9IGhsaXN0X2VudHJ5KGlub2RlLT5pX2RlbnRy
eS5maXJzdCwgc3RydWN0IGRlbnRyeSwgZF91LmRfYWxpYXMpOw0KKyNlbmRp
Zg0KICAgICANCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBmc19tZXNz
YWdlX2luc3RhbGxhdHRyIG5hbWU6JXNcbiIsDQogCQkgICAgICAgZGVudHJ5
LT5kX25hbWUubmFtZSkpOw0KQEAgLTM5NiwxNyArNDI4LDM1IEBAIG5ucGZz
X21lc3NhZ2VfaW5zdGFsbGRhdGEoc3RydWN0IG5ucGZzICoNCiBzdGF0aWMg
dm9pZA0KIGNsZWFyX2FsbF9jaGlsZHJlbiAoc3RydWN0IGlub2RlICppbm9k
ZSwgaW50IHBhcmVudCkNCiB7DQorICAgIHN0cnVjdCBkZW50cnkgKmRlbnRy
eTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Myw2LDApDQogICAgIHN0cnVjdCBsaXN0X2hlYWQgKmFsaWFzOw0KKyNlbGlm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0K
KyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqYWxpYXM7DQorI2VuZGlmDQogDQog
IGFnYWluOg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigyLDYsMzgpDQogICAgIHNwaW5fbG9jaygmZGNhY2hlX2xvY2spOw0K
KyNlbHNlDQorICAgIHNwaW5fbG9jaygmaW5vZGUtPmlfbG9jayk7DQorI2Vu
ZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsNiwwKQ0KICAgICBhbGlhcyA9IGlub2RlLT5pX2RlbnRyeS5uZXh0Ow0K
ICAgICB3aGlsZSAoYWxpYXMgIT0gJmlub2RlLT5pX2RlbnRyeSkgew0KLQlz
dHJ1Y3QgZGVudHJ5ICpkZW50cnk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQorICAgIGhsaXN0X2Zvcl9l
YWNoX2VudHJ5KGRlbnRyeSwgYWxpYXMsICZpbm9kZS0+aV9kZW50cnksIGRf
YWxpYXMpIHsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDE5LDApDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRl
bnRyeSwgJmlub2RlLT5pX2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbHNlDQor
ICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRlbnRyeSwgJmlub2RlLT5pX2Rl
bnRyeSwgZF91LmRfYWxpYXMpIHsNCisjZW5kaWYNCiAJc3RydWN0IGxpc3Rf
aGVhZCAqc3ViZGlyczsNCiAJc3RydWN0IG5ucGZzX2RlbnRyeV9kYXRhICp4
ZDsNCiAJDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsNiwwKQ0KIAlkZW50cnkgPSBsaXN0X2VudHJ5KGFsaWFzLCBzdHJ1
Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisjZW5kaWYNCiAJaWYgKGRlbnRyeSA9
PSBOVUxMKSB7DQogCSAgICBwcmludGsoS0VSTl9FTUVSRyAiTk5QRlMgUGFu
aWM6IGRlbnRyeSBpbiBhbGlhcyBsaXN0IGlzIG51bGxcbiIpOw0KIAkgICAg
YnJlYWs7DQpAQCAtNDIyLDcgKzQ3MiwxMSBAQCBjbGVhcl9hbGxfY2hpbGRy
ZW4gKHN0cnVjdCBpbm9kZSAqaW5vZGUsDQogCXN1YmRpcnMgPSBkZW50cnkt
PmRfc3ViZGlycy5uZXh0Ow0KIAl3aGlsZSAoc3ViZGlycyAhPSAmZGVudHJ5
LT5kX3N1YmRpcnMpIHsNCiAJICAgIHN0cnVjdCBsaXN0X2hlYWQgKnRtcCA9
IHN1YmRpcnM7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTksMCkNCiAJICAgIHN0cnVjdCBkZW50cnkgKmNoaWxkID0g
bGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRfdS5kX2NoaWxkKTsN
CisjZWxzZQ0KKwkgICAgc3RydWN0IGRlbnRyeSAqY2hpbGQgPSBsaXN0X2Vu
dHJ5KHRtcCwgc3RydWN0IGRlbnRyeSwgZF9jaGlsZCk7DQorI2VuZGlmDQog
CSAgICBzdWJkaXJzID0gdG1wLT5uZXh0Ow0KIAkgICAgTk5QRlNERUIoWERF
Qk1TRywgKCJjbGVhcl9hbGxfY2hpbGRyZW4gY2hpbGQ6ICUuKnMgaW5vZGU6
ICVwLyVwICINCiAJCQkgICAgICAgImRjb3VudDogJWQgYWxpYXNlczpcbiIs
DQpAQCAtNDQyLDE0ICs0OTYsMjQgQEAgY2xlYXJfYWxsX2NoaWxkcmVuIChz
dHJ1Y3QgaW5vZGUgKmlub2RlLA0KIA0KIAkgICAgLyogVGhyb3cgaW1tZWRp
YXRlbHkgKi8NCiAJICAgIGlmIChubnBmc19kY291bnQoY2hpbGQpID09IDAp
IHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Miw2LDM4KQ0KIAkgICAgICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7
DQorI2Vsc2UNCisJICAgICAgICBzcGluX3VubG9jaygmaW5vZGUtPmlfbG9j
ayk7DQorI2VuZGlmDQogCQlubnBmc19kX3JlbW92ZShjaGlsZCk7DQogCQln
b3RvIGFnYWluOw0KIAkgICAgfQ0KIAl9DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAlhbGlhcyA9IGFsaWFz
LT5uZXh0Ow0KKyNlbmRpZg0KICAgICB9DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAgICAgc3Bpbl91bmxv
Y2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAgICBzcGluX3VubG9jaygm
aW5vZGUtPmlfbG9jayk7DQorI2VuZGlmDQogfQ0KIA0KIHN0YXRpYyB2b2lk
DQpAQCAtNzE5LDEyICs3ODMsMjIgQEAgbm5wZnNfbWVzc2FnZV92ZXJzaW9u
KHN0cnVjdCBubnBmcyAqbm5wZg0KIA0KICAgICAvKiBzYW5pdHkgY2hlY2sg
YmVmb3JlIHdlIGxvb2sgYXQgaXQgKi8NCiAgICAgaWYgKHNpemUgPT0gc2l6
ZW9mKCptZXNzYWdlKSAmJiBtZXNzYWdlLT52ZXJzaW9uID09IE5OUEZTX1ZF
UlNJT04pIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxOSwwKQ0KIAlzdHJ1Y3QgbmFtZWlkYXRhIG5kOw0KKyNlbHNl
DQorCXN0cnVjdCBwYXRoIHBhdGg7DQorI2VuZGlmDQogCWludCBlcnJvcjsN
CiANCiAJdWludDY0X3QgYmxvY2tzaXplID0gbWVzc2FnZS0+YmxvY2tzaXpl
Ow0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigyLDYsMzkpDQogCWVycm9yID0gcGF0aF9sb29rdXAoIi4iLCAwLCAmbmQp
Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMTksMCkNCisJZXJyb3IgPSBrZXJuX3BhdGgoIi4iLCAwLCAmbmQucGF0
aCk7DQorI2Vsc2UNCisJZXJyb3IgPSBrZXJuX3BhdGgoIi4iLCAwLCAmcGF0
aCk7DQorI2VuZGlmDQogCWlmIChlcnJvcikgew0KIAkgICAgLyoNCiAJICAg
ICAqIEJhZCBjYWNoZSByb290LCBqdXN0IHJldHVybi4NCkBAIC03MzUsMTEg
KzgwOSwxNyBAQCBubnBmc19tZXNzYWdlX3ZlcnNpb24oc3RydWN0IG5ucGZz
ICpubnBmDQogCQkgICAibm5wZnNfbWVzc2FnZV92ZXJzaW9uIGZhaWxlZCBw
YXRoX2xvb2t1cCwgIg0KIAkJICAgImVycm5vOiAlZFxuIiwgZXJyb3IpOw0K
IAl9IGVsc2Ugew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDE5LDApDQogCSAgICBubnBmc3AtPmNhY2hlcm9vdCA9IG1u
dGdldChuZC5wYXRoLm1udCk7DQogCSAgICBubnBmc3AtPmNhY2hlZGlyID0g
ZGdldChuZC5wYXRoLmRlbnRyeSk7DQogCSAgICBwYXRoX3B1dCgmbmQucGF0
aCk7DQorI2Vsc2UNCisJICAgIG5ucGZzcC0+Y2FjaGVyb290ID0gbW50Z2V0
KHBhdGgubW50KTsNCisJICAgIG5ucGZzcC0+Y2FjaGVkaXIgPSBkZ2V0KHBh
dGguZGVudHJ5KTsNCisJICAgIHBhdGhfcHV0KCZwYXRoKTsNCisjZW5kaWYN
CiAJICAgIA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZF
UlNJT04oMiw2LDI4KQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigyLDYsMjkpDQogCSAgICBubnBmc3AtPnVpZCA9IGN1cnJl
bnQtPmZzdWlkOw0KIAkgICAgbm5wZnNwLT5naWQgPSBjdXJyZW50LT5mc2dp
ZDsNCiAjZWxzZQ0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLWN2cy1vbGQv
bm5wZnMvbGludXgvbm5wZnNfbm9kZS5jIGFybGEvbm5wZnMvbGludXgvbm5w
ZnNfbm9kZS5jDQotLS0gYXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZz
X25vZGUuYwkyMDA3LTAxLTAzIDE0OjUyOjAyLjAwMDAwMDAwMCArMDEwMA0K
KysrIGFybGEvbm5wZnMvbGludXgvbm5wZnNfbm9kZS5jCTIwMTYtMDEtMTQg
MTY6NTE6MTEuMDAwMDAwMDAwICswMTAwDQpAQCAtMTMyLDcgKzEzMiwxMiBA
QCBubnBmc19zZXRzaXplKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVpbnQ2DQog
CXByaW50aygibm5wZnNfc2V0c2l6ZTogdHJ1bmNhdGluZyBAMHglbGx1XG4i
LA0KIAkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZylzaXplKTsNCiAjZW5k
aWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Myw4LDApDQogCXZtdHJ1bmNhdGUoaW5vZGUsIHNpemUpOyAvKiBYWFggcmV0
dmFsICovDQorI2Vsc2UNCisJaWYoIWlub2RlX25ld3NpemVfb2soaW5vZGUs
IHNpemUpKQ0KKwkgICAgdHJ1bmNhdGVfc2V0c2l6ZShpbm9kZSwgc2l6ZSk7
DQorI2VuZGlmDQogCW5ucGZzX2Jsb2NrX3RydW5jYXRlKHhuLCBzaXplKTsN
CiAgICAgfQ0KIH0NCkBAIC0xNTAsOSArMTU1LDE4IEBAIG5ucGZzX2F0dHIy
aW5vZGUoY29uc3Qgc3RydWN0IG5ucGZzX2F0dHINCiAJc3RydWN0IHRpbWVz
cGVjIG5vdGltZSA9IHswfTsNCiANCiAJaW5vZGUtPmlfbW9kZSAgID0gMDsN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx
NCwwKQ0KIAlpbm9kZS0+aV91aWQgICAgPSAwOw0KIAlpbm9kZS0+aV9naWQg
ICAgPSAwOw0KKyNlbHNlDQorCWlub2RlLT5pX3VpZCAgICA9IEtVSURUX0lO
SVQoMCk7DQorCWlub2RlLT5pX2dpZCAgICA9IEtHSURUX0lOSVQoMCk7DQor
I2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsMiwwKQ0KIAlpbm9kZS0+aV9ubGluayAgPSAxOw0KKyNlbHNlDQor
CXNldF9ubGluayhpbm9kZSwgMSk7DQorI2VuZGlmDQogCWlub2RlLT5pX2F0
aW1lICA9IG5vdGltZTsNCiAJaW5vZGUtPmlfbXRpbWUgID0gbm90aW1lOw0K
IAlpbm9kZS0+aV9jdGltZSAgPSBub3RpbWU7DQpAQCAtMTY5LDcgKzE4Mywx
MSBAQCBubnBmc19hdHRyMmlub2RlKGNvbnN0IHN0cnVjdCBubnBmc19hdHRy
DQogICAgIGlmIChYQV9WQUxJRF9HSUQoYXR0cikpDQogCWlub2RlLT5pX2dp
ZCAgICA9IGF0dHItPnhhX2dpZDsNCiAgICAgaWYgKFhBX1ZBTElEX05MSU5L
KGF0dHIpKQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDIsMCkNCiAJaW5vZGUtPmlfbmxpbmsgID0gYXR0ci0+eGFfbmxp
bms7DQorI2Vsc2UNCisJc2V0X25saW5rKGlub2RlLCBhdHRyLT54YV9ubGlu
ayk7DQorI2VuZGlmDQogICAgIA0KICAgICBpZiAoWEFfVkFMSURfU0laRShh
dHRyKSkgew0KIAlubnBmc19zZXRzaXplKGlub2RlLCBhdHRyLT54YV9zaXpl
KTsNCkBAIC01MTAsMTIgKzUyOCwyNCBAQCBubnBmc19oYXNfcGFnKGNvbnN0
IHN0cnVjdCBubnBmc19ub2RlICp4DQogaW50DQogbm5wZnNfbm9kZV91c2Vy
cyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KIHsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHN0cnVjdCBs
aXN0X2hlYWQgKnBvczsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9k
ZSAqcG9zOw0KKyNlbmRpZg0KICAgICBpbnQgdXNlcnMgPSAwOw0KICAgICAN
CiAgICAgLyogWFhYIHRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIHByb3RlY3Rl
ZCBzb21laG93ICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsNiwwKQ0KICAgICBsaXN0X2Zvcl9lYWNoKHBvcywgJmlu
b2RlLT5pX2RlbnRyeSkgew0KKyNlbHNlDQorICAgIGhsaXN0X2Zvcl9lYWNo
KHBvcywgJmlub2RlLT5pX2RlbnRyeSkgew0KKyNlbmRpZg0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCXN0
cnVjdCBkZW50cnkgKmRlbnRyeSA9IGxpc3RfZW50cnkocG9zLCBzdHJ1Y3Qg
ZGVudHJ5LCBkX2FsaWFzKTsNCisjZWxzZQ0KKwlzdHJ1Y3QgZGVudHJ5ICpk
ZW50cnkgPSBsaXN0X2VudHJ5KHBvcywgc3RydWN0IGRlbnRyeSwgZF91LmRf
YWxpYXMpOw0KKyNlbmRpZg0KIAlpZiAobm5wZnNfZGNvdW50KGRlbnRyeSkg
PiAxKQ0KIAkgICAgdXNlcnMrKzsNCiAgICAgfQ0KZGlmZiAtdXByTiAtWG5v
ZGlmZiBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMu
YyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMNCi0tLSBhcmxh
LWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMuYwkyMDEwLTA4
LTA4IDIyOjQzOjA2LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEvbm5wZnMv
bGludXgvbm5wZnNfc3lzY2FsbHMuYwkyMDE2LTAyLTE2IDE2OjU4OjEwLjAw
MDAwMDAwMCArMDEwMA0KQEAgLTQyLDcgKzQyLDkgQEANCiAjaW5jbHVkZSA8
bm5wZnMvbm5wZnNfc3lzY2FsbHMuaD4NCiAjaW5jbHVkZSA8bm5wZnMvbm5w
ZnNfY29tbW9uLmg+DQogI2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4NCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0K
ICNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPg0KKyNlbmRpZg0KICNpbmNs
dWRlIDxsaW51eC9zbXAuaD4NCiAjaW5jbHVkZSA8bGludXgvcHJvY19mcy5o
Pg0KIA0KQEAgLTUwLDYgKzUyLDExIEBADQogI2luY2x1ZGUgPGxpbnV4L3Nl
Y3VyaXR5Lmg+DQogI2VuZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA+PSBLRVJORUxfVkVSU0lPTigzLDcsMCkNCisjdW5kZWYgU1lTQ0FMTEhB
Q0sNCisvKiB0aGUgbWV0aG9kIHRvIHJlYWQgJ2xvd2VyX2JvdW5kJyBkb2Vz
IG5vdCB3b3JrIG9uIGtlcm5lbCAzLjcgYW5kIGxhdGVyLCBzZSBubnBmc19z
eXNjYWxscy1sb3NzYWdlLmMgKi8NCisjZW5kaWYNCisNCiAjaWYgMA0KICNp
ZmRlZiBDT05GSUdfQ09NUEFUDQogI2luY2x1ZGUgPGxpbnV4L2lvY3RsMzIu
aD4NCkBAIC04MiwxMiArODksMjIgQEAgdHlwZWRlZiBzdHJ1Y3QgYWZzcHJv
Y2RhdGEgew0KICAgICB1bnNpZ25lZCBsb25nIHN5c2NhbGw7DQogfSBhZnNw
cm9jZGF0YTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMiw2LDM2KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19wcm9jZnNf
aW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUs
DQogCQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7
DQorI2Vsc2UNCitzdGF0aWMgbG9uZw0KK25ucGZzX3Byb2Nmc19pb2N0bChz
dHJ1Y3QgZmlsZSAqZmlsZSwNCisJCSAgIHVuc2lnbmVkIGludCBjbWQsIHVu
c2lnbmVkIGxvbmcgYXJnKTsNCisjZW5kaWYNCiANCiBzdGF0aWMgc3RydWN0
IGZpbGVfb3BlcmF0aW9ucyBubnBmc19wcm9jZnNfZm9wcyA9IHsNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KQ0K
ICAgICAuaW9jdGwgPSBubnBmc19wcm9jZnNfaW9jdGwsDQorI2Vsc2UNCisg
ICAgLnVubG9ja2VkX2lvY3RsID0gbm5wZnNfcHJvY2ZzX2lvY3RsLA0KKyNl
bmRpZg0KIH07DQogDQogDQpAQCAtMTYwLDggKzE3NywxMCBAQCBubnBmc19n
ZXRfcGFnX3NlYyh2b2lkKQ0KIA0KICNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICByZXR1cm4gY3VycmVu
dC0+dWlkOw0KLSNlbHNlDQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KICAgICByZXR1cm4gY3VycmVudF91
aWQoKTsNCisjZWxzZQ0KKyAgICB7IGt1aWRfdCBrdWlkID0gY3VycmVudF91
aWQoKTsgcmV0dXJuIGt1aWQudmFsOyB9DQogI2VuZGlmDQogfQ0KIA0KQEAg
LTE5OSw3ICsyMTgsMTIgQEAgZmluZF9wYWcoc3RydWN0IGdyb3VwX2luZm8g
KmdpKQ0KICAgICBOTlBGU0RFQihYREVCU1lTLCAoImZpbmRfcGFnOiBuZ3Jv
dXBzID0gJWRcbiIsIGdpLT5uZ3JvdXBzKSk7DQogDQogICAgIGZvciAoaSA9
IGdpLT5uZ3JvdXBzIC0gMTsgaSA+PSAwOyBpLS0pIHsNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KIAlnaWRf
dCBncm91cCA9IEdST1VQX0FUKGdpLCBpKTsNCisjZWxzZQ0KKwlrZ2lkX3Qg
a2dyb3VwID0gR1JPVVBfQVQoZ2ksIGkpOw0KKwlnaWRfdCBncm91cCA9IGtn
cm91cC52YWw7DQorI2VuZGlmDQogCWlmICgobm5wZnNfcGFnX3QpZ3JvdXAg
Pj0gTk5QRlNfUEFHX0xMSU0gJiYgKG5ucGZzX3BhZ190KWdyb3VwIDwgTk5Q
RlNfUEFHX1VMSU0pIHsNCiAJICAgIE5OUEZTREVCKFhERUJTWVMsDQogCQkg
ICAgICgiZmluZF9wYWc6IEV4aXN0aW5nIHBhZyAldSBhdCBwb3MgJXVcbiIs
IGdyb3VwLCBpKSk7DQpAQCAtMjIwLDcgKzI0NCwxMiBAQCBubnBmc19nZXRf
cGFnX2dyb3VwKHZvaWQpDQogICAgIG5ucGZzX3BhZ190IHJldCA9IGN1cnJl
bnQtPnVpZDsNCiAjZWxzZQ0KICAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ2kg
PSBnZXRfY3VycmVudF9ncm91cHMoKTsNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KICAgICBubnBmc19wYWdf
dCByZXQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbHNlDQorICAgIGt1aWRfdCBr
dWlkID0gY3VycmVudF91aWQoKTsNCisgICAgbm5wZnNfcGFnX3QgcmV0ID0g
a3VpZC52YWw7DQorI2VuZGlmDQogI2VuZGlmDQogICAgIGludCBpOw0KIA0K
QEAgLTIzMCw3ICsyNTksMTEgQEAgbm5wZnNfZ2V0X3BhZ19ncm91cCh2b2lk
KQ0KIA0KICAgICBpID0gZmluZF9wYWcoZ2kpOw0KICAgICBpZiAoaSAhPSBO
TlBGU19QQUdfTk9URk9VTkQpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAJcmV0ID0gR1JPVVBfQVQoZ2ks
IGkpOw0KKyNlbHNlDQorCXsga2dpZF90IGtnaWQgPSBHUk9VUF9BVChnaSwg
aSk7IHJldCA9IGtnaWQudmFsOyB9DQorI2VuZGlmDQogDQogICAgIHB1dF9n
cm91cF9pbmZvKGdpKTsNCiANCkBAIC0yODAsMTAgKzMxMywxNyBAQCBzdG9y
ZV9wYWcobm5wZnNfcGFnX3QgcGFnbnVtKQ0KIAljb3VudCAtPSBOR1JPVVBT
X1BFUl9CTE9DSzsNCiAgICAgfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogICAgIGlmIChmb3VuZCkN
CiAJR1JPVVBfQVQobmV3X2dpLCBpKSA9IHBhZ251bTsNCiAgICAgZWxzZQ0K
IAlHUk9VUF9BVChuZXdfZ2ksIG5ld19naS0+bmdyb3VwcyAtIDEpID0gcGFn
bnVtOw0KKyNlbHNlDQorICAgIGlmIChmb3VuZCkNCisJeyBrZ2lkX3Qga2dp
ZCA9IEtHSURUX0lOSVQocGFnbnVtKTsgR1JPVVBfQVQobmV3X2dpLCBpKSA9
IGtnaWQ7IH0NCisgICAgZWxzZQ0KKwl7IGtnaWRfdCBrZ2lkID0gS0dJRFRf
SU5JVChwYWdudW0pOyBHUk9VUF9BVChuZXdfZ2ksIG5ld19naS0+bmdyb3Vw
cyAtIDEpID0ga2dpZDsgfQ0KKyNlbmRpZg0KICAgICANCiAgICAgc2V0X2N1
cnJlbnRfZ3JvdXBzKG5ld19naSk7DQogICAgIHB1dF9ncm91cF9pbmZvKG5l
d19naSk7DQpAQCAtMzI1LDggKzM2NSwxMCBAQCBubnBmc19nZXRfcGFnKCkN
CiANCiAjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9O
KDIsNiwyOCkNCiAgICAgcmV0dXJuIGN1cnJlbnQtPnVpZDsNCi0jZWxzZQ0K
KyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTQsMCkNCiAgICAgcmV0dXJuIGN1cnJlbnRfdWlkKCk7DQorI2Vsc2UNCisg
ICAgeyBrdWlkX3Qga3VpZCA9IGN1cnJlbnRfdWlkKCk7IHJldHVybiBrdWlk
LnZhbDsgfQ0KICNlbmRpZg0KIH0NCiANCkBAIC00MzIsNyArNDc0LDcgQEAg
bm5wZnNfc2V0Z3JvdXBzMTYgKGludCBnaWRzZXRzaXplLCBvbGRfZw0KICNl
bmRpZiAvKiBTWVNDQUxMSEFDSyAqLw0KICNlbmRpZiAvKiBHUk9VUFBBR1Mg
Ki8NCiANCi1zdHJ1Y3QgZmlsZV9oYW5kbGUgew0KK3N0cnVjdCBubnBmc19m
aWxlX2hhbmRsZSB7DQogICAgIG5ucGZzX2Rldl90IGRldjsNCiAgICAgaW5v
X3QgaW5vZGU7DQogICAgIF9fdTMyIGdlbjsNCkBAIC01MTksMjYgKzU2MSw2
NSBAQCBubnBmc19kZWJ1Z19wcmludCAoc3RydWN0IGFybGFWaWNlSW9jdGwg
DQogICogZm9sbG93IHN5bWxpbmtzIGlmZiBgZm9sbG93Jw0KICAqLw0KIA0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5
LDApDQogc3RhdGljIHN0cnVjdCBkZW50cnkgKg0KIHVzZXJfcGF0aDJkZW50
cnkgKHN0cnVjdCBuYW1laWRhdGEgKm5kLCBjaGFyICp1c2VyX3BhdGgsIGlu
dCBmb2xsb3cpDQorI2Vsc2UNCitzdGF0aWMgc3RydWN0IGRlbnRyeSAqDQor
dXNlcl9wYXRoMmRlbnRyeSAoc3RydWN0IHBhdGggKnBhdGgsIGNoYXIgKnVz
ZXJfcGF0aCwgaW50IGZvbGxvdykNCisjZW5kaWYNCiB7DQotICAgIGNoYXIg
KmtuYW1lOw0KICAgICBpbnQgZmxhZ3MgPSAwOw0KICAgICBpbnQgZXJyb3Ig
PSAwOw0KIA0KLSAgICBrbmFtZSA9IGdldG5hbWUgKHVzZXJfcGF0aCk7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNyww
KQ0KKyAgICBjaGFyICprbmFtZTsNCisgICAga25hbWUgPSBnZXRuYW1lKHVz
ZXJfcGF0aCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxNCwwKQ0KKyAgICBjb25zdCBjaGFyICprbmFtZTsNCisg
ICAgc3RydWN0IGZpbGVuYW1lICpmbmFtZTsNCisgICAgZm5hbWUgPSBnZXRu
YW1lKHVzZXJfcGF0aCk7DQorICAgIGtuYW1lID0gZm5hbWUtPm5hbWU7DQor
I2Vsc2UNCisgICAgY2hhciAqa25hbWU7DQorICAgIGtuYW1lID0gX19nZXRu
YW1lKCk7DQorI2VuZGlmDQorDQogICAgIGlmIChJU19FUlIoa25hbWUpKQ0K
IAlyZXR1cm4gRVJSX1BUUihQVFJfRVJSKGtuYW1lKSk7DQogICAgIGlmIChm
b2xsb3cpDQogCWZsYWdzIHw9IExPT0tVUF9GT0xMT1c7DQogDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDE0LDApDQor
ICAgIGVycm9yID0gc3RybmNweV9mcm9tX3VzZXIoa25hbWUsIHVzZXJfcGF0
aCwgUEFUSF9NQVgpOw0KKyAgICBpZiAoZXJyb3IgPCAwIHx8IGVycm9yID09
IFBBVEhfTUFYKSB7DQorCV9fcHV0bmFtZShrbmFtZSk7DQorCXJldHVybiBF
UlJfUFRSKGVycm9yKTsNCisgICAgfQ0KKyNlbmRpZg0KKw0KICAgICBOTlBG
U0RFQihYREVCTVNHLCAoIm5ucGZzX3N5c2NhbGw6IGxvb2tpbmcgdXA6ICVz
XG4iLCBrbmFtZSkpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigyLDYsMzkpDQogICAgIGVycm9yID0gcGF0aF9sb29r
dXAoa25hbWUsIGZsYWdzLCBuZCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBlcnJvciA9IGtl
cm5fcGF0aChrbmFtZSwgZmxhZ3MsICYobmQtPnBhdGgpKTsNCisjZWxzZQ0K
KyAgICBlcnJvciA9IGtlcm5fcGF0aChrbmFtZSwgZmxhZ3MsIHBhdGgpOw0K
KyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDcsMCkNCiAgICAgcHV0bmFtZShrbmFtZSk7DQorI2VuZGlmDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDE0
LDApDQorICAgIF9fcHV0bmFtZShrbmFtZSk7DQorI2VuZGlmDQogICAgIGlm
IChlcnJvcikNCiAJcmV0dXJuIEVSUl9QVFIoZXJyb3IpOw0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAg
IHJldHVybiBuZC0+cGF0aC5kZW50cnk7DQorI2Vsc2UNCisgICAgcmV0dXJu
IHBhdGgtPmRlbnRyeTsNCisjZW5kaWYNCiB9DQogDQogYXNtbGlua2FnZSBs
b25nDQpAQCAtNTUzLDEzICs2MzQsMjEgQEAgc3lzX2Fmc19pbnQgKGludCBv
cGVyYXRpb24sDQogICAgIHN0cnVjdCBubnBmc19tZXNzYWdlX3Bpb2N0bCAq
bXNnID0gTlVMTDsNCiAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2Vfd2FrZXVw
ICptc2cyOw0KICAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkgPSBOVUxMOw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5
LDApDQogICAgIHN0cnVjdCBuYW1laWRhdGEgbmQ7DQorI2Vsc2UNCisgICAg
c3RydWN0IHBhdGggcGF0aDsNCisjZW5kaWYNCiAgICAgDQogICAgIG1zZyA9
IGttYWxsb2Moc2l6ZW9mKCptc2cpLCBHRlBfS0VSTkVMKTsNCiAgICAgaWYg
KG1zZyA9PSBOVUxMKQ0KICAgICAgIHJldHVybiAtRU5PTUVNOw0KIA0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkp
DQogICAgIGxvY2tfa2VybmVsKCk7DQorI2Vsc2UNCisgICAgLyogVE9ETzog
bG9ja19rZXJuZWwoKSBpcyByZW1vdmVkLCBjb25zaWRlciBhZGRpbmcgYW4g
cHJpdmF0ZSBsb2NrICovDQorI2VuZGlmDQogDQogICAgIE5OUEZTREVCKFhE
RUJTWVMsICgic3lzX2FmcyBrZXJuZWwgbG9ja2VkXG4iKSk7DQogDQpAQCAt
NTk3LDcgKzY4NiwxMSBAQCBzeXNfYWZzX2ludCAoaW50IG9wZXJhdGlvbiwN
CiAJICAgIH0NCiAJfQ0KIAlpZiAoYV9wYXRoUCAhPSBOVUxMKSB7DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkN
CiAJICAgIGRlbnRyeSA9IHVzZXJfcGF0aDJkZW50cnkgKCZuZCwgYV9wYXRo
UCwgYV9mb2xsb3dTeW1saW5rcyk7DQorI2Vsc2UNCisJICAgIGRlbnRyeSA9
IHVzZXJfcGF0aDJkZW50cnkgKCZwYXRoLCBhX3BhdGhQLCBhX2ZvbGxvd1N5
bWxpbmtzKTsNCisjZW5kaWYNCiAJICAgIGlmICghZGVudHJ5KSB7DQogCQll
cnJvciA9IC1FSU5WQUw7DQogCQlnb3RvIHVubG9jazsNCkBAIC02OTMsMTMg
Kzc4NiwyMSBAQCBzeXNfYWZzX2ludCAoaW50IG9wZXJhdGlvbiwNCiAgICAg
DQogIHVubG9jazoNCiAgICAgaWYgKGRlbnRyeSkNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAlwYXRoX3B1
dCgmbmQucGF0aCk7DQorI2Vsc2UNCisJcGF0aF9wdXQoJnBhdGgpOw0KKyNl
bmRpZg0KIA0KICAgICBOTlBGU0RFQihYREVCU1lTLCAoIm5ucGZzX3N5c2Nh
bGwgcmV0dXJucyBlcnJvcjogJWxkXG4iLCBlcnJvcikpOw0KIA0KICAgICBO
TlBGU0RFQihYREVCU1lTLCAoInN5c19hZnMga2VybmVsIHVubG9ja1xuIikp
Ow0KICAgICBrZnJlZShtc2cpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogICAgIHVubG9ja19rZXJuZWwo
KTsNCisjZWxzZQ0KKyAgICAvKiBUT0RPOiBzZWUgdGhlIGNvbW1lbnQgYXQg
bG9ja19rZXJuZWwoKSBhYm92ZSAqLw0KKyNlbmRpZg0KIA0KICAgICByZXR1
cm4gZXJyb3I7DQogfQ0KQEAgLTc0OCw5ICs4NDksMTUgQEAgc3lzX2FmcyAo
aW50IG9wZXJhdGlvbiwNCiAJCSAgICAgICBhX2ZvbGxvd1N5bWxpbmtzKTsN
CiB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDIsNiwzNikNCiBzdGF0aWMgaW50DQogbm5wZnNfcHJvY2ZzX2lvY3Rs
KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLA0KIAkJ
ICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQorI2Vs
c2UNCitzdGF0aWMgbG9uZw0KK25ucGZzX3Byb2Nmc19pb2N0bChzdHJ1Y3Qg
ZmlsZSAqZmlsZSwNCisJCSAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVk
IGxvbmcgYXJnKQ0KKyNlbmRpZg0KIHsNCiAgICAgYWZzcHJvY2RhdGEgYXJn
czsNCiAgICAgbG9uZyByZXQ7DQpAQCAtODA3LDcgKzkxNCwxMSBAQCBzdGF0
aWMgaW50IG5ucGZzX2luaXRfcHJvY2ZzKHZvaWQpDQogICAgIG5ucGZzX3By
b2Nmc19kaXItPm93bmVyID0gVEhJU19NT0RVTEU7DQogI2VuZGlmDQogICAg
IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDEwLDApDQogICAgIGVudHJ5ID0gY3JlYXRlX3Byb2NfZW50cnkoTk5QRlNf
UFJPQ19OT0RFLCAwNjY2LCBubnBmc19wcm9jZnNfZGlyKTsNCisjZWxzZQ0K
KyAgICBlbnRyeSA9IHByb2NfY3JlYXRlKE5OUEZTX1BST0NfTk9ERSwgMDY2
NiwgTlVMTCwgJm5ucGZzX3Byb2Nmc19mb3BzKTsNCisjZW5kaWYNCiAgICAg
aWYgKGVudHJ5ID09IE5VTEwpIHsNCiAJTk5QRlNERUIoWERFQlNZUywgKCJu
bnBmc19pbml0X3Byb2Nmczogbm8gbm9kZVxuIikpOw0KIAlyZW1vdmVfcHJv
Y19lbnRyeSgiZnMvIiBOTlBGU19QUk9DX0RJUiwgTlVMTCk7DQpAQCAtODE3
LDcgKzkyOCw5IEBAIHN0YXRpYyBpbnQgbm5wZnNfaW5pdF9wcm9jZnModm9p
ZCkNCiAjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Miw2LDMwKQ0KICAgICBlbnRyeS0+b3duZXIgPSBUSElTX01PRFVMRTsNCiAj
ZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMywxMCwwKQ0KICAgICBlbnRyeS0+cHJvY19mb3BzID0gJm5ucGZzX3By
b2Nmc19mb3BzOw0KKyNlbmRpZg0KIA0KICNpZmRlZiBTWVNDQUxMQ09NUEFU
DQogICAgIGlmIChyZWdpc3Rlcl9pb2N0bDMyX2NvbnZlcnNpb24oQVJMQV9W
SU9DX1NZU0NBTEwzMiwgbm5wZnNfcHJvY2ZzX2lvY3RsMzIpKSB7DQpkaWZm
IC11cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBm
c19zeXNjYWxscy1sb3NzYWdlLmMgYXJsYS9ubnBmcy9saW51eC9ubnBmc19z
eXNjYWxscy1sb3NzYWdlLmMNCi0tLSBhcmxhLWN2cy1vbGQvbm5wZnMvbGlu
dXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jCTIwMTAtMDgtMDggMjI6NDM6
MDUuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS9ubnBmcy9saW51eC9ubnBm
c19zeXNjYWxscy1sb3NzYWdlLmMJMjAxNi0wMS0xMyAyMTo1MTo0OS4wMDAw
MDAwMDAgKzAxMDANCkBAIC01MCw4ICs1MCwxNyBAQA0KIFJDU0lEKCIkSWQ6
IG5ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyx2IDEuMTkgMjAxMC8wOC8wOCAy
MDo0MzowNSB0b2wgRXhwICQiKTsNCiAjZW5kaWYNCiANCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0KKy8qIHRo
ZSBtZXRob2QgdG8gcmVhZCAnbG93ZXJfYm91bmQnIGRvZXMgbm90IHdvcmsg
b24ga2VybmVsIDMuNyBhbmQgbGF0ZXIgKi8NCisjdW5kZWYgU1lTQ0FMTEhB
Q0sNCisjZW5kaWYNCisNCiAjaW5jbHVkZSA8bGludXgva2FsbHN5bXMuaD4N
CisjaWZkZWYgU1lTQ0FMTEhBQ0sNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMyw3LDApDQogc3RhdGljIHZvaWQgKmxvd2Vy
X2JvdW5kID0gJmtlcm5lbF90aHJlYWQ7DQorI2VuZGlmDQorI2VuZGlmDQog
DQogdm9pZCAqIF9fYXR0cmlidXRlX18oKHdlYWspKSBzeXNfY2FsbF90YWJs
ZSh2b2lkKTsNCiBubnBmc19zeXNfY2FsbF9mdW5jdGlvbiAqbm5wZnNfc3lz
X2NhbGxfdGFibGUgPQ0KQEAgLTY2LDYgKzc1LDggQEAgY29uc3QgY2hhciAq
IF9fYXR0cmlidXRlX18oKHdlYWspKQ0KICNpZmRlZiBfX3g4Nl82NF9fDQog
ZXh0ZXJuIHJ3bG9ja190IHRhc2tsaXN0X2xvY2sgX19hdHRyaWJ1dGVfXygo
d2VhaykpOw0KICNlbmRpZg0KKw0KKyNpZmRlZiBTWVNDQUxMSEFDSw0KIHN0
YXRpYyB2b2lkICoqDQogZ2V0X3N0YXJ0X2FkZHIodm9pZCkgew0KICNpZmRl
ZiBfX3g4Nl82NF9fDQpAQCAtNzQsNiArODUsNyBAQCBnZXRfc3RhcnRfYWRk
cih2b2lkKSB7DQogICAgIHJldHVybiAodm9pZCAqKikmbXV0ZXhfbG9jazsN
CiAjZW5kaWYNCiB9DQorI2VuZGlmDQogDQogc3RhdGljIGlubGluZSBpbnQg
DQoga2FsbHN5bV9pc19lcXVhbCh1bnNpZ25lZCBsb25nIGFkZHIsIGNvbnN0
IGNoYXIgKm5hbWUpDQpAQCAtMTQyLDYgKzE1NCw4IEBAIHZlcmlmeSh2b2lk
ICoqcCkgew0KICAgICByZXR1cm4gMTsNCiB9DQogDQorI2lmZGVmIFNZU0NB
TExIQUNLDQorDQogc3RhdGljIGlubGluZSBpbnQgbG9va3NfZ29vZCh2b2lk
ICoqcCkNCiB7DQogICAgIGlmICgqcCA8PSAodm9pZCopbG93ZXJfYm91bmQg
fHwgKnAgPj0gKHZvaWQqKXApDQpAQCAtMTkxLDMgKzIwNSw1IEBAIG5ucGZz
X2ZpeHVwX3N5c2NhbGxfbG9zc2FnZSh2b2lkKQ0KIA0KICAgICByZXR1cm4g
MDsNCiB9DQorDQorI2VuZGlmDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEt
Y3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc192ZnNvcHMuYyBhcmxhL25ucGZz
L2xpbnV4L25ucGZzX3Zmc29wcy5jDQotLS0gYXJsYS1jdnMtb2xkL25ucGZz
L2xpbnV4L25ucGZzX3Zmc29wcy5jCTIwMTAtMDgtMDggMjI6NDM6MDYuMDAw
MDAwMDAwICswMjAwDQorKysgYXJsYS9ubnBmcy9saW51eC9ubnBmc192ZnNv
cHMuYwkyMDE2LTAyLTE0IDAxOjM2OjA2LjAwMDAwMDAwMCArMDEwMA0KQEAg
LTUwLDcgKzUwLDkgQEAgUkNTSUQoIiRJZDogbm5wZnNfdmZzb3BzLmMsdiAx
LjExMSAyMDEwLw0KIHN0cnVjdCBubnBmcyBubnBmc1tOTk5QRlNdOw0KIA0K
IHN0YXRpYyB2b2lkIG5ucGZzX3B1dF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxv
Y2sgKnNiKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMyw2LDApDQogc3RhdGljIHZvaWQgbm5wZnNfd3JpdGVfc3VwZXIo
c3RydWN0IHN1cGVyX2Jsb2NrICogc2IpOw0KKyNlbmRpZg0KIA0KIHN0YXRp
YyBpbnQgbm5wZnNfc3RhdGZzKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3Ry
dWN0IGtzdGF0ZnMgKmJ1Zik7DQogDQpAQCAtNTksNyArNjEsOSBAQCBzdGF0
aWMgc3RydWN0IHN1cGVyX29wZXJhdGlvbnMgbm5wZnNfc29wDQogICAgIGRl
c3Ryb3lfaW5vZGUJOiBubnBmc19ub2RlX2ZyZWUsDQogICAgIGRyb3BfaW5v
ZGUJCTogZ2VuZXJpY19kZWxldGVfaW5vZGUsDQogICAgIHB1dF9zdXBlcgkJ
OiBubnBmc19wdXRfc3VwZXIsDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICB3cml0ZV9zdXBlcgkJOiBu
bnBmc193cml0ZV9zdXBlciwNCisjZW5kaWYNCiAgICAgc3RhdGZzCQk6IG5u
cGZzX3N0YXRmcywNCiB9Ow0KIA0KQEAgLTg2LDcgKzkwLDExIEBAIG5ucGZz
X2ZldGNoX3Jvb3Qoc3RydWN0IGlub2RlICppKQ0KIAkgKiByb290J3MgcHJp
dmlsaWdlcyAodXN1YWxseSBub25lLCBhbmQgbm9uZSBpcyBuZWVkZWQpLg0K
IAkgKi8NCiAJDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTQsMCkNCiAJbXNnLmNyZWQudWlkID0gMDsNCisjZWxzZQ0K
Kwltc2cuY3JlZC51aWQgPSBLVUlEVF9JTklUKDApOw0KKyNlbmRpZg0KIAlt
c2cuY3JlZC5wYWcgPSAwOw0KIAkNCiAJZXJyb3IgPSBubnBmc19tZXNzYWdl
X3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7DQpAQCAt
MTIxLDggKzEyOSwxMyBAQCBtYWtlX3Jvb3RfaW5vZGUoc3RydWN0IG5ucGZz
ICpubnBmc3ApDQogICAgIFhBX1NFVF9NT0RFKCZub2RlLmF0dHIsIFNfSUZE
SVIgfCAwNzc3KTsNCiAgICAgWEFfU0VUX05MSU5LKCZub2RlLmF0dHIsIDEw
MCk7DQogICAgIFhBX1NFVF9TSVpFKCZub2RlLmF0dHIsIDApOw0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQog
ICAgIFhBX1NFVF9VSUQoJm5vZGUuYXR0ciwgMCk7DQogICAgIFhBX1NFVF9H
SUQoJm5vZGUuYXR0ciwgMCk7DQorI2Vsc2UNCisgICAgWEFfU0VUX1VJRCgm
bm9kZS5hdHRyLCBLVUlEVF9JTklUKDApKTsNCisgICAgWEFfU0VUX0dJRCgm
bm9kZS5hdHRyLCBLR0lEVF9JTklUKDApKTsNCisjZW5kaWYNCiAgICAgWEFf
U0VUX0FUSU1FKCZub2RlLmF0dHIsIDApOw0KICAgICBYQV9TRVRfTVRJTUUo
Jm5vZGUuYXR0ciwgMCk7DQogICAgIFhBX1NFVF9DVElNRSgmbm9kZS5hdHRy
LCAwKTsNCkBAIC0xNTEsNyArMTY0LDExIEBAIG1ha2Vfcm9vdCAoc3RydWN0
IHN1cGVyX2Jsb2NrICpzYikNCiAgICAgbm5wZnMtPnJvb3QgPSBpbm9kZTsN
CiANCiAgICAgLyogWFhYIGVycm9yIGhhbmRsaW5nICovDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNCwwKQ0KICAgICBk
cCA9IGRfYWxsb2Nfcm9vdChpbm9kZSk7DQorI2Vsc2UNCisgICAgZHAgPSBk
X21ha2Vfcm9vdChpbm9kZSk7DQorI2VuZGlmDQogICAgIG5ucGZzX2RfaW5p
dChkcCk7DQogICAgIHNiLT5zX3Jvb3QgPSBkcDsNCiAgICAgcmV0dXJuIDA7
DQpAQCAtMTc1LDEzICsxOTIsMjcgQEAgbm5wZnNfcmVhZF9zdXBlciAoc3Ry
dWN0IHN1cGVyX2Jsb2NrICogcw0KICAgICBOTlBGU0RFQihYREVCVkZPUFMs
ICgibm5wZnNfcmVhZF9zdXBlcjogYmVnaW4gc2V0dGluZyB2YXJpYWJsZXNc
biIpKTsNCiANCiAgICAgaWYgKGRhdGEgIT0gTlVMTCkgew0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCXN0
cnVjdCBuYW1laWRhdGEgbmQ7DQorI2Vsc2UNCisJc3RydWN0IHBhdGggcGF0
aDsNCisjZW5kaWYNCiAJDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAJZXJyb3IgPSBwYXRoX2xvb2t1cChk
YXRhLCAwLCAmbmQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsMTksMCkNCisJZXJyb3IgPSBrZXJuX3BhdGgoZGF0
YSwgMCwgJm5kLnBhdGgpOw0KKyNlbHNlDQorCWVycm9yID0ga2Vybl9wYXRo
KGRhdGEsIDAsICZwYXRoKTsNCisjZW5kaWYNCiAJaWYgKGVycm9yKQ0KIAkg
ICAgZGRldiA9IEVSUl9QVFIoZXJyb3IpOw0KIAllbHNlDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJICAg
IGRkZXYgPSBuZC5wYXRoLmRlbnRyeTsNCisjZWxzZQ0KKwkgICAgZGRldiA9
IHBhdGguZGVudHJ5Ow0KKyNlbmRpZg0KIA0KIAlpZiAoIUlTX0VSUihkZGV2
KSkgew0KIAkgICAgbWlub3JkZXZpY2UgPSBNSU5PUihkZGV2LT5kX2lub2Rl
LT5pX3JkZXYpOw0KQEAgLTIyNSw2ICsyNTYsNyBAQCBubnBmc19maWxsX3N1
cGVyIChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiDQogICAgIHJldHVybiAwOw0K
IH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMiw2LDM5KQ0KIGludA0KIG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9z
eXN0ZW1fdHlwZSAqZnNfdHlwZSwNCiAJICAgICBpbnQgZmxhZ3MsIGNvbnN0
IGNoYXIgKmRldl9uYW1lLA0KQEAgLTIzMiwxMiArMjY0LDIzIEBAIG5ucGZz
X2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnMNCiB7DQogICAg
IHJldHVybiBnZXRfc2Jfbm9kZXYoZnNfdHlwZSwgZmxhZ3MsIGRhdGEsIG5u
cGZzX2ZpbGxfc3VwZXIsIG1udCk7DQogfQ0KKyNlbHNlDQorc3RydWN0IGRl
bnRyeSoNCitubnBmc19tb3VudChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAq
ZnNfdHlwZSwNCisJICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9u
YW1lLA0KKwkgICAgIHZvaWQgKmRhdGEpIA0KK3sNCisgICAgcmV0dXJuIG1v
dW50X25vZGV2KGZzX3R5cGUsIGZsYWdzLCBkYXRhLCBubnBmc19maWxsX3N1
cGVyKTsNCit9DQorI2VuZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyB2b2lkDQogbm5w
ZnNfd3JpdGVfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICogc2IpDQogew0K
ICAgICBzYi0+c19kaXJ0ID0gMDsNCiB9DQorI2VuZGlmDQogDQogLyoNCiAg
KiBYWFggaXMgdGhpcyBnb29kPyANCkBAIC0yNzYsNyArMzE5LDExIEBAIG5u
cGZzX3N0YXRmc19pbnQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwNCiAgICAg
dG1wLmZfc3BhcmVbMV0gPSAwOw0KICAgICB0bXAuZl9zcGFyZVsyXSA9IDA7
DQogICAgIHRtcC5mX3NwYXJlWzNdID0gMDsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KQ0KICAgICB0bXAuZl9z
cGFyZVs0XSA9IDA7DQorI2Vsc2UNCisgICAgdG1wLmZfZmxhZ3MgPSAwOw0K
KyNlbmRpZg0KICAgICAqYnVmID0gdG1wOw0KICAgICByZXR1cm4gMDsNCiB9
DQo=
---276651502-1163068867-1455645288=:24402
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
Arla-drinkers mailing list
Arla-drinkers@stacken.kth.se
https://lists.stacken.kth.se/mailman/listinfo/arla-drinkers
---276651502-1163068867-1455645288=:24402--