[5070] in arla-drinkers
Re: PATCH v6: Arla CVS Current on Linux 2.6.36 to 4.4
daemon@ATHENA.MIT.EDU (Bo Branten)
Tue Jan 26 13:37:18 2016
From arla-drinkers-bounces@stacken.kth.se Tue Jan 26 18:37:18 2016
Return-Path: <arla-drinkers-bounces@stacken.kth.se>
Delivered-To: arla-drinkers-mtg@bloom-picayune.mit.edu
Received: (qmail 10987 invoked from network); 26 Jan 2016 18:37:18 -0000
Received: from mx6.kth.se (130.237.48.70)
by charon.mit.edu with SMTP; 26 Jan 2016 18:37:18 -0000
Received: from mx6.kth.se (localhost [127.0.0.1])
by mx6.kth.se (Postfix) with ESMTP id B3E641C00CB;
Tue, 26 Jan 2016 19:37:17 +0100 (CET)
X-Virus-Scanned: by amavisd-new at kth.se
Received: from mx6.kth.se ([127.0.0.1])
by mx6.kth.se (mx6.kth.se [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id 6FzePhEELDqo; Tue, 26 Jan 2016 19:37:13 +0100 (CET)
Received: from vingummi.stacken.kth.se (lists.stacken.kth.se [130.237.234.174])
by mx6.kth.se (Postfix) with ESMTP;
Tue, 26 Jan 2016 19:37:13 +0100 (CET)
Received: from vingummi.stacken.kth.se (localhost [IPv6:::1])
by vingummi.stacken.kth.se (Postfix) with ESMTP id DE4DF14CAEE;
Tue, 26 Jan 2016 19:37:13 +0100 (CET)
Received: by vingummi.stacken.kth.se (Postfix)
id 15C9B14CAF1; Tue, 26 Jan 2016 19:37:13 +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 11DCF14CAEE
for <arla-drinkers@stacken.kth.se>; Tue, 26 Jan 2016 19:37:13 +0100 (CET)
Received: from mx7.kth.se (localhost [127.0.0.1])
by mx7.kth.se (Postfix) with ESMTP id ED9CF1400AF
for <arla-drinkers@stacken.kth.se>; Tue, 26 Jan 2016 19:37:12 +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]:48838
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 EUKNzd28XqP0 for <arla-drinkers@stacken.kth.se>;
Tue, 26 Jan 2016 19:37:11 +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, 26 Jan 2016 19:37:10 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
by amavisd-new (Postfix) with ESMTP id C3ADA789
for <arla-drinkers@stacken.kth.se>; Tue, 26 Jan 2016 19:37:10 +0100 (MET)
X-Virus-Scanned: amavisd-new at acc.umu.se
Received: from suiko.acc.umu.se (suiko.acc.umu.se [IPv6:2001:6b0:e:2018::162])
by mail.acc.umu.se (Postfix) with ESMTP id C052E784
for <arla-drinkers@stacken.kth.se>; Tue, 26 Jan 2016 19:37:05 +0100 (MET)
Received: by suiko.acc.umu.se (Postfix, from userid 10005)
id B1D6144B8C; Tue, 26 Jan 2016 19:37:05 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
by suiko.acc.umu.se (Postfix) with ESMTP id AF01F44B8B
for <arla-drinkers@stacken.kth.se>; Tue, 26 Jan 2016 19:37:05 +0100 (CET)
Date: Tue, 26 Jan 2016 19:37:05 +0100 (CET)
From: Bo Branten <bosse@acc.umu.se>
To: arla-drinkers@stacken.kth.se
Subject: Re: PATCH v6: Arla CVS Current on Linux 2.6.36 to 4.4
In-Reply-To: <alpine.DEB.2.10.1601150312080.11672@suiko.acc.umu.se>
Message-ID: <alpine.DEB.2.10.1601261934570.11904@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-360532137-1453833425=:11904"
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-360532137-1453833425=:11904
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII
PATCH v6: Arla CVS Current on Linux 2.6.36 to 4.4
Corrections in nnpfs_block_open, nnpfs_write_begin and nnpfs_write_end.
Current test status is that reading works well on 32-bit systems while
writing and 64-bit systems needs some more debugging.
Bo Branten
---276651502-360532137-1453833425=:11904
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-v6-arla-cvs-for-linux-2.6.36-to-4.4
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.DEB.2.10.1601261937050.11904@suiko.acc.umu.se>
Content-Description:
Content-Disposition: attachment; filename=patch-v6-arla-cvs-for-linux-2.6.36-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
LTAxLTI2IDEzOjAwOjA2LjAwMDAwMDAwMCArMDEwMA0KQEAgLTQzLDYgKzQz
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
ZWF0ZSgmbmQtPnBhdGgsICZkZW50cnkpOw0KKyNlbHNlDQorCSAgICBkb25l
X3BhdGhfY3JlYXRlKCZwYXRoLCAmZGVudHJ5KTsNCisjZW5kaWYNCiAJfQ0K
IA0KLQltdXRleF91bmxvY2soJm5kLnBhdGguZGVudHJ5LT5kX2lub2RlLT5p
X211dGV4KTsNCi0JcGF0aF9wdXQoJm5kLnBhdGgpOw0KLQ0KIAlpZiAocmV0
KSB7DQogCSAgICBwcmludGsoIm5ucGZzX2Jsb2NrX29wZW4oJXMpIGNyZWF0
ZSBmYWlsZWQ6ICVkXG4iLCBjYWNoZW5hbWUsIC1yZXQpOw0KIAkgICAgbm5w
ZnNfZGVidWdfb29wcygpOw0KQEAgLTQyMSwxNCArNDY5LDIyIEBAIG5ucGZz
X2Jsb2NrX29wZW4oc3RydWN0IG5ucGZzX25vZGUgKm5vZGUNCiAgICAgfSBl
bHNlIHsNCiAjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMiw2LDI5KQ0KIAlzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKG5k
LnBhdGguZGVudHJ5LCBuZC5wYXRoLm1udCwgZmxhZ3MpOw0KLSNlbHNlDQor
I2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2
LDApDQogICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKG5k
LnBhdGguZGVudHJ5LCBuZC5wYXRoLm1udCwgZmxhZ3MsIGN1cnJlbnRfY3Jl
ZCgpKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDE5LDApDQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRy
eV9vcGVuKCZuZC5wYXRoLCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNl
bHNlDQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKCZw
YXRoLCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KICNlbmRpZg0KIAlpZiAo
SVNfRVJSKGYpKSB7DQogCSAgICByZXQgPSBQVFJfRVJSKGYpOw0KIAkgICAg
cHJpbnRrKCJubnBmc19ibG9ja19vcGVuKCVzKSBvcGVuIGZhaWxlZDogJWRc
biIsIGNhY2hlbmFtZSwgLXJldCk7DQogCSAgICBubnBmc19kZWJ1Z19vb3Bz
KCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMTksMCkNCiAJICAgIHBhdGhfcHV0KCZuZC5wYXRoKTsNCisjZWxzZQ0K
KwkgICAgcGF0aF9wdXQoJnBhdGgpOw0KKyNlbmRpZg0KIAl9IGVsc2Ugew0K
IAkgICAgKmZpbGUgPSBmOw0KIAl9DQpAQCAtNDM3LDcgKzQ5Myw3IEBAIG5u
cGZzX2Jsb2NrX29wZW4oc3RydWN0IG5ucGZzX25vZGUgKm5vZGUNCiAgICAg
LyogcGF0aF9yZWxlYXNlKCkgaXMgdXN1YWxseSBoYW5kbGVkIG9uIGNsb3Nl
ICovDQogDQogIG91dDoNCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtF
Uk5FTF9WRVJTSU9OKDIsNiwyOCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KICAgICBjdXJyZW50LT5mc3Vp
ZCA9IHNhdmV1aWQ7DQogICAgIGN1cnJlbnQtPmZzZ2lkID0gc2F2ZWdpZDsN
CiAjZWxzZQ0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLWN2cy1vbGQvbm5w
ZnMvbGludXgvbm5wZnNfY29tbW9uLmMgYXJsYS9ubnBmcy9saW51eC9ubnBm
c19jb21tb24uYw0KLS0tIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBm
c19jb21tb24uYwkyMDA2LTEyLTExIDE3OjMxOjQ2LjAwMDAwMDAwMCArMDEw
MA0KKysrIGFybGEvbm5wZnMvbGludXgvbm5wZnNfY29tbW9uLmMJMjAxNi0w
MS0xNCAxNjoxNTowMC4wMDAwMDAwMDAgKzAxMDANCkBAIC0xMTIsMTAgKzEx
MiwxNSBAQCBubnBmc19wcmludF9hbGlhc2VzKGNvbnN0IHN0cnVjdCBpbm9k
ZSAqDQogdm9pZA0KIG5ucGZzX3ByaW50X2FsaWFzZXNfcmVhbChjb25zdCBz
dHJ1Y3QgaW5vZGUgKmlub2RlKQ0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHN0cnVjdCBsaXN0
X2hlYWQgKmFsaWFzOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAq
YWxpYXM7DQorI2VuZGlmDQogICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeTsN
CiAgICAgaW50IGJhaWxvdXQgPSAxMDA7DQogDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBhbGlhcyA9
IGlub2RlLT5pX2RlbnRyeS5uZXh0Ow0KICAgICB3aGlsZSAoYWxpYXMgIT0g
Jmlub2RlLT5pX2RlbnRyeSkgew0KIAlpZiAoLS1iYWlsb3V0IDwgMCkgew0K
QEAgLTEzMSw2ICsxMzYsMjYgQEAgbm5wZnNfcHJpbnRfYWxpYXNlc19yZWFs
KGNvbnN0IHN0cnVjdCBpbg0KIAl9DQogCWFsaWFzID0gYWxpYXMtPm5leHQ7
DQogICAgIH0NCisjZWxzZQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50
cnkoZGVudHJ5LCBhbGlhcywgJmlub2RlLT5pX2RlbnRyeSwgZF9hbGlhcykg
ew0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMTksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5LCAm
aW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2Vsc2UNCisgICAgaGxp
c3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5LCAmaW5vZGUtPmlfZGVudHJ5LCBk
X3UuZF9hbGlhcykgew0KKyNlbmRpZg0KKwlpZiAoLS1iYWlsb3V0IDwgMCkg
ew0KKwkgICAgcHJpbnRrKCIgLi4uIik7DQorCSAgICBicmVhazsNCisJfQ0K
KwlpZiAoZGVudHJ5KSB7DQorCSAgICBwcmludGsoIiAlLipzKCVwKSIsIChp
bnQpZGVudHJ5LT5kX25hbWUubGVuLA0KKwkJICAgZGVudHJ5LT5kX25hbWUu
bmFtZSwgZGVudHJ5KTsNCisJICAgIGlmIChubnBmc19kX2VudHJ5X3VuaGFz
aGVkKCZkZW50cnktPmRfaGFzaCkpDQorCQlwcmludGsoIih1bmhhc2hlZCki
KTsNCisJfQ0KKyAgICB9DQorI2VuZGlmDQogICAgIHByaW50aygiXG4iKTsN
CiB9DQogDQpAQCAtMTQ2LDcgKzE3MSwxMSBAQCBubnBmc19wcmludF9jaGls
ZHJlbihjb25zdCBzdHJ1Y3QgZGVudHJ5DQogDQogICAgIHdoaWxlIChzdWJk
aXJzICE9ICZkZW50cnktPmRfc3ViZGlycykgew0KIAlzdHJ1Y3QgbGlzdF9o
ZWFkICp0bXAgPSBzdWJkaXJzOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCXN0cnVjdCBkZW50cnkgKmNo
aWxkID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRfdS5kX2No
aWxkKTsNCisjZWxzZQ0KKwlzdHJ1Y3QgZGVudHJ5ICpjaGlsZCA9IGxpc3Rf
ZW50cnkodG1wLCBzdHJ1Y3QgZGVudHJ5LCBkX2NoaWxkKTsNCisjZW5kaWYN
CiANCiAJcHJpbnRrKCIgJS4qcyglcCkiLCAoaW50KWNoaWxkLT5kX25hbWUu
bGVuLA0KIAkgICAgICAgY2hpbGQtPmRfbmFtZS5uYW1lLCBjaGlsZCk7DQpk
aWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9u
bnBmc19kZXYuYyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jDQotLS0g
YXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jCTIwMDYtMTAt
MjQgMTg6MzM6MzYuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS9ubnBmcy9s
aW51eC9ubnBmc19kZXYuYwkyMDE2LTAxLTE0IDE2OjI4OjE5LjAwMDAwMDAw
MCArMDEwMA0KQEAgLTMwMCw3ICszMDAsOSBAQCBubnBmc19pbnZhbGlkYXRl
X2FsbChzdHJ1Y3Qgbm5wZnMgKm5ucGZzDQogICAgIE5OUEZTREVCKFhERUJO
T0RFLCAoImZyZWVfYWxsX25ucGZzX25vZGVzIHN0YXJ0aW5nXG4iKSk7DQog
DQogICAgIHNocmlua19kY2FjaGVfc2Iobm5wZnMtPnNiKTsNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM3KQ0KICAg
ICBpbnZhbGlkYXRlX2lub2RlcyhubnBmcy0+c2IpOw0KKyNlbmRpZg0KICAg
ICANCiAgICAgTk5QRlNERUIoWERFQk5PREUsICgiZnJlZV9hbGxfbm5wZnNf
bm9kZXMgZG9uZVxuIikpOw0KIH0NCkBAIC0zNzQsNyArMzc2LDExIEBAIG5u
cGZzX2RldmNsb3NlKHN0cnVjdCBpbm9kZSAqIGlub2RlLCBzdHINCiBzdGF0
aWMgc3NpemVfdA0KIG5ucGZzX2RldnJlYWQoc3RydWN0IGZpbGUgKmZpbGUs
IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpDQogew0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5
LDApDQogICAgIG5ucGZzX2Rldl90IGRldiA9IGZpbGUtPmZfZGVudHJ5LT5k
X2lub2RlLT5pX3JkZXY7DQorI2Vsc2UNCisgICAgbm5wZnNfZGV2X3QgZGV2
ID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2Ow0KKyNl
bmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9ICZubnBmc1tNSU5P
UihkZXYpXTsNCiAgICAgc3RydWN0IG5ucGZzX2xpbmsgKmZpcnN0Ow0KICAg
ICBpbnQgcmV0ID0gMCwgZXJyb3IgPSAwOw0KQEAgLTQzOSw4ICs0NDUsMTIg
QEAgbm5wZnNfZGV2d3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IA0K
IA0KICAgICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2RldndyaXRlXG4i
KSk7DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDE5LDApDQogICAgIGRldiA9IGZpbGUtPmZfZGVudHJ5LT5k
X2lub2RlLT5pX3JkZXY7DQotICAgIG5ucGZzcCA9ICZubnBmc1tNSU5PUihk
ZXYpXTsNCisjZWxzZQ0KKyAgICBkZXYgPSBmaWxlLT5mX3BhdGguZGVudHJ5
LT5kX2lub2RlLT5pX3JkZXY7DQorI2VuZGlmDQorICAgICBubnBmc3AgPSAm
bm5wZnNbTUlOT1IoZGV2KV07DQogDQogICAgIGRvd24oJm5ucGZzcC0+Y2hh
bm5lbF9zZW0pOw0KICAgICBpZiAobm5wZnNwLT5zdGF0dXMgJiBOTlBGU19E
RVZXUklURSkgew0KQEAgLTUwNSwxOSArNTE1LDM3IEBAIG5ucGZzX2Rldndy
aXRlKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCANCiAvKg0KICAqIE5vdCB1
c2VkLg0KICAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigyLDYsMzYpDQogc3RhdGljIGludA0KIG5ucGZzX2RldmlvY3Rs
KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLA0KIAkg
ICAgICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQor
I2Vsc2UNCitzdGF0aWMgbG9uZw0KK25ucGZzX3VubG9ja2VkX2RldmlvY3Rs
KHN0cnVjdCBmaWxlICpmaWxlLA0KKwkgICAgICAgdW5zaWduZWQgaW50IGNt
ZCwgdW5zaWduZWQgbG9uZyBhcmcpDQorI2VuZGlmDQogew0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQogICAg
IE5OUEZTREVCKFhERUJERVYsICgibm5wZnNfZGV2aW9jdGwgZGV2ID0gJWQs
IGZsYWdzID0gJWRcbiIsDQogCQkgICAgICAgaW5vZGUtPmlfcmRldiwgZmls
ZS0+Zl9mbGFncykpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgTk5QRlNERUIoWERFQkRFViwg
KCJubnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3MgPSAlZFxuIiwNCisJ
CSAgICAgICBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2LCBmaWxl
LT5mX2ZsYWdzKSk7DQorI2Vsc2UNCisgICAgTk5QRlNERUIoWERFQkRFViwg
KCJubnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3MgPSAlZFxuIiwNCisJ
CSAgICAgICBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlLT5pX3JkZXYs
IGZpbGUtPmZfZmxhZ3MpKTsNCisjZW5kaWYNCiAgICAgcmV0dXJuIC1FSU5W
QUw7DQogfQ0KIA0KIHN0YXRpYyB1bnNpZ25lZCBpbnQNCiBubnBmc19kZXZw
b2xsKHN0cnVjdCBmaWxlICpmaWxlLCBwb2xsX3RhYmxlICp3YWl0KQ0KIHsN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx
OSwwKQ0KICAgICBubnBmc19kZXZfdCBkZXYgPSBmaWxlLT5mX2RlbnRyeS0+
ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbHNlDQorICAgIG5ucGZzX2Rldl90IGRl
diA9IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisj
ZW5kaWYNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSAmbm5wZnNbTUlO
T1IoZGV2KV07DQogICAgIGludCByZXQgPSAwOw0KICAgICANCkBAIC05NTMs
NyArOTgxLDExIEBAIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZm9w
cyA9IHsNCiAgICAgcmVhZDoJCW5ucGZzX2RldnJlYWQsDQogICAgIHdyaXRl
OgkJbm5wZnNfZGV2d3JpdGUsDQogICAgIHBvbGw6CQlubnBmc19kZXZwb2xs
LA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzYpDQogICAgIGlvY3RsOgkJbm5wZnNfZGV2aW9jdGwsDQorI2Vsc2UN
CisgICAgdW5sb2NrZWRfaW9jdGw6CW5ucGZzX3VubG9ja2VkX2RldmlvY3Rs
LA0KKyNlbmRpZg0KICAgICByZWxlYXNlOgkJbm5wZnNfZGV2Y2xvc2UsDQog
ICAgIG9wZW46CQlubnBmc19kZXZvcGVuLA0KIH07DQpAQCAtOTY4LDggKzEw
MDAsMTMgQEAgbm5wZnNfaW5pdF9kZXZpY2Uodm9pZCkNCiAJaW5pdF93YWl0
cXVldWVfaGVhZCgmKG5ucGZzW2ldLndhaXRfcXVldWUpKTsNCiAJbm5wZnNf
aW5pdHEoJm5ucGZzW2ldLm1lc3NhZ2VxKTsNCiAJbm5wZnNfaW5pdHEoJm5u
cGZzW2ldLnNsZWVwcSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDIsNiwzNykNCiAJaW5pdF9NVVRFWCgmbm5wZnNbaV0u
aW5hY3RpdmVfc2VtKTsNCiAJaW5pdF9NVVRFWCgmbm5wZnNbaV0uY2hhbm5l
bF9zZW0pOw0KKyNlbHNlDQorCXNlbWFfaW5pdCgmbm5wZnNbaV0uaW5hY3Rp
dmVfc2VtLCAxKTsNCisJc2VtYV9pbml0KCZubnBmc1tpXS5jaGFubmVsX3Nl
bSwgMSk7DQorI2VuZGlmDQogCUlOSVRfTElTVF9IRUFEKCZubnBmc1tpXS5p
bmFjdGl2ZV9saXN0KTsNCiAJbm5wZnNbaV0ubm5vZGVzID0gMDsNCiAgICAg
fQ0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLWN2cy1vbGQvbm5wZnMvbGlu
dXgvbm5wZnNfaW5vZGVvcHMuYyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX2lu
b2Rlb3BzLmMNCi0tLSBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnNf
aW5vZGVvcHMuYwkyMDEwLTA4LTA4IDIyOjQzOjA0LjAwMDAwMDAwMCArMDIw
MA0KKysrIGFybGEvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYwkyMDE2
LTAxLTI2IDE4OjUxOjM1LjAwMDAwMDAwMCArMDEwMA0KQEAgLTQwLDEwICs0
MCwxNCBAQA0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19kZXYuaD4NCiAjaW5j
bHVkZSA8bm5wZnMvbm5wZnNfZGlyZW50Lmg+DQogI2luY2x1ZGUgPG5ucGZz
L25ucGZzX3N5c2NhbGxzLmg+DQorI2luY2x1ZGUgPGxpbnV4L2Fpby5oPg0K
ICNpbmNsdWRlIDxsaW51eC9iaW5mbXRzLmg+DQogI2luY2x1ZGUgPGxpbnV4
L2ZpbGUuaD4NCiAjaW5jbHVkZSA8bGludXgvcGFnZW1hcC5oPg0KICNpbmNs
dWRlIDxsaW51eC9wYWdlLWZsYWdzLmg+DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA+PSBLRVJORUxfVkVSU0lPTig0LDEsMCkNCisjaW5jbHVkZSA8bGlu
dXgvdWlvLmg+DQorI2VuZGlmDQogI2luY2x1ZGUgPGxpbnV4L3dyaXRlYmFj
ay5oPg0KICNpbmNsdWRlIDxhc20vZmNudGwuaD4NCiANCkBAIC01NCwxMSAr
NTgsMjMgQEAgUkNTSUQoIiRJZDogbm5wZnNfaW5vZGVvcHMuYyx2IDEuMjI2
IDIwMQ0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3luY19pbnQoc3RydWN0IGZp
bGUgKmZpbGUsIHVfaW50IGZsYWcpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiBzdGF0aWMgaW50DQog
bm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3Ry
dWN0IG5hbWVpZGF0YSAqbmQpOw0KLQ0KKyNlbHNlDQogc3RhdGljIGludA0K
K25ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVu
c2lnbmVkIGludCBmbGFncyk7DQorI2VuZGlmDQorDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCitzdGF0aWMN
CitpbnQNCiBubnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkp
Ow0KKyNlbHNlDQorc3RhdGljDQoraW50DQorbm5wZnNfZF9kZWxldGUoY29u
c3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KTsNCisjZW5kaWYNCiANCiBzdGF0
aWMgdm9pZA0KIG5ucGZzX2RfcmVsZWFzZShzdHJ1Y3QgZGVudHJ5ICpkZW50
cnkpOw0KQEAgLTIxNCw4ICsyMzAsMTMgQEAgbm5wZnNfaW5vZGVfdmFsaWQo
c3RydWN0IGlub2RlICppbm9kZSkNCiAgKiBubnBmc19sb29rdXAgbm93IHJl
dHVybnMgYSBkZW50cnkuDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyBzdHJ1Y3Qg
ZGVudHJ5ICoNCiBubnBmc19sb29rdXAgKHN0cnVjdCBpbm9kZSAqZGlyLCBz
dHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0K
KyNlbHNlDQorc3RhdGljIHN0cnVjdCBkZW50cnkgKg0KK25ucGZzX2xvb2t1
cCAoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwg
dW5zaWduZWQgaW50IGZsYWdzKQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0
IG5ucGZzX21lc3NhZ2VfZ2V0bm9kZSBtc2c7DQogICAgIHN0cnVjdCBubnBm
cyAqbm5wZnNwOw0KQEAgLTQwNyw3ICs0MjgsMTEgQEAgZmluZF9maXJzdF9i
bG9jayhzdHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KIHN0YXRpYyBpbnQNCiBu
bnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50IGZsYWcp
DQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDE5LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5m
X2RlbnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUg
Kmlub2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5k
aWYNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSBOTlBGU19GUk9NX1ZO
T0RFKGlub2RlKTsNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5P
REVfVE9fWE5PREUoaW5vZGUpOw0KICAgICBsb2ZmX3QgbGVuID0gaV9zaXpl
X3JlYWQoaW5vZGUpOw0KQEAgLTQ3NCwxNSArNDk5LDE4IEBAIG5ucGZzX2Zz
eW5jX2ludChzdHJ1Y3QgZmlsZSAqZmlsZSwgdV9pbnQNCiAgKg0KICAqLw0K
IA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LCA2LCAzNSkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMiw2LDM1KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3luYyhzdHJ1
Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBpbnQgZGF0
YXN5bmMpDQotI2Vsc2UNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDEsMCkNCiBzdGF0aWMgaW50DQogbm5wZnNfZnN5
bmMoc3RydWN0IGZpbGUgKmZpbGUsIGludCBkYXRhc3luYykNCisjZWxzZQ0K
K3N0YXRpYyBpbnQNCitubnBmc19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwg
bG9mZl90IHN0YXJ0LCBsb2ZmX3QgZW5kLCBpbnQgZGF0YXN5bmMpDQogI2Vu
ZGlmDQogew0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZF
UlNJT04oMiwgNiwgMzUpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBL
RVJORUxfVkVSU0lPTigyLDYsMzUpDQogICAgIHN0cnVjdCBkZW50cnkgKmRl
bnRyeSA9IGZpbGUtPmZfcGF0aC5kZW50cnk7DQogI2VuZGlmDQogICAgIHN0
cnVjdCBpbm9kZSAqaW5vZGUgPSBERU5UUllfVE9fSU5PREUoZGVudHJ5KTsN
CkBAIC00OTAsNiArNTE4LDggQEAgbm5wZnNfZnN5bmMoc3RydWN0IGZpbGUg
KmZpbGUsIGludCBkYXRhcw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47
DQogICAgIGludCBlcnJvciA9IDA7DQogDQorICAgICh2b2lkKW5ucGZzcDsN
CisNCiAgICAgZXJyb3IgPSBubnBmc19pbm9kZV92YWxpZChpbm9kZSk7DQog
ICAgIGlmIChlcnJvcikNCiAJcmV0dXJuIGVycm9yOw0KQEAgLTYyMiwxMSAr
NjUyLDI1IEBAIGNoZWNrX3JpZ2h0cyAobm5wZnNfcmlnaHRzIHJpZ2h0cywg
aW50IG0NCiAgKiBXZSBkb24ndCBob2xkIGlfbXV0ZXguDQogICovDQogDQor
I2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs
MzgpIHx8IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigz
LDEsMCkpDQogc3RhdGljIGludA0KIG5ucGZzX3Blcm1pc3Npb24oc3RydWN0
IGlub2RlICppbm9kZSwgaW50IG1vZGUpDQorI2Vsc2UNCitzdGF0aWMgaW50
DQorbm5wZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQg
bW9kZSwgdW5zaWduZWQgaW50IGZsYWdzKQ0KKyNlbmRpZg0KIHsNCiAgICAg
aW50IGVycm9yID0gMDsNCi0gICAgbm5wZnNfcGFnX3QgcGFnID0gbm5wZnNf
Z2V0X3BhZygpOw0KKyAgICBubnBmc19wYWdfdCBwYWc7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDEsMCkNCisgICAg
aWYgKG1vZGUgJiBNQVlfTk9UX0JMT0NLKQ0KKyAgICAgICAgcmV0dXJuIC1F
Q0hJTEQ7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9W
RVJTSU9OKDIsNiwzOCkNCisgICAgaWYgKGZsYWdzICYgSVBFUk1fRkxBR19S
Q1UpDQorICAgICAgICByZXR1cm4gLUVDSElMRDsNCisjZW5kaWYNCisNCisg
ICAgcGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICANCiAgICAgTk5QRlNE
RUIoWERFQlZOT1BTLCAoIm5ucGZzX2FjY2VzcyAoJXApIG1vZGUgPSAwJW8g
YWxpYXNlczoiLCBpbm9kZSwgbW9kZSkpOw0KICAgICBubnBmc19wcmludF9h
bGlhc2VzKGlub2RlKTsNCkBAIC03ODQsMTEgKzgyOCwxOSBAQCBubnBmc19k
YXRhX3ZhbGlkKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVfDQogaW50IG5ucGZz
X2ZpbGVfbW1hcChzdHJ1Y3QgZmlsZSAqIGZpbGUsIHN0cnVjdCB2bV9hcmVh
X3N0cnVjdCAqIHZtYSkNCiB7DQogICAgIGludCBmbGFncywgZXJyb3IgPSAw
Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDE5LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2Rl
bnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlu
b2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYN
CiAgICAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBmaWxlLT5m
X21hcHBpbmc7DQogDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBm
c19tbWFwIGlub2RlOiAlcFxuIiwgaW5vZGUpKTsNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBubnBm
c19wcmludF9wYXRoKGZpbGUtPmZfZGVudHJ5KTsNCisjZWxzZQ0KKyAgICBu
bnBmc19wcmludF9wYXRoKGZpbGUtPmZfcGF0aC5kZW50cnkpOw0KKyNlbmRp
Zg0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfbW1hcCBhbGlh
c2VzOiIpKTsNCiAgICAgbm5wZnNfcHJpbnRfYWxpYXNlcyhpbm9kZSk7DQog
ICAgIA0KQEAgLTgyMywyOCArODc1LDUxIEBAIGludCBubnBmc19maWxlX21t
YXAoc3RydWN0IGZpbGUgKiBmaWxlLCANCiAgKg0KICAqLw0KIA0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQog
c3RhdGljIHNzaXplX3QNCiBubnBmc19haW9fcmVhZChzdHJ1Y3Qga2lvY2Ig
KmlvY2IsDQogCSAgICAgICBjb25zdCBzdHJ1Y3QgaW92ZWMgKmlvdiwgdW5z
aWduZWQgbG9uZyBucl9zZWdzLA0KIAkgICAgICAgbG9mZl90IHBvcykNCisj
ZWxzZQ0KK3N0YXRpYyBzc2l6ZV90DQorbm5wZnNfcmVhZF9pdGVyKHN0cnVj
dCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICp0bykNCisjZW5kaWYN
CiB7DQogICAgIGludCBlcnJvciA9IDA7DQogICAgIHN0cnVjdCBmaWxlICpm
aWxlID0gaW9jYi0+a2lfZmlscDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxMiwwKQ0KICAgICBzc2l6ZV90IGNvdW50
ID0gaW9jYi0+a2lfbGVmdDsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTig0LDEsMCkNCisgICAgc3NpemVfdCBjb3VudCA9
IGlvY2ItPmtpX25ieXRlczsNCisjZWxzZQ0KKyAgICBzc2l6ZV90IGNvdW50
ID0gaW92X2l0ZXJfY291bnQodG8pOw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0
cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsN
CisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9w
YXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0IG5u
cGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KICAgICAN
CiAgICAgaWYgKHhuICE9IE5VTEwpDQogCU5OUEZTREVCKFhERUJWTk9QUywg
KCJubnBmc19yZWFkX2ZpbGUoJXApOiB0b2tlbnM6IDB4JXhcbiIsDQogCQkJ
ICAgICBpbm9kZSwgeG4tPnRva2VucykpOw0KIA0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQogICAgIGVycm9y
ID0gbm5wZnNfZGF0YV92YWxpZChpbm9kZSwgTk5QRlNfREFUQV9SLCBwb3Ms
IHBvcyArIGNvdW50KTsNCisjZWxzZQ0KKyAgICBlcnJvciA9IG5ucGZzX2Rh
dGFfdmFsaWQoaW5vZGUsIE5OUEZTX0RBVEFfUiwgaW9jYi0+a2lfcG9zLCBp
b2NiLT5raV9wb3MgKyBjb3VudCk7DQorI2VuZGlmDQogICAgIGlmIChlcnJv
cikgew0KIAlOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfcmVhZF9maWxl
OiBkYXRhIG5vdCB2YWxpZCAlZFxuIiwgZXJyb3IpKTsNCiAJcmV0dXJuIGVy
cm9yOw0KICAgICB9DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQogICAgIGVycm9yID0gZ2VuZXJp
Y19maWxlX2Fpb19yZWFkKGlvY2IsIGlvdiwgbnJfc2VncywgcG9zKTsNCisj
ZWxzZQ0KKyAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV9yZWFkX2l0ZXIoaW9j
YiwgdG8pOw0KKyNlbmRpZg0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgi
bm5wZnNfcmVhZF9maWxlOiBlcnJvciA9ICVkXG4iLCBlcnJvcikpOw0KICAg
ICByZXR1cm4gZXJyb3I7DQogfQ0KQEAgLTg1MywxNyArOTI4LDM2IEBAIG5u
cGZzX2Fpb19yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAgKg0KICAqLw0K
IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDE2LDApDQogc3RhdGljIHNzaXplX3QNCiBubnBmc19haW9fd3JpdGUoc3Ry
dWN0IGtpb2NiICppb2NiLA0KIAkJY29uc3Qgc3RydWN0IGlvdmVjICppb3Ys
IHVuc2lnbmVkIGxvbmcgbnJfc2VncywNCiAJCWxvZmZfdCBwb3MpDQorI2Vs
c2UNCitzdGF0aWMgc3NpemVfdA0KK25ucGZzX3dyaXRlX2l0ZXIoc3RydWN0
IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKmZyb20pDQorI2VuZGlm
DQogew0KICAgICBpbnQgZXJyb3IgPSAwOw0KICAgICBzdHJ1Y3QgZmlsZSAq
ZmlsZSA9IGlvY2ItPmtpX2ZpbHA7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkNCiAgICAgc3NpemVfdCBjb3Vu
dCA9IGlvY2ItPmtpX2xlZnQ7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oNCwxLDApDQorICAgIHNzaXplX3QgY291bnQg
PSBpb2NiLT5raV9uYnl0ZXM7DQorI2Vsc2UNCisgICAgc3NpemVfdCBjb3Vu
dCA9IGlvdl9pdGVyX2NvdW50KGZyb20pOw0KKyNlbmRpZg0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAg
IHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9k
ZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+
Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0
IG5ucGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDAp
DQogICAgIGxvZmZfdCByZWFscG9zID0gcG9zOw0KKyNlbHNlDQorICAgIGxv
ZmZfdCByZWFscG9zID0gaW9jYi0+a2lfcG9zOw0KKyNlbmRpZg0KICAgICAN
CiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2Fpb193cml0ZSgl
cCk6IHRva2VuczogMHgleFxuIiwNCiAJCQkgaW5vZGUsIHhuLT50b2tlbnMp
KTsNCkBAIC04NzcsNyArOTcxLDExIEBAIG5ucGZzX2Fpb193cml0ZShzdHJ1
Y3Qga2lvY2IgKmlvY2IsDQogCXJldHVybiBlcnJvcjsNCiAgICAgfQ0KIA0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2
LDApDQogICAgIGVycm9yID0gZ2VuZXJpY19maWxlX2Fpb193cml0ZShpb2Ni
LCBpb3YsIG5yX3NlZ3MsIHBvcyk7DQorI2Vsc2UNCisgICAgZXJyb3IgPSBn
ZW5lcmljX2ZpbGVfd3JpdGVfaXRlcihpb2NiLCBmcm9tKTsNCisjZW5kaWYN
CiAgICAgaWYgKCFJU19FUlJfVkFMVUUoZXJyb3IpKQ0KIAl4bi0+ZmxhZ3Mg
fD0gTk5QRlNfREFUQV9ESVJUWTsgLyogWFhYIHJhY2UgKi8NCiANCkBAIC04
ODUsOSArOTgzLDE5IEBAIG5ucGZzX2Fpb193cml0ZShzdHJ1Y3Qga2lvY2Ig
KmlvY2IsDQogICAgIHJldHVybiBlcnJvcjsNCiB9DQogDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMywwKQ0KIHN0YXRp
YyBpbnQNCiBubnBmc19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVj
dCBkZW50cnkgKmRlbnRyeSwNCiAJICAgICBpbnQgbW9kZSwgc3RydWN0IG5h
bWVpZGF0YSAqbmQpDQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMyw2LDApDQorc3RhdGljIGludA0KK25ucGZzX2NyZWF0
ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0K
KwkgICAgIHVtb2RlX3QgbW9kZSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQor
I2Vsc2UNCitzdGF0aWMgaW50DQorbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9k
ZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksDQorCSAgICAgdW1vZGVf
dCBtb2RlLCBib29sIGV4Y2wpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3Qg
bm5wZnMgKm5ucGZzcDsNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0K
QEAgLTEwMzgsOCArMTE0NiwxMyBAQCBubnBmc19yZW5hbWUgKHN0cnVjdCBp
bm9kZSAqIG9sZF9kaXIsIHN0DQogICAgIHJldHVybiBlcnJvcjsNCiB9DQog
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MywwKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19ta2RpcihzdHJ1Y3QgaW5vZGUg
KiBkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgaW50IG1vZGUpDQorI2Vs
c2UNCitzdGF0aWMgaW50DQorbm5wZnNfbWtkaXIoc3RydWN0IGlub2RlICog
ZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVtb2RlX3QgbW9kZSkNCisj
ZW5kaWYNCiB7DQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KICAgICBz
dHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAtMTI1MiwxMiArMTM2NSwyMSBA
QCBzdGF0aWMgaW50IG5ucGZzX3N5bWxpbmsoc3RydWN0IGlub2RlICpkDQog
LyoNCiAgKiBXZSBob2xkIGlfbXV0ZXguDQogICovDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEsMCkNCiBzdGF0aWMg
aW50DQogbm5wZnNfcmVhZGRpcihzdHJ1Y3QgZmlsZSAqIGZpbGUsIHZvaWQg
KiBkaXJlbnQsIGZpbGxkaXJfdCBmaWxsZGlyKQ0KKyNlbHNlDQorc3RhdGlj
IGludA0KK25ucGZzX2l0ZXJhdGUoc3RydWN0IGZpbGUgKiBmaWxlLCBzdHJ1
Y3QgZGlyX2NvbnRleHQgKmN0eCkNCisjZW5kaWYNCiB7DQogICAgIGludCBl
cnJvcjsNCiAgICAgbG9mZl90IG9mZnNldCwgYmVnaW5fb2Zmc2V0Ow0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp
DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+
ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0g
ZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAg
c3RydWN0IGlub2RlICpjYWNoZV9pbm9kZTsNCiAgICAgc3RydWN0IG5ucGZz
X25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KICAgICBjaGFy
ICpidWY7DQpAQCAtMTMyOCw2ICsxNDUwLDcgQEAgbm5wZnNfcmVhZGRpcihz
dHJ1Y3QgZmlsZSAqIGZpbGUsIHZvaWQgKg0KIAkJICAgIChpbnQpIHhkaXJl
bnQtPmRfbmFtbGVuLA0KIAkJICAgIChpbnQpIChvZmZzZXQrYmVnaW5fb2Zm
c2V0KSkpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDExLDApDQogCSAgICBpZiAoeGRpcmVudC0+ZF9maWxlbm8g
IT0gMA0KIAkJJiYgKGZpbGxkaXJfZXJyb3IgPSBmaWxsZGlyIChkaXJlbnQs
DQogCQkJCSAgICAgeGRpcmVudC0+ZF9uYW1lLA0KQEAgLTEzMzksNiArMTQ2
MiwxOCBAQCBubnBmc19yZWFkZGlyKHN0cnVjdCBmaWxlICogZmlsZSwgdm9p
ZCAqDQogCQkJICgibm5wZnNfcmVhZGRpciBmaWxsZGlyOiAlZFxuIiwgZmls
bGRpcl9lcnJvcikpOw0KIAkJYnJlYWs7DQogCSAgICB9DQorI2Vsc2UNCisJ
ICAgIGlmICh4ZGlyZW50LT5kX2ZpbGVubyAhPSAwDQorCQkmJiAoZmlsbGRp
cl9lcnJvciA9IGRpcl9lbWl0IChjdHgsDQorCQkJCSAgICAgeGRpcmVudC0+
ZF9uYW1lLA0KKwkJCQkgICAgIHhkaXJlbnQtPmRfbmFtbGVuLA0KKwkJCQkg
ICAgIHhkaXJlbnQtPmRfZmlsZW5vLA0KKwkJCQkgICAgIERUX1VOS05PV04p
KSA8IDApIHsNCisJCU5OUEZTREVCKFhERUJSRUFERElSLA0KKwkJCSAoIm5u
cGZzX3JlYWRkaXIgZmlsbGRpcjogJWRcbiIsIGZpbGxkaXJfZXJyb3IpKTsN
CisJCWJyZWFrOw0KKwkgICAgfQ0KKyNlbmRpZg0KIAkgICAgb2Zmc2V0ICs9
IHhkaXJlbnQtPmRfcmVjbGVuOw0KIA0KIAkgICAgaWYgKHhkaXJlbnQtPmRf
cmVjbGVuID09IDApIHsNCkBAIC0xMzk1LDkgKzE1MzAsMTUgQEAgbm5wZnNf
cmVhZGxpbmsgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgYw0KICAqIFdlIGRv
bid0IGhvbGQgaV9tdXRleC4NCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oNCwyLDApDQogc3RhdGljIHZvaWQg
Kg0KIG5ucGZzX2ZvbGxvd19saW5rIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnks
DQogCQkgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCitzdGF0aWMg
Y29uc3QgY2hhciAqDQorbm5wZnNfZm9sbG93X2xpbmsgKHN0cnVjdCBkZW50
cnkgKmRlbnRyeSwNCisJCSB2b2lkICoqcGFnZSkNCisjZW5kaWYNCiB7DQog
ICAgIGludCBlcnJvciA9IDA7DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUg
PSBERU5UUllfVE9fSU5PREUoZGVudHJ5KTsNCkBAIC0xNDA4LDcgKzE1NDks
MTEgQEAgbm5wZnNfZm9sbG93X2xpbmsgKHN0cnVjdCBkZW50cnkgKmRlbnRy
eQ0KICAgICBpZiAoZXJyb3IpDQogICAgICAgIHJldHVybiBFUlJfUFRSKGVy
cm9yKTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oNCwyLDApDQogICAgIHJldHVybiBwYWdlX2ZvbGxvd19saW5rX2xp
Z2h0KGRlbnRyeSwgbmQpOw0KKyNlbHNlDQorICAgIHJldHVybiBwYWdlX2Zv
bGxvd19saW5rX2xpZ2h0KGRlbnRyeSwgcGFnZSk7DQorI2VuZGlmDQogfQ0K
IA0KIC8qDQpAQCAtMTQ5MCw2ICsxNjM1LDggQEAgbm5wZnNfcmVsZWFzZV9m
aWxlIChzdHJ1Y3QgaW5vZGUgKmlub2RlLA0KICAgICBzdHJ1Y3Qgbm5wZnNf
bm9kZSAqeG47DQogICAgIGludCBlcnJvciA9IDA7DQogDQorICAgICh2b2lk
KW5ucGZzcDsNCisNCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZz
X3JlbGVhc2VfZmlsZVxuIikpOw0KIA0KICAgICBlcnJvciA9IG5ucGZzX2lu
b2RlX3ZhbGlkKGlub2RlKTsNCkBAIC0xNTIzLDggKzE2NzAsMTMgQEAgbm5w
ZnNfZmx1c2goc3RydWN0IGZpbGUgKmZpbGUsIGZsX293bmVyXw0KIHsNCiAg
ICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2ZsdXNoXG4iKSk7DQog
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTksMCkNCiAgICAgaWYgKGZpbGUgJiYgZmlsZS0+Zl9kZW50cnkgJiYgZmls
ZS0+Zl9kZW50cnktPmRfaW5vZGUpDQogCXJldHVybiBubnBmc19yZWxlYXNl
X2ZpbGUoZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUsIGZpbGUpOw0KKyNlbHNl
DQorICAgIGlmIChmaWxlICYmIGZpbGUtPmZfcGF0aC5kZW50cnkgJiYgZmls
ZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSkNCisJcmV0dXJuIG5ucGZzX3Jl
bGVhc2VfZmlsZShmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlLCBmaWxl
KTsNCisjZW5kaWYNCiAgICAgZWxzZQ0KIAlyZXR1cm4gMDsNCiB9DQpAQCAt
MTUzMywxMCArMTY4NSwyNCBAQCBubnBmc19mbHVzaChzdHJ1Y3QgZmlsZSAq
ZmlsZSwgZmxfb3duZXJfDQogICogUmV0dXJuIDEgaWYgYGRlbnRyeScgaXMg
c3RpbGwgdmFsaWQsIG90aGVyd2lzZSAwLg0KICAqLw0KIA0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCitzdGF0
aWMgaW50DQorbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRl
bnRyeSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCiBzdGF0aWMg
aW50DQotbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRy
eSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpIA0KK25ucGZzX2RfcmV2YWxpZGF0
ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVuc2lnbmVkIGludCBmbGFncykN
CisjZW5kaWYNCiB7DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBERU5U
UllfVE9fSU5PREUoZGVudHJ5KTsNCisNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFID49IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KKyAgICBpZiAoZmxhZ3Mg
JiBMT09LVVBfUkNVKQ0KKyAgICAgICAgcmV0dXJuIC1FQ0hJTEQ7DQorI2Vs
aWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwz
OCkNCisgICAgaWYgKG5kICYmIG5kLT5mbGFncyAmIExPT0tVUF9SQ1UpDQor
ICAgICAgICByZXR1cm4gLUVDSElMRDsNCisjZW5kaWYNCisNCiAgICAgTk5Q
RlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2RfcmV2YWxpZGF0ZSAlcCBcIiUu
KnNcIiAoaW5vZGUgJXApXG4iLA0KIAkJICAgICAgIGRlbnRyeSwNCiAJCSAg
ICAgICAoaW50KWRlbnRyeS0+ZF9uYW1lLmxlbiwNCkBAIC0xNTgyLDkgKzE3
NDgsMTUgQEAgbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRl
bnRyeQ0KICAgICByZXR1cm4gMDsNCiB9DQogDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiBzdGF0aWMNCiBp
bnQNCiBubnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQor
I2Vsc2UNCitzdGF0aWMNCitpbnQNCitubnBmc19kX2RlbGV0ZShjb25zdCBz
dHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQorI2VuZGlmDQogew0KICAgICBzdHJ1
Y3QgaW5vZGUgKmlub2RlOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47
DQpAQCAtMTYxNCw3ICsxNzg2LDExIEBAIG5ucGZzX3NwbGljZV9yZWFkKHN0
cnVjdCBmaWxlICpmaWxlLCBsb2YNCiAJCSAgdW5zaWduZWQgaW50IGZsYWdz
KQ0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBzdHJ1Y3Qg
aW5vZGUgKmlub2RlID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGU7DQorI2Vs
c2UNCisgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfcGF0aC5k
ZW50cnktPmRfaW5vZGU7DQorI2VuZGlmDQogICAgIHN0cnVjdCBubnBmc19u
b2RlICp4biA9IFZOT0RFX1RPX1hOT0RFKGlub2RlKTsNCiAgICAgDQogICAg
IGlmICh4biAhPSBOVUxMKQ0KQEAgLTE3MDcsNiArMTg4Myw4IEBAIG5ucGZz
X3dyaXRlX2JhY2twYWdlKHN0cnVjdCBwYWdlICpwYWdlLCANCiANCiAJaW50
IGVycm9yOw0KIAkNCisJKHZvaWQpb2Zmc2V0Ow0KKw0KIAlkbyB7DQogCQll
cnJvciA9IHBhZ2VjYWNoZV93cml0ZV9iZWdpbihiYWNrZmlsZSwgbWFwcGlu
ZywgMCwgbGVuLA0KIAkJCQkJICAgICAgQU9QX0ZMQUdfVU5JTlRFUlJVUFRJ
QkxFLA0KQEAgLTE3NDcsNiArMTkyNSw4IEBAIG5ucGZzX3JlYWRfYmFja3Bh
Z2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIHMNCiAJc3RydWN0IHBhZ2UgKmJhY2tw
YWdlOw0KIAl1bnNpZ25lZCBsb25nIG9mZnNldDsNCiANCisJKHZvaWQpb2Zm
c2V0Ow0KKw0KIAliYWNrcGFnZSA9IHJlYWRfbWFwcGluZ19wYWdlKG1hcHBp
bmcsIG4sIGJhY2tmaWxlKTsNCiAJaWYgKCFJU19FUlIoYmFja3BhZ2UpKSB7
DQogCQl3YWl0X29uX3BhZ2VfbG9ja2VkKGJhY2twYWdlKTsNCkBAIC0xODU3
LDYgKzIwMzcsNyBAQCBubnBmc193cml0ZXBhZ2Uoc3RydWN0IHBhZ2UgKnBh
Z2UsIHN0cnVjDQogfQ0KIA0KIC8qIGZyb20sIHRvIGFyZSB3aXRoaW4gcGFn
ZSAqLw0KKy8qIFhYWCBOb3RlIHRoYXQgd2hpbGUgdGhlcmUgYXJlIGEgc3lz
dGVtIHByb3ZpZGVkIHNpbXBsZV9wcmVwYXJlX3dyaXRlIHdlIGhhdmUgdG8g
aW1wbGVtZW50IHRoaXMgZnVuY3Rpb24gYmVjYXVzZSBpZiBhIHdyaXRlIGlz
IHNtYWxsZXIgdGhhbiBvbmUgcGFnZSBubnBmcyBtdXN0IGdldCB0aGUgb2xk
IGJsb2NrIGZyb20gdGhlIHNlcnZlciBmaXJzdCB0byBmaWxsIGluLiAqLw0K
IHN0YXRpYyBpbnQNCiBubnBmc19wcmVwYXJlX3dyaXRlKHN0cnVjdCBmaWxl
ICpmaWxlLCBzdHJ1Y3QgcGFnZSAqcGFnZSwgdW5zaWduZWQgZnJvbSwgdW5z
aWduZWQgdG8pDQogew0KQEAgLTE4OTQsMTEgKzIwNzUsMTcgQEAgbm5wZnNf
cHJlcGFyZV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgcw0KIA0KIAlpZiAo
bW9kc2l6ZSA+IGlfc2l6ZV9yZWFkKGlub2RlKSkgew0KIAkJaW50IGVycm9y
Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDgsMCkNCiAJCWVycm9yID0gdm10cnVuY2F0ZShpbm9kZSwgbW9kc2l6ZSk7
DQorI2Vsc2UNCisJCWVycm9yID0gaW5vZGVfbmV3c2l6ZV9vayhpbm9kZSwg
bW9kc2l6ZSk7DQorCQlpZighZXJyb3IpDQorCQkJdHJ1bmNhdGVfc2V0c2l6
ZShpbm9kZSwgbW9kc2l6ZSk7DQorI2VuZGlmDQogCQlpZiAoZXJyb3IpIHsN
CiAJCQlwcmludGsoIm5ucGZzX3ByZXBhcmVfd3JpdGU6IHRydW5jYXRlKCVs
bHUpIC0+ICVkXG4iLA0KIAkJCSAgICAgICBtb2RzaXplLCAtZXJyb3IpOw0K
LQkJCUJVRygpOyAvKiBYWFggbm90IGNvcnJlY3QgKi8NCisJCQkvKkJVRygp
OyovIC8qIFhYWCBub3QgY29ycmVjdCAqLw0KIAkJfQ0KIAl9DQogDQpAQCAt
MTkyNSw3ICsyMTEyLDcgQEAgbm5wZnNfcHJlcGFyZV93cml0ZShzdHJ1Y3Qg
ZmlsZSAqZmlsZSwgcw0KIH0NCiANCiAjaWYgTElOVVhfVkVSU0lPTl9DT0RF
ID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCi0NCisvKiBYWFggTm90ZSB0
aGF0IHdoaWxlIHRoZXJlIGFyZSBhIHN5c3RlbSBwcm92aWRlZCBzaW1wbGVf
d3JpdGVfYmVnaW4gd2UgaGF2ZSB0byBpbXBsZW1lbnQgdGhpcyBmdW5jdGlv
biBiZWNhdXNlIGlmIGEgd3JpdGUgaXMgc21hbGxlciB0aGFuIG9uZSBwYWdl
IG5ucGZzIG11c3QgZ2V0IHRoZSBvbGQgYmxvY2sgZnJvbSB0aGUgc2VydmVy
IGZpcnN0IHRvIGZpbGwgaW4uICovDQogc3RhdGljIGludA0KIG5ucGZzX3dy
aXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19z
cGFjZSAqbWFwcGluZywgbG9mZl90IHBvcywNCiB1bnNpZ25lZCBsZW4sIHVu
c2lnbmVkIGZsYWdzLCBzdHJ1Y3QgcGFnZSAqKnBhZ2VwLCB2b2lkICoqZnNk
YXRhKQ0KQEAgLTE5MzMsMjUgKzIxMjAsMzEgQEAgdW5zaWduZWQgbGVuLCB1
bnNpZ25lZCBmbGFncywgc3RydWN0IHBhZw0KIAlzdHJ1Y3QgcGFnZSAqcGFn
ZTsNCiAJcGdvZmZfdCBpbmRleDsNCiAJdW5zaWduZWQgZnJvbTsNCisJaW50
IHJldCA9IDA7DQogDQogCWluZGV4ID0gcG9zID4+IFBBR0VfQ0FDSEVfU0hJ
RlQ7DQogCWZyb20gPSBwb3MgJiAoUEFHRV9DQUNIRV9TSVpFIC0gMSk7DQog
DQotI2lmZGVmIEFPUF9GTEFHX05PRlMNCiAJcGFnZSA9IGdyYWJfY2FjaGVf
cGFnZV93cml0ZV9iZWdpbihtYXBwaW5nLCBpbmRleCwgZmxhZ3MpOw0KLSNl
bHNlDQotCXBhZ2UgPSBfX2dyYWJfY2FjaGVfcGFnZShtYXBwaW5nLCBpbmRl
eCk7DQotI2VuZGlmDQorDQogCWlmIChwYWdlID09IE5VTEwpDQotCQlyZXR1
cm4gLUVOT01FTTsNCisJICAgIHJldHVybiAtRU5PTUVNOw0KIA0KIAkqcGFn
ZXAgPSBwYWdlOw0KIA0KLQlyZXR1cm4gbm5wZnNfcHJlcGFyZV93cml0ZShm
aWxlLCBwYWdlLCBmcm9tLCBmcm9tICsgbGVuKTsNCi19DQorCXJldCA9IG5u
cGZzX3ByZXBhcmVfd3JpdGUoZmlsZSwgcGFnZSwgZnJvbSwgZnJvbSArIGxl
bik7DQogDQorCWlmIChyZXQpIHsNCisJICAgIHVubG9ja19wYWdlKHBhZ2Up
Ow0KKwkgICAgcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2UpOw0KKwl9DQorDQor
CXJldHVybiByZXQ7DQorfQ0KICNlbmRpZg0KIA0KKy8qIFhYWCB3ZSB1c2Ug
dGhlIHN5c3RlbSBwcm92aWRlZCBzaW1wbGVfY29tbWl0X3dyaXRlIGluc3Rl
YWQgc28gdGhpcyBmdW5jdGlvbiBpcyB1bnVzZWQgZm9yIG5vdyAqLw0KKyNp
ZiAwDQogc3RhdGljIGludA0KIG5ucGZzX2NvbW1pdF93cml0ZShzdHJ1Y3Qg
ZmlsZSAqZmlsZSwgc3RydWN0IHBhZ2UgKnBhZ2UsDQogCQkgICB1bnNpZ25l
ZCBmcm9tLCB1bnNpZ25lZCB0bykNCkBAIC0xOTc5LDEyICsyMTcyLDE0IEBA
IG5ucGZzX2NvbW1pdF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3QNCiAJ
a3VubWFwKHBhZ2UpOw0KICAgICB9DQogI2VuZGlmDQotICAgIA0KKyANCiAg
ICAgcmV0dXJuIDA7DQogfQ0KKyNlbmRpZg0KIA0KICNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KLQ0KKy8qIFhY
WCB3ZSB1c2UgdGhlIHN5c3RlbSBwcm92aWRlZCBzaW1wbGVfd3JpdGVfZW5k
IGluc3RlYWQgc28gdGhpcyBmdW5jdGlvbiBpcyB1bnVzZWQgZm9yIG5vdyAq
Lw0KKyNpZiAwDQogc3RhdGljIGludA0KIG5ucGZzX3dyaXRlX2VuZChzdHJ1
Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcs
IGxvZmZfdCBwb3MsDQogCQl1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGll
ZCwgc3RydWN0IHBhZ2UgKnBhZ2UsIHZvaWQgKmZzZGF0YSkNCkBAIC0xOTkz
LDEwICsyMTg4LDE4IEBAIG5ucGZzX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAq
ZmlsZSwgc3RydWMNCiANCiAJLyogemVybyB0aGUgc3RhbGUgcGFydCBvZiB0
aGUgcGFnZSBpZiB3ZSBkaWQgYSBzaG9ydCBjb3B5ICovDQogCWlmIChjb3Bp
ZWQgPCBsZW4pIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMyw2LDApDQogCQl2b2lkICprYWRkciA9IGttYXBfYXRvbWlj
KHBhZ2UsIEtNX1VTRVIwKTsNCisjZWxzZQ0KKwkJdm9pZCAqa2FkZHIgPSBr
bWFwX2F0b21pYyhwYWdlKTsNCisjZW5kaWYNCiAJCW1lbXNldChrYWRkciAr
IGZyb20gKyBjb3BpZWQsIDAsIGxlbiAtIGNvcGllZCk7DQogCQlmbHVzaF9k
Y2FjaGVfcGFnZShwYWdlKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMyw2LDApDQogCQlrdW5tYXBfYXRvbWljKGthZGRy
LCBLTV9VU0VSMCk7DQorI2Vsc2UNCisJCWt1bm1hcF9hdG9taWMoa2FkZHIp
Ow0KKyNlbmRpZg0KIAl9DQogDQogCW5ucGZzX2NvbW1pdF93cml0ZShmaWxl
LCBwYWdlLCBmcm9tLCBmcm9tICsgY29waWVkKTsNCkBAIC0yMDA2LDcgKzIy
MDksNyBAQCBubnBmc193cml0ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsIHN0
cnVjDQogDQogCXJldHVybiBjb3BpZWQ7DQogfQ0KLQ0KKyNlbmRpZg0KICNl
bmRpZg0KIA0KIGNvbnN0DQpAQCAtMjAxNSwxMCArMjIxOCwxMCBAQCBzdHJ1
Y3QgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25zIG5ucGZzX2FvDQogCS53cml0
ZXBhZ2UgPSBubnBmc193cml0ZXBhZ2UsDQogI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJLnByZXBhcmVfd3Jp
dGUgPSBubnBmc19wcmVwYXJlX3dyaXRlLA0KLQkuY29tbWl0X3dyaXRlID0g
bm5wZnNfY29tbWl0X3dyaXRlLA0KKwkuY29tbWl0X3dyaXRlID0gc2ltcGxl
X2NvbW1pdF93cml0ZSwNCiAjZWxzZQ0KIAkud3JpdGVfYmVnaW4gPSBubnBm
c193cml0ZV9iZWdpbiwNCi0JLndyaXRlX2VuZCA9IG5ucGZzX3dyaXRlX2Vu
ZCwNCisJLndyaXRlX2VuZCA9IHNpbXBsZV93cml0ZV9lbmQsDQogI2VuZGlm
DQogfTsNCiANCkBAIC0yMDI3LDggKzIyMzAsMTMgQEAgc3RydWN0IGFkZHJl
c3Nfc3BhY2Vfb3BlcmF0aW9ucyBubnBmc19hbw0KICAqLw0KIA0KIHN0cnVj
dCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZmlsZV9vcGVyYXRpb25zID0gew0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2
LDApDQogICAgIC5haW9fcmVhZAk9IG5ucGZzX2Fpb19yZWFkLA0KICAgICAu
YWlvX3dyaXRlCT0gbm5wZnNfYWlvX3dyaXRlLA0KKyNlbHNlDQorICAgIC5y
ZWFkX2l0ZXIJPSBubnBmc19yZWFkX2l0ZXIsDQorICAgIC53cml0ZV9pdGVy
CT0gbm5wZnNfd3JpdGVfaXRlciwNCisjZW5kaWYNCiAgICAgLm1tYXAJPSBu
bnBmc19maWxlX21tYXAsDQogICAgIC5vcGVuCT0gbm5wZnNfb3BlbiwNCiAg
ICAgLmZsdXNoCT0gbm5wZnNfZmx1c2gsDQpAQCAtMjA0MSw3ICsyMjQ5LDEx
IEBAIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZGVhZF9vcGVyYXQN
CiB9Ow0KIA0KIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZGlyX29w
ZXJhdGlvbnMgPSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMTEsMCkNCiAgICAgLnJlYWRkaXIJPSBubnBmc19yZWFk
ZGlyLA0KKyNlbHNlDQorICAgIC5pdGVyYXRlICAgID0gbm5wZnNfaXRlcmF0
ZSwNCisjZW5kaWYNCiAgICAgLmZsdXNoCT0gbm5wZnNfZmx1c2gsDQogfTsN
CiANCmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS1jdnMtb2xkL25ucGZzL2xp
bnV4L25ucGZzX2xvYWQuYyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX2xvYWQu
Yw0KLS0tIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc19sb2FkLmMJ
MjAwNi0xMC0zMSAxMTowMjo0MS4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxh
L25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYwkyMDE2LTAxLTEzIDIwOjE0OjAy
LjAwMDAwMDAwMCArMDEwMA0KQEAgLTU0LDcgKzU0LDExIEBAIGV4dGVybiBz
dHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2ZvcHMNCiANCiBzdHJ1Y3Qg
ZmlsZV9zeXN0ZW1fdHlwZSBubnBmc19mc190eXBlID0gew0KICAgICAgICBu
YW1lOiAgICAgICAgICAgIm5ucGZzIiwNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICAgICAgICBnZXRfc2I6
ICAgICAgICAgbm5wZnNfZ2V0X3NiLA0KKyNlbHNlDQorICAgICAgIG1vdW50
OiAgICAgICAgICBubnBmc19tb3VudCwNCisjZW5kaWYNCiAgICAgICAga2ls
bF9zYjogICAgICAgIGtpbGxfbGl0dGVyX3N1cGVyLA0KICAgICAgICBvd25l
cjogICAgICAgICAgVEhJU19NT0RVTEUsDQogfTsNCmRpZmYgLXVwck4gLVhu
b2RpZmYgYXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2Uu
YyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYw0KLS0tIGFybGEt
Y3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAxMC0wOC0w
OCAyMjo0MzowNS4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhL25ucGZzL2xp
bnV4L25ucGZzX21lc3NhZ2UuYwkyMDE2LTAxLTI0IDE4OjUyOjI4LjAwMDAw
MDAwMCArMDEwMA0KQEAgLTU1LDkgKzU1LDE1IEBAIHN0YXRpYyB2b2lkDQog
bm5wZnNfZF9yZW1vdmUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KIHsNCiAg
ICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBmc19kX3JlbW92ZSAlcFxuIiwg
ZGVudHJ5KSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDIsNiwzOCkNCiAgICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7
DQogICAgIGRnZXRfbG9ja2VkKGRlbnRyeSk7DQogICAgIHNwaW5fdW5sb2Nr
KCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAgc3Bpbl9sb2NrKCZkZW50
cnktPmRfbG9jayk7DQorICAgIGRnZXRfZGxvY2soZGVudHJ5KTsNCisgICAg
c3Bpbl91bmxvY2soJmRlbnRyeS0+ZF9sb2NrKTsNCisjZW5kaWYNCiAgICAg
ZF9kcm9wKGRlbnRyeSk7DQogICAgIGRwdXQoZGVudHJ5KTsNCiB9DQpAQCAt
MTIxLDcgKzEyNywxMSBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxub2RlKHN0
cnVjdCBubnBmcyAqDQogICAgIHN0cnVjdCBpbm9kZSAqZGksICppbm9kZTsN
CiAgICAgc3RydWN0IGRlbnRyeSAqcGFyZW50ID0gTlVMTDsNCiAgICAgc3Ry
dWN0IHFzdHIgc3FzdHI7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICph
bGlhczsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDksMCkNCisgICAgc3RydWN0IGhsaXN0X25vZGUgKmFsaWFzOw0K
KyNlbmRpZg0KICAgICANCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBm
c19tZXNzYWdlX2luc3RhbGxub2RlXG4iKSk7DQogICAgIA0KQEAgLTE3Niwx
MiArMTg2LDI2IEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGUoc3RydWN0
IG5ucGZzICoNCiAgICAgICoNCiAgICAgICovDQogICAgIA0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAg
YWxpYXMgPSBkaS0+aV9kZW50cnkubmV4dDsNCiAgICAgd2hpbGUgKGFsaWFz
ICE9ICZkaS0+aV9kZW50cnkpIHsNCiAJcGFyZW50ID0gbGlzdF9lbnRyeShh
bGlhcywgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQotCXNwaW5fbG9jaygm
ZGNhY2hlX2xvY2spOw0KLQlkZ2V0X2xvY2tlZChwYXJlbnQpOw0KLQlzcGlu
X3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3Jf
ZWFjaF9lbnRyeShwYXJlbnQsIGFsaWFzLCAmZGktPmlfZGVudHJ5LCBkX2Fs
aWFzKSB7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShwYXJl
bnQsICZkaS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisjZWxzZQ0KKyAgICBo
bGlzdF9mb3JfZWFjaF9lbnRyeShwYXJlbnQsICZkaS0+aV9kZW50cnksIGRf
dS5kX2FsaWFzKSB7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCisgICAgc3Bpbl9sb2NrKCZk
Y2FjaGVfbG9jayk7DQorICAgIGRnZXRfbG9ja2VkKHBhcmVudCk7DQorICAg
IHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAgc3Bp
bl9sb2NrKCZwYXJlbnQtPmRfbG9jayk7DQorICAgIGRnZXRfZGxvY2socGFy
ZW50KTsNCisgICAgc3Bpbl91bmxvY2soJnBhcmVudC0+ZF9sb2NrKTsNCisj
ZW5kaWYNCiAJZGVudHJ5ID0gZF9sb29rdXAocGFyZW50LCAmc3FzdHIpOw0K
IAlOTlBGU0RFQihYREVCTVNHLA0KIAkJICgibm5wZnNfbWVzc2FnZV9pbnN0
YWxsbm9kZTogYWxpYXMgJXAsIGxvb2t1cCAlcFxuIiwNCkBAIC0yMzMsNyAr
MjU3LDkgQEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZShzdHJ1Y3Qgbm5w
ZnMgKg0KIAkNCiAJZHB1dChkZW50cnkpOw0KIAlkZW50cnkgPSBOVUxMOw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs
MCkNCiAJYWxpYXMgPSBhbGlhcy0+bmV4dDsNCisjZW5kaWYNCiAJZHB1dChw
YXJlbnQpOw0KICAgICB9DQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5w
ZnNfbWVzc2FnZV9pbnN0YWxsbm9kZTogZG9uZSBpbnN0YWxsaW5nXG4iKSk7
DQpAQCAtMjY4LDcgKzI5NCwxMyBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxh
dHRyKHN0cnVjdCBubnBmcyAqDQogICAgIH0NCiANCiAgICAgaW5vZGUgPSBY
Tk9ERV9UT19WTk9ERSh0KTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIGRlbnRyeSA9IGxpc3RfZW50
cnkoaW5vZGUtPmlfZGVudHJ5Lm5leHQsIHN0cnVjdCBkZW50cnksIGRfYWxp
YXMpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsMTksMCkNCisgICAgZGVudHJ5ID0gaGxpc3RfZW50cnkoaW5vZGUt
PmlfZGVudHJ5LmZpcnN0LCBzdHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisj
ZWxzZQ0KKyAgICBkZW50cnkgPSBobGlzdF9lbnRyeShpbm9kZS0+aV9kZW50
cnkuZmlyc3QsIHN0cnVjdCBkZW50cnksIGRfdS5kX2FsaWFzKTsNCisjZW5k
aWYNCiAgICAgDQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfbWVz
c2FnZV9pbnN0YWxsYXR0ciBuYW1lOiVzXG4iLA0KIAkJICAgICAgIGRlbnRy
eS0+ZF9uYW1lLm5hbWUpKTsNCkBAIC0zOTYsMTcgKzQyOCwzNSBAQCBubnBm
c19tZXNzYWdlX2luc3RhbGxkYXRhKHN0cnVjdCBubnBmcyAqDQogc3RhdGlj
IHZvaWQNCiBjbGVhcl9hbGxfY2hpbGRyZW4gKHN0cnVjdCBpbm9kZSAqaW5v
ZGUsIGludCBwYXJlbnQpDQogew0KKyAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50
cnk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsNiwwKQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICphbGlhczsNCisjZWxp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkN
CisgICAgc3RydWN0IGhsaXN0X25vZGUgKmFsaWFzOw0KKyNlbmRpZg0KIA0K
ICBhZ2FpbjoNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMiw2LDM4KQ0KICAgICBzcGluX2xvY2soJmRjYWNoZV9sb2NrKTsN
CisjZWxzZQ0KKyAgICBzcGluX2xvY2soJmlub2RlLT5pX2xvY2spOw0KKyNl
bmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDYsMCkNCiAgICAgYWxpYXMgPSBpbm9kZS0+aV9kZW50cnkubmV4dDsN
CiAgICAgd2hpbGUgKGFsaWFzICE9ICZpbm9kZS0+aV9kZW50cnkpIHsNCi0J
c3RydWN0IGRlbnRyeSAqZGVudHJ5Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3Jf
ZWFjaF9lbnRyeShkZW50cnksIGFsaWFzLCAmaW5vZGUtPmlfZGVudHJ5LCBk
X2FsaWFzKSB7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShk
ZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisjZWxzZQ0K
KyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9k
ZW50cnksIGRfdS5kX2FsaWFzKSB7DQorI2VuZGlmDQogCXN0cnVjdCBsaXN0
X2hlYWQgKnN1YmRpcnM7DQogCXN0cnVjdCBubnBmc19kZW50cnlfZGF0YSAq
eGQ7DQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDYsMCkNCiAJZGVudHJ5ID0gbGlzdF9lbnRyeShhbGlhcywgc3Ry
dWN0IGRlbnRyeSwgZF9hbGlhcyk7DQorI2VuZGlmDQogCWlmIChkZW50cnkg
PT0gTlVMTCkgew0KIAkgICAgcHJpbnRrKEtFUk5fRU1FUkcgIk5OUEZTIFBh
bmljOiBkZW50cnkgaW4gYWxpYXMgbGlzdCBpcyBudWxsXG4iKTsNCiAJICAg
IGJyZWFrOw0KQEAgLTQyMiw3ICs0NzIsMTEgQEAgY2xlYXJfYWxsX2NoaWxk
cmVuIChzdHJ1Y3QgaW5vZGUgKmlub2RlLA0KIAlzdWJkaXJzID0gZGVudHJ5
LT5kX3N1YmRpcnMubmV4dDsNCiAJd2hpbGUgKHN1YmRpcnMgIT0gJmRlbnRy
eS0+ZF9zdWJkaXJzKSB7DQogCSAgICBzdHJ1Y3QgbGlzdF9oZWFkICp0bXAg
PSBzdWJkaXJzOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDE5LDApDQogCSAgICBzdHJ1Y3QgZGVudHJ5ICpjaGlsZCA9
IGxpc3RfZW50cnkodG1wLCBzdHJ1Y3QgZGVudHJ5LCBkX3UuZF9jaGlsZCk7
DQorI2Vsc2UNCisJICAgIHN0cnVjdCBkZW50cnkgKmNoaWxkID0gbGlzdF9l
bnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRfY2hpbGQpOw0KKyNlbmRpZg0K
IAkgICAgc3ViZGlycyA9IHRtcC0+bmV4dDsNCiAJICAgIE5OUEZTREVCKFhE
RUJNU0csICgiY2xlYXJfYWxsX2NoaWxkcmVuIGNoaWxkOiAlLipzIGlub2Rl
OiAlcC8lcCAiDQogCQkJICAgICAgICJkY291bnQ6ICVkIGFsaWFzZXM6XG4i
LA0KQEAgLTQ0MiwxNCArNDk2LDI0IEBAIGNsZWFyX2FsbF9jaGlsZHJlbiAo
c3RydWN0IGlub2RlICppbm9kZSwNCiANCiAJICAgIC8qIFRocm93IGltbWVk
aWF0ZWx5ICovDQogCSAgICBpZiAobm5wZnNfZGNvdW50KGNoaWxkKSA9PSAw
KSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDIsNiwzOCkNCiAJICAgICAgICBzcGluX3VubG9jaygmZGNhY2hlX2xvY2sp
Ow0KKyNlbHNlDQorCSAgICAgICAgc3Bpbl91bmxvY2soJmlub2RlLT5pX2xv
Y2spOw0KKyNlbmRpZg0KIAkJbm5wZnNfZF9yZW1vdmUoY2hpbGQpOw0KIAkJ
Z290byBhZ2FpbjsNCiAJICAgIH0NCiAJfQ0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAJYWxpYXMgPSBhbGlh
cy0+bmV4dDsNCisjZW5kaWYNCiAgICAgfQ0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQogICAgIHNwaW5fdW5s
b2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAgc3Bpbl91bmxvY2so
Jmlub2RlLT5pX2xvY2spOw0KKyNlbmRpZg0KIH0NCiANCiBzdGF0aWMgdm9p
ZA0KQEAgLTcxOSwxMiArNzgzLDIyIEBAIG5ucGZzX21lc3NhZ2VfdmVyc2lv
bihzdHJ1Y3Qgbm5wZnMgKm5ucGYNCiANCiAgICAgLyogc2FuaXR5IGNoZWNr
IGJlZm9yZSB3ZSBsb29rIGF0IGl0ICovDQogICAgIGlmIChzaXplID09IHNp
emVvZigqbWVzc2FnZSkgJiYgbWVzc2FnZS0+dmVyc2lvbiA9PSBOTlBGU19W
RVJTSU9OKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTksMCkNCiAJc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxz
ZQ0KKwlzdHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KIAlpbnQgZXJyb3I7
DQogDQogCXVpbnQ2NF90IGJsb2Nrc2l6ZSA9IG1lc3NhZ2UtPmJsb2Nrc2l6
ZTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMiw2LDM5KQ0KIAllcnJvciA9IHBhdGhfbG9va3VwKCIuIiwgMCwgJm5k
KTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDE5LDApDQorCWVycm9yID0ga2Vybl9wYXRoKCIuIiwgMCwgJm5kLnBh
dGgpOw0KKyNlbHNlDQorCWVycm9yID0ga2Vybl9wYXRoKCIuIiwgMCwgJnBh
dGgpOw0KKyNlbmRpZg0KIAlpZiAoZXJyb3IpIHsNCiAJICAgIC8qDQogCSAg
ICAgKiBCYWQgY2FjaGUgcm9vdCwganVzdCByZXR1cm4uDQpAQCAtNzM1LDEx
ICs4MDksMTcgQEAgbm5wZnNfbWVzc2FnZV92ZXJzaW9uKHN0cnVjdCBubnBm
cyAqbm5wZg0KIAkJICAgIm5ucGZzX21lc3NhZ2VfdmVyc2lvbiBmYWlsZWQg
cGF0aF9sb29rdXAsICINCiAJCSAgICJlcnJubzogJWRcbiIsIGVycm9yKTsN
CiAJfSBlbHNlIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxOSwwKQ0KIAkgICAgbm5wZnNwLT5jYWNoZXJvb3QgPSBt
bnRnZXQobmQucGF0aC5tbnQpOw0KIAkgICAgbm5wZnNwLT5jYWNoZWRpciA9
IGRnZXQobmQucGF0aC5kZW50cnkpOw0KIAkgICAgcGF0aF9wdXQoJm5kLnBh
dGgpOw0KKyNlbHNlDQorCSAgICBubnBmc3AtPmNhY2hlcm9vdCA9IG1udGdl
dChwYXRoLm1udCk7DQorCSAgICBubnBmc3AtPmNhY2hlZGlyID0gZGdldChw
YXRoLmRlbnRyeSk7DQorCSAgICBwYXRoX3B1dCgmcGF0aCk7DQorI2VuZGlm
DQogCSAgICANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9W
RVJTSU9OKDIsNiwyOCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMiw2LDI5KQ0KIAkgICAgbm5wZnNwLT51aWQgPSBjdXJy
ZW50LT5mc3VpZDsNCiAJICAgIG5ucGZzcC0+Z2lkID0gY3VycmVudC0+ZnNn
aWQ7DQogI2Vsc2UNCmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS1jdnMtb2xk
L25ucGZzL2xpbnV4L25ucGZzX25vZGUuYyBhcmxhL25ucGZzL2xpbnV4L25u
cGZzX25vZGUuYw0KLS0tIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBm
c19ub2RlLmMJMjAwNy0wMS0wMyAxNDo1MjowMi4wMDAwMDAwMDAgKzAxMDAN
CisrKyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX25vZGUuYwkyMDE2LTAxLTE0
IDE2OjUxOjExLjAwMDAwMDAwMCArMDEwMA0KQEAgLTEzMiw3ICsxMzIsMTIg
QEAgbm5wZnNfc2V0c2l6ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1aW50Ng0K
IAlwcmludGsoIm5ucGZzX3NldHNpemU6IHRydW5jYXRpbmcgQDB4JWxsdVxu
IiwNCiAJICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpc2l6ZSk7DQogI2Vu
ZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsOCwwKQ0KIAl2bXRydW5jYXRlKGlub2RlLCBzaXplKTsgLyogWFhYIHJl
dHZhbCAqLw0KKyNlbHNlDQorCWlmKCFpbm9kZV9uZXdzaXplX29rKGlub2Rl
LCBzaXplKSkNCisJICAgIHRydW5jYXRlX3NldHNpemUoaW5vZGUsIHNpemUp
Ow0KKyNlbmRpZg0KIAlubnBmc19ibG9ja190cnVuY2F0ZSh4biwgc2l6ZSk7
DQogICAgIH0NCiB9DQpAQCAtMTUwLDkgKzE1NSwxOCBAQCBubnBmc19hdHRy
Mmlub2RlKGNvbnN0IHN0cnVjdCBubnBmc19hdHRyDQogCXN0cnVjdCB0aW1l
c3BlYyBub3RpbWUgPSB7MH07DQogDQogCWlub2RlLT5pX21vZGUgICA9IDA7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTQsMCkNCiAJaW5vZGUtPmlfdWlkICAgID0gMDsNCiAJaW5vZGUtPmlfZ2lk
ICAgID0gMDsNCisjZWxzZQ0KKwlpbm9kZS0+aV91aWQgICAgPSBLVUlEVF9J
TklUKDApOw0KKwlpbm9kZS0+aV9naWQgICAgPSBLR0lEVF9JTklUKDApOw0K
KyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDIsMCkNCiAJaW5vZGUtPmlfbmxpbmsgID0gMTsNCisjZWxzZQ0K
KwlzZXRfbmxpbmsoaW5vZGUsIDEpOw0KKyNlbmRpZg0KIAlpbm9kZS0+aV9h
dGltZSAgPSBub3RpbWU7DQogCWlub2RlLT5pX210aW1lICA9IG5vdGltZTsN
CiAJaW5vZGUtPmlfY3RpbWUgID0gbm90aW1lOw0KQEAgLTE2OSw3ICsxODMs
MTEgQEAgbm5wZnNfYXR0cjJpbm9kZShjb25zdCBzdHJ1Y3Qgbm5wZnNfYXR0
cg0KICAgICBpZiAoWEFfVkFMSURfR0lEKGF0dHIpKQ0KIAlpbm9kZS0+aV9n
aWQgICAgPSBhdHRyLT54YV9naWQ7DQogICAgIGlmIChYQV9WQUxJRF9OTElO
SyhhdHRyKSkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywyLDApDQogCWlub2RlLT5pX25saW5rICA9IGF0dHItPnhhX25s
aW5rOw0KKyNlbHNlDQorCXNldF9ubGluayhpbm9kZSwgYXR0ci0+eGFfbmxp
bmspOw0KKyNlbmRpZg0KICAgICANCiAgICAgaWYgKFhBX1ZBTElEX1NJWkUo
YXR0cikpIHsNCiAJbm5wZnNfc2V0c2l6ZShpbm9kZSwgYXR0ci0+eGFfc2l6
ZSk7DQpAQCAtNTEwLDEyICs1MjgsMjQgQEAgbm5wZnNfaGFzX3BhZyhjb25z
dCBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeA0KIGludA0KIG5ucGZzX25vZGVfdXNl
cnMoc3RydWN0IGlub2RlICppbm9kZSkNCiB7DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBzdHJ1Y3Qg
bGlzdF9oZWFkICpwb3M7DQorI2Vsc2UNCisgICAgc3RydWN0IGhsaXN0X25v
ZGUgKnBvczsNCisjZW5kaWYNCiAgICAgaW50IHVzZXJzID0gMDsNCiAgICAg
DQogICAgIC8qIFhYWCB0aGlzIHNob3VsZCBwcm9iYWJseSBiZSBwcm90ZWN0
ZWQgc29tZWhvdyAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDYsMCkNCiAgICAgbGlzdF9mb3JfZWFjaChwb3MsICZp
bm9kZS0+aV9kZW50cnkpIHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFj
aChwb3MsICZpbm9kZS0+aV9kZW50cnkpIHsNCisjZW5kaWYNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAlz
dHJ1Y3QgZGVudHJ5ICpkZW50cnkgPSBsaXN0X2VudHJ5KHBvcywgc3RydWN0
IGRlbnRyeSwgZF9hbGlhcyk7DQorI2Vsc2UNCisJc3RydWN0IGRlbnRyeSAq
ZGVudHJ5ID0gbGlzdF9lbnRyeShwb3MsIHN0cnVjdCBkZW50cnksIGRfdS5k
X2FsaWFzKTsNCisjZW5kaWYNCiAJaWYgKG5ucGZzX2Rjb3VudChkZW50cnkp
ID4gMSkNCiAJICAgIHVzZXJzKys7DQogICAgIH0NCmRpZmYgLXVwck4gLVhu
b2RpZmYgYXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxz
LmMgYXJsYS9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy5jDQotLS0gYXJs
YS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMJMjAxMC0w
OC0wOCAyMjo0MzowNi4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhL25ucGZz
L2xpbnV4L25ucGZzX3N5c2NhbGxzLmMJMjAxNi0wMS0xNCAxNzowMDoyMC4w
MDAwMDAwMDAgKzAxMDANCkBAIC00Miw3ICs0Miw5IEBADQogI2luY2x1ZGUg
PG5ucGZzL25ucGZzX3N5c2NhbGxzLmg+DQogI2luY2x1ZGUgPG5ucGZzL25u
cGZzX2NvbW1vbi5oPg0KICNpbmNsdWRlIDxsaW51eC9maWxlLmg+DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkN
CiAjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4NCisjZW5kaWYNCiAjaW5j
bHVkZSA8bGludXgvc21wLmg+DQogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMu
aD4NCiANCkBAIC01MCw2ICs1MiwxMSBAQA0KICNpbmNsdWRlIDxsaW51eC9z
ZWN1cml0eS5oPg0KICNlbmRpZg0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPj0gS0VSTkVMX1ZFUlNJT04oMyw3LDApDQorI3VuZGVmIFNZU0NBTExI
QUNLDQorLyogdGhlIG1ldGhvZCB0byByZWFkICdsb3dlcl9ib3VuZCcgZG9l
cyBub3Qgd29yayBvbiBrZXJuZWwgMy43IGFuZCBsYXRlciwgc2Ugbm5wZnNf
c3lzY2FsbHMtbG9zc2FnZS5jICovDQorI2VuZGlmDQorDQogI2lmIDANCiAj
aWZkZWYgQ09ORklHX0NPTVBBVA0KICNpbmNsdWRlIDxsaW51eC9pb2N0bDMy
Lmg+DQpAQCAtODIsMTIgKzg5LDIyIEBAIHR5cGVkZWYgc3RydWN0IGFmc3By
b2NkYXRhIHsNCiAgICAgdW5zaWduZWQgbG9uZyBzeXNjYWxsOw0KIH0gYWZz
cHJvY2RhdGE7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDIsNiwzNikNCiBzdGF0aWMgaW50DQogbm5wZnNfcHJvY2Zz
X2lvY3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxl
LA0KIAkJICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcp
Ow0KKyNlbHNlDQorc3RhdGljIGxvbmcNCitubnBmc19wcm9jZnNfaW9jdGwo
c3RydWN0IGZpbGUgKmZpbGUsDQorCQkgICB1bnNpZ25lZCBpbnQgY21kLCB1
bnNpZ25lZCBsb25nIGFyZyk7DQorI2VuZGlmDQogDQogc3RhdGljIHN0cnVj
dCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfcHJvY2ZzX2ZvcHMgPSB7DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikN
CiAgICAgLmlvY3RsID0gbm5wZnNfcHJvY2ZzX2lvY3RsLA0KKyNlbHNlDQor
ICAgIC51bmxvY2tlZF9pb2N0bCA9IG5ucGZzX3Byb2Nmc19pb2N0bCwNCisj
ZW5kaWYNCiB9Ow0KIA0KIA0KQEAgLTE2MCw4ICsxNzcsMTAgQEAgbm5wZnNf
Z2V0X3BhZ19zZWModm9pZCkNCiANCiAjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgcmV0dXJuIGN1cnJl
bnQtPnVpZDsNCi0jZWxzZQ0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAgICAgcmV0dXJuIGN1cnJlbnRf
dWlkKCk7DQorI2Vsc2UNCisgICAgeyBrdWlkX3Qga3VpZCA9IGN1cnJlbnRf
dWlkKCk7IHJldHVybiBrdWlkLnZhbDsgfQ0KICNlbmRpZg0KIH0NCiANCkBA
IC0xOTksNyArMjE4LDEyIEBAIGZpbmRfcGFnKHN0cnVjdCBncm91cF9pbmZv
ICpnaSkNCiAgICAgTk5QRlNERUIoWERFQlNZUywgKCJmaW5kX3BhZzogbmdy
b3VwcyA9ICVkXG4iLCBnaS0+bmdyb3VwcykpOw0KIA0KICAgICBmb3IgKGkg
PSBnaS0+bmdyb3VwcyAtIDE7IGkgPj0gMDsgaS0tKSB7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAJZ2lk
X3QgZ3JvdXAgPSBHUk9VUF9BVChnaSwgaSk7DQorI2Vsc2UNCisJa2dpZF90
IGtncm91cCA9IEdST1VQX0FUKGdpLCBpKTsNCisJZ2lkX3QgZ3JvdXAgPSBr
Z3JvdXAudmFsOw0KKyNlbmRpZg0KIAlpZiAoKG5ucGZzX3BhZ190KWdyb3Vw
ID49IE5OUEZTX1BBR19MTElNICYmIChubnBmc19wYWdfdClncm91cCA8IE5O
UEZTX1BBR19VTElNKSB7DQogCSAgICBOTlBGU0RFQihYREVCU1lTLA0KIAkJ
ICAgICAoImZpbmRfcGFnOiBFeGlzdGluZyBwYWcgJXUgYXQgcG9zICV1XG4i
LCBncm91cCwgaSkpOw0KQEAgLTIyMCw3ICsyNDQsMTIgQEAgbm5wZnNfZ2V0
X3BhZ19ncm91cCh2b2lkKQ0KICAgICBubnBmc19wYWdfdCByZXQgPSBjdXJy
ZW50LT51aWQ7DQogI2Vsc2UNCiAgICAgc3RydWN0IGdyb3VwX2luZm8gKmdp
ID0gZ2V0X2N1cnJlbnRfZ3JvdXBzKCk7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAgICAgbm5wZnNfcGFn
X3QgcmV0ID0gY3VycmVudF91aWQoKTsNCisjZWxzZQ0KKyAgICBrdWlkX3Qg
a3VpZCA9IGN1cnJlbnRfdWlkKCk7DQorICAgIG5ucGZzX3BhZ190IHJldCA9
IGt1aWQudmFsOw0KKyNlbmRpZg0KICNlbmRpZg0KICAgICBpbnQgaTsNCiAN
CkBAIC0yMzAsNyArMjU5LDExIEBAIG5ucGZzX2dldF9wYWdfZ3JvdXAodm9p
ZCkNCiANCiAgICAgaSA9IGZpbmRfcGFnKGdpKTsNCiAgICAgaWYgKGkgIT0g
Tk5QRlNfUEFHX05PVEZPVU5EKQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogCXJldCA9IEdST1VQX0FUKGdp
LCBpKTsNCisjZWxzZQ0KKwl7IGtnaWRfdCBrZ2lkID0gR1JPVVBfQVQoZ2ks
IGkpOyByZXQgPSBrZ2lkLnZhbDsgfQ0KKyNlbmRpZg0KIA0KICAgICBwdXRf
Z3JvdXBfaW5mbyhnaSk7DQogDQpAQCAtMjgwLDEwICszMTMsMTcgQEAgc3Rv
cmVfcGFnKG5ucGZzX3BhZ190IHBhZ251bSkNCiAJY291bnQgLT0gTkdST1VQ
U19QRVJfQkxPQ0s7DQogICAgIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KICAgICBpZiAoZm91bmQp
DQogCUdST1VQX0FUKG5ld19naSwgaSkgPSBwYWdudW07DQogICAgIGVsc2UN
CiAJR1JPVVBfQVQobmV3X2dpLCBuZXdfZ2ktPm5ncm91cHMgLSAxKSA9IHBh
Z251bTsNCisjZWxzZQ0KKyAgICBpZiAoZm91bmQpDQorCXsga2dpZF90IGtn
aWQgPSBLR0lEVF9JTklUKHBhZ251bSk7IEdST1VQX0FUKG5ld19naSwgaSkg
PSBrZ2lkOyB9DQorICAgIGVsc2UNCisJeyBrZ2lkX3Qga2dpZCA9IEtHSURU
X0lOSVQocGFnbnVtKTsgR1JPVVBfQVQobmV3X2dpLCBuZXdfZ2ktPm5ncm91
cHMgLSAxKSA9IGtnaWQ7IH0NCisjZW5kaWYNCiAgICAgDQogICAgIHNldF9j
dXJyZW50X2dyb3VwcyhuZXdfZ2kpOw0KICAgICBwdXRfZ3JvdXBfaW5mbyhu
ZXdfZ2kpOw0KQEAgLTMyNSw4ICszNjUsMTAgQEAgbm5wZnNfZ2V0X3BhZygp
DQogDQogI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lP
TigyLDYsMjgpDQogICAgIHJldHVybiBjdXJyZW50LT51aWQ7DQotI2Vsc2UN
CisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDE0LDApDQogICAgIHJldHVybiBjdXJyZW50X3VpZCgpOw0KKyNlbHNlDQor
ICAgIHsga3VpZF90IGt1aWQgPSBjdXJyZW50X3VpZCgpOyByZXR1cm4ga3Vp
ZC52YWw7IH0NCiAjZW5kaWYNCiB9DQogDQpAQCAtNDMyLDcgKzQ3NCw3IEBA
IG5ucGZzX3NldGdyb3VwczE2IChpbnQgZ2lkc2V0c2l6ZSwgb2xkX2cNCiAj
ZW5kaWYgLyogU1lTQ0FMTEhBQ0sgKi8NCiAjZW5kaWYgLyogR1JPVVBQQUdT
ICovDQogDQotc3RydWN0IGZpbGVfaGFuZGxlIHsNCitzdHJ1Y3Qgbm5wZnNf
ZmlsZV9oYW5kbGUgew0KICAgICBubnBmc19kZXZfdCBkZXY7DQogICAgIGlu
b190IGlub2RlOw0KICAgICBfX3UzMiBnZW47DQpAQCAtNTE5LDE0ICs1NjEs
MjcgQEAgbm5wZnNfZGVidWdfcHJpbnQgKHN0cnVjdCBhcmxhVmljZUlvY3Rs
IA0KICAqIGZvbGxvdyBzeW1saW5rcyBpZmYgYGZvbGxvdycNCiAgKi8NCiAN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx
OSwwKQ0KIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoNCiB1c2VyX3BhdGgyZGVu
dHJ5IChzdHJ1Y3QgbmFtZWlkYXRhICpuZCwgY2hhciAqdXNlcl9wYXRoLCBp
bnQgZm9sbG93KQ0KKyNlbHNlDQorc3RhdGljIHN0cnVjdCBkZW50cnkgKg0K
K3VzZXJfcGF0aDJkZW50cnkgKHN0cnVjdCBwYXRoICpwYXRoLCBjaGFyICp1
c2VyX3BhdGgsIGludCBmb2xsb3cpDQorI2VuZGlmDQogew0KLSAgICBjaGFy
ICprbmFtZTsNCiAgICAgaW50IGZsYWdzID0gMDsNCiAgICAgaW50IGVycm9y
ID0gMDsNCiANCi0gICAga25hbWUgPSBnZXRuYW1lICh1c2VyX3BhdGgpOw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDcs
MCkNCisgICAgY2hhciAqa25hbWU7DQorICAgIGtuYW1lID0gZ2V0bmFtZSh1
c2VyX3BhdGgpOw0KKyNlbHNlDQorICAgIGNvbnN0IGNoYXIgKmtuYW1lOw0K
KyAgICBzdHJ1Y3QgZmlsZW5hbWUgKmZuYW1lOw0KKyAgICBmbmFtZSA9IGdl
dG5hbWUodXNlcl9wYXRoKTsNCisgICAga25hbWUgPSBmbmFtZS0+bmFtZTsN
CisjZW5kaWYNCisNCiAgICAgaWYgKElTX0VSUihrbmFtZSkpDQogCXJldHVy
biBFUlJfUFRSKFBUUl9FUlIoa25hbWUpKTsNCiAgICAgaWYgKGZvbGxvdykN
CkBAIC01MzQsMTEgKzU4OSwyNSBAQCB1c2VyX3BhdGgyZGVudHJ5IChzdHJ1
Y3QgbmFtZWlkYXRhICpuZCwgDQogDQogICAgIE5OUEZTREVCKFhERUJNU0cs
ICgibm5wZnNfc3lzY2FsbDogbG9va2luZyB1cDogJXNcbiIsIGtuYW1lKSk7
DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDIsNiwzOSkNCiAgICAgZXJyb3IgPSBwYXRoX2xvb2t1cChrbmFtZSwgZmxh
Z3MsIG5kKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDE5LDApDQorICAgIGVycm9yID0ga2Vybl9wYXRoKGtuYW1l
LCBmbGFncywgJihuZC0+cGF0aCkpOw0KKyNlbHNlDQorICAgIGVycm9yID0g
a2Vybl9wYXRoKGtuYW1lLCBmbGFncywgcGF0aCk7DQorI2VuZGlmDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0K
ICAgICBwdXRuYW1lKGtuYW1lKTsNCisjZWxzZQ0KKyAgICBrbWVtX2NhY2hl
X2ZyZWUobmFtZXNfY2FjaGVwLCAodm9pZCAqKWtuYW1lKTsNCisjZW5kaWYN
CiAgICAgaWYgKGVycm9yKQ0KIAlyZXR1cm4gRVJSX1BUUihlcnJvcik7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks
MCkNCiAgICAgcmV0dXJuIG5kLT5wYXRoLmRlbnRyeTsNCisjZWxzZQ0KKyAg
ICByZXR1cm4gcGF0aC0+ZGVudHJ5Ow0KKyNlbmRpZg0KIH0NCiANCiBhc21s
aW5rYWdlIGxvbmcNCkBAIC01NTMsMTMgKzYyMiwyMSBAQCBzeXNfYWZzX2lu
dCAoaW50IG9wZXJhdGlvbiwNCiAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2Vf
cGlvY3RsICptc2cgPSBOVUxMOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2Fn
ZV93YWtldXAgKm1zZzI7DQogICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeSA9
IE5VTEw7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsMTksMCkNCiAgICAgc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxz
ZQ0KKyAgICBzdHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KICAgICANCiAg
ICAgbXNnID0ga21hbGxvYyhzaXplb2YoKm1zZyksIEdGUF9LRVJORUwpOw0K
ICAgICBpZiAobXNnID09IE5VTEwpDQogICAgICAgcmV0dXJuIC1FTk9NRU07
DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDIsNiwzOSkNCiAgICAgbG9ja19rZXJuZWwoKTsNCisjZWxzZQ0KKyAgICAv
KiBUT0RPOiBsb2NrX2tlcm5lbCgpIGlzIHJlbW92ZWQsIGNvbnNpZGVyIGFk
ZGluZyBhbiBwcml2YXRlIGxvY2sgKi8NCisjZW5kaWYNCiANCiAgICAgTk5Q
RlNERUIoWERFQlNZUywgKCJzeXNfYWZzIGtlcm5lbCBsb2NrZWRcbiIpKTsN
CiANCkBAIC01OTcsNyArNjc0LDExIEBAIHN5c19hZnNfaW50IChpbnQgb3Bl
cmF0aW9uLA0KIAkgICAgfQ0KIAl9DQogCWlmIChhX3BhdGhQICE9IE5VTEwp
IHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
MywxOSwwKQ0KIAkgICAgZGVudHJ5ID0gdXNlcl9wYXRoMmRlbnRyeSAoJm5k
LCBhX3BhdGhQLCBhX2ZvbGxvd1N5bWxpbmtzKTsNCisjZWxzZQ0KKwkgICAg
ZGVudHJ5ID0gdXNlcl9wYXRoMmRlbnRyeSAoJnBhdGgsIGFfcGF0aFAsIGFf
Zm9sbG93U3ltbGlua3MpOw0KKyNlbmRpZg0KIAkgICAgaWYgKCFkZW50cnkp
IHsNCiAJCWVycm9yID0gLUVJTlZBTDsNCiAJCWdvdG8gdW5sb2NrOw0KQEAg
LTY5MywxMyArNzc0LDIxIEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9u
LA0KICAgICANCiAgdW5sb2NrOg0KICAgICBpZiAoZGVudHJ5KQ0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQog
CXBhdGhfcHV0KCZuZC5wYXRoKTsNCisjZWxzZQ0KKwlwYXRoX3B1dCgmcGF0
aCk7DQorI2VuZGlmDQogDQogICAgIE5OUEZTREVCKFhERUJTWVMsICgibm5w
ZnNfc3lzY2FsbCByZXR1cm5zIGVycm9yOiAlbGRcbiIsIGVycm9yKSk7DQog
DQogICAgIE5OUEZTREVCKFhERUJTWVMsICgic3lzX2FmcyBrZXJuZWwgdW5s
b2NrXG4iKSk7DQogICAgIGtmcmVlKG1zZyk7DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAgdW5sb2Nr
X2tlcm5lbCgpOw0KKyNlbHNlDQorICAgIC8qIFRPRE86IHNlZSB0aGUgY29t
bWVudCBhdCBsb2NrX2tlcm5lbCgpIGFib3ZlICovDQorI2VuZGlmDQogDQog
ICAgIHJldHVybiBlcnJvcjsNCiB9DQpAQCAtNzQ4LDkgKzgzNywxNSBAQCBz
eXNfYWZzIChpbnQgb3BlcmF0aW9uLA0KIAkJICAgICAgIGFfZm9sbG93U3lt
bGlua3MpOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMiw2LDM2KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19wcm9j
ZnNfaW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZp
bGUsDQogCQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFy
ZykNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNfcHJvY2ZzX2lvY3Rs
KHN0cnVjdCBmaWxlICpmaWxlLA0KKwkJICAgdW5zaWduZWQgaW50IGNtZCwg
dW5zaWduZWQgbG9uZyBhcmcpDQorI2VuZGlmDQogew0KICAgICBhZnNwcm9j
ZGF0YSBhcmdzOw0KICAgICBsb25nIHJldDsNCkBAIC04MDcsNyArOTAyLDEx
IEBAIHN0YXRpYyBpbnQgbm5wZnNfaW5pdF9wcm9jZnModm9pZCkNCiAgICAg
bm5wZnNfcHJvY2ZzX2Rpci0+b3duZXIgPSBUSElTX01PRFVMRTsNCiAjZW5k
aWYNCiAgICAgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTAsMCkNCiAgICAgZW50cnkgPSBjcmVhdGVfcHJvY19lbnRy
eShOTlBGU19QUk9DX05PREUsIDA2NjYsIG5ucGZzX3Byb2Nmc19kaXIpOw0K
KyNlbHNlDQorICAgIGVudHJ5ID0gcHJvY19jcmVhdGUoTk5QRlNfUFJPQ19O
T0RFLCAwNjY2LCBOVUxMLCAmbm5wZnNfcHJvY2ZzX2ZvcHMpOw0KKyNlbmRp
Zg0KICAgICBpZiAoZW50cnkgPT0gTlVMTCkgew0KIAlOTlBGU0RFQihYREVC
U1lTLCAoIm5ucGZzX2luaXRfcHJvY2ZzOiBubyBub2RlXG4iKSk7DQogCXJl
bW92ZV9wcm9jX2VudHJ5KCJmcy8iIE5OUEZTX1BST0NfRElSLCBOVUxMKTsN
CkBAIC04MTcsNyArOTE2LDkgQEAgc3RhdGljIGludCBubnBmc19pbml0X3By
b2Nmcyh2b2lkKQ0KICNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigyLDYsMzApDQogICAgIGVudHJ5LT5vd25lciA9IFRISVNfTU9E
VUxFOw0KICNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDEwLDApDQogICAgIGVudHJ5LT5wcm9jX2ZvcHMgPSAm
bm5wZnNfcHJvY2ZzX2ZvcHM7DQorI2VuZGlmDQogDQogI2lmZGVmIFNZU0NB
TExDT01QQVQNCiAgICAgaWYgKHJlZ2lzdGVyX2lvY3RsMzJfY29udmVyc2lv
bihBUkxBX1ZJT0NfU1lTQ0FMTDMyLCBubnBmc19wcm9jZnNfaW9jdGwzMikp
IHsNCmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS1jdnMtb2xkL25ucGZzL2xp
bnV4L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyBhcmxhL25ucGZzL2xpbnV4
L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYw0KLS0tIGFybGEtY3ZzLW9sZC9u
bnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMJMjAxMC0wOC0w
OCAyMjo0MzowNS4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhL25ucGZzL2xp
bnV4L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYwkyMDE2LTAxLTEzIDIxOjUx
OjQ5LjAwMDAwMDAwMCArMDEwMA0KQEAgLTUwLDggKzUwLDE3IEBADQogUkNT
SUQoIiRJZDogbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jLHYgMS4xOSAyMDEw
LzA4LzA4IDIwOjQzOjA1IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0KIA0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMyw3LDAp
DQorLyogdGhlIG1ldGhvZCB0byByZWFkICdsb3dlcl9ib3VuZCcgZG9lcyBu
b3Qgd29yayBvbiBrZXJuZWwgMy43IGFuZCBsYXRlciAqLw0KKyN1bmRlZiBT
WVNDQUxMSEFDSw0KKyNlbmRpZg0KKw0KICNpbmNsdWRlIDxsaW51eC9rYWxs
c3ltcy5oPg0KKyNpZmRlZiBTWVNDQUxMSEFDSw0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDcsMCkNCiBzdGF0aWMgdm9p
ZCAqbG93ZXJfYm91bmQgPSAma2VybmVsX3RocmVhZDsNCisjZW5kaWYNCisj
ZW5kaWYNCiANCiB2b2lkICogX19hdHRyaWJ1dGVfXygod2VhaykpIHN5c19j
YWxsX3RhYmxlKHZvaWQpOw0KIG5ucGZzX3N5c19jYWxsX2Z1bmN0aW9uICpu
bnBmc19zeXNfY2FsbF90YWJsZSA9DQpAQCAtNjYsNiArNzUsOCBAQCBjb25z
dCBjaGFyICogX19hdHRyaWJ1dGVfXygod2VhaykpDQogI2lmZGVmIF9feDg2
XzY0X18NCiBleHRlcm4gcndsb2NrX3QgdGFza2xpc3RfbG9jayBfX2F0dHJp
YnV0ZV9fKCh3ZWFrKSk7DQogI2VuZGlmDQorDQorI2lmZGVmIFNZU0NBTExI
QUNLDQogc3RhdGljIHZvaWQgKioNCiBnZXRfc3RhcnRfYWRkcih2b2lkKSB7
DQogI2lmZGVmIF9feDg2XzY0X18NCkBAIC03NCw2ICs4NSw3IEBAIGdldF9z
dGFydF9hZGRyKHZvaWQpIHsNCiAgICAgcmV0dXJuICh2b2lkICoqKSZtdXRl
eF9sb2NrOw0KICNlbmRpZg0KIH0NCisjZW5kaWYNCiANCiBzdGF0aWMgaW5s
aW5lIGludCANCiBrYWxsc3ltX2lzX2VxdWFsKHVuc2lnbmVkIGxvbmcgYWRk
ciwgY29uc3QgY2hhciAqbmFtZSkNCkBAIC0xNDIsNiArMTU0LDggQEAgdmVy
aWZ5KHZvaWQgKipwKSB7DQogICAgIHJldHVybiAxOw0KIH0NCiANCisjaWZk
ZWYgU1lTQ0FMTEhBQ0sNCisNCiBzdGF0aWMgaW5saW5lIGludCBsb29rc19n
b29kKHZvaWQgKipwKQ0KIHsNCiAgICAgaWYgKCpwIDw9ICh2b2lkKilsb3dl
cl9ib3VuZCB8fCAqcCA+PSAodm9pZCopcCkNCkBAIC0xOTEsMyArMjA1LDUg
QEAgbm5wZnNfZml4dXBfc3lzY2FsbF9sb3NzYWdlKHZvaWQpDQogDQogICAg
IHJldHVybiAwOw0KIH0NCisNCisjZW5kaWYNCmRpZmYgLXVwck4gLVhub2Rp
ZmYgYXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX3Zmc29wcy5jIGFy
bGEvbm5wZnMvbGludXgvbm5wZnNfdmZzb3BzLmMNCi0tLSBhcmxhLWN2cy1v
bGQvbm5wZnMvbGludXgvbm5wZnNfdmZzb3BzLmMJMjAxMC0wOC0wOCAyMjo0
MzowNi4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhL25ucGZzL2xpbnV4L25u
cGZzX3Zmc29wcy5jCTIwMTYtMDEtMTQgMTc6MTM6MTguMDAwMDAwMDAwICsw
MTAwDQpAQCAtNTAsNyArNTAsOSBAQCBSQ1NJRCgiJElkOiBubnBmc192ZnNv
cHMuYyx2IDEuMTExIDIwMTAvDQogc3RydWN0IG5ucGZzIG5ucGZzW05OTlBG
U107DQogDQogc3RhdGljIHZvaWQgbm5wZnNfcHV0X3N1cGVyKHN0cnVjdCBz
dXBlcl9ibG9jayAqc2IpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDYsMCkNCiBzdGF0aWMgdm9pZCBubnBmc193cml0
ZV9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiBzYik7DQorI2VuZGlmDQog
DQogc3RhdGljIGludCBubnBmc19zdGF0ZnMoc3RydWN0IGRlbnRyeSAqZGVu
dHJ5LCBzdHJ1Y3Qga3N0YXRmcyAqYnVmKTsNCiANCkBAIC01OSw3ICs2MSw5
IEBAIHN0YXRpYyBzdHJ1Y3Qgc3VwZXJfb3BlcmF0aW9ucyBubnBmc19zb3AN
CiAgICAgZGVzdHJveV9pbm9kZQk6IG5ucGZzX25vZGVfZnJlZSwNCiAgICAg
ZHJvcF9pbm9kZQkJOiBnZW5lcmljX2RlbGV0ZV9pbm9kZSwNCiAgICAgcHV0
X3N1cGVyCQk6IG5ucGZzX3B1dF9zdXBlciwNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHdyaXRlX3N1
cGVyCQk6IG5ucGZzX3dyaXRlX3N1cGVyLA0KKyNlbmRpZg0KICAgICBzdGF0
ZnMJCTogbm5wZnNfc3RhdGZzLA0KIH07DQogDQpAQCAtODYsNyArOTAsMTEg
QEAgbm5wZnNfZmV0Y2hfcm9vdChzdHJ1Y3QgaW5vZGUgKmkpDQogCSAqIHJv
b3QncyBwcml2aWxpZ2VzICh1c3VhbGx5IG5vbmUsIGFuZCBub25lIGlzIG5l
ZWRlZCkuDQogCSAqLw0KIAkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KIAltc2cuY3JlZC51aWQgPSAwOw0K
KyNlbHNlDQorCW1zZy5jcmVkLnVpZCA9IEtVSURUX0lOSVQoMCk7DQorI2Vu
ZGlmDQogCW1zZy5jcmVkLnBhZyA9IDA7DQogCQ0KIAllcnJvciA9IG5ucGZz
X21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cp
KTsNCkBAIC0xMjEsOCArMTI5LDEzIEBAIG1ha2Vfcm9vdF9pbm9kZShzdHJ1
Y3Qgbm5wZnMgKm5ucGZzcCkNCiAgICAgWEFfU0VUX01PREUoJm5vZGUuYXR0
ciwgU19JRkRJUiB8IDA3NzcpOw0KICAgICBYQV9TRVRfTkxJTksoJm5vZGUu
YXR0ciwgMTAwKTsNCiAgICAgWEFfU0VUX1NJWkUoJm5vZGUuYXR0ciwgMCk7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTQsMCkNCiAgICAgWEFfU0VUX1VJRCgmbm9kZS5hdHRyLCAwKTsNCiAgICAg
WEFfU0VUX0dJRCgmbm9kZS5hdHRyLCAwKTsNCisjZWxzZQ0KKyAgICBYQV9T
RVRfVUlEKCZub2RlLmF0dHIsIEtVSURUX0lOSVQoMCkpOw0KKyAgICBYQV9T
RVRfR0lEKCZub2RlLmF0dHIsIEtHSURUX0lOSVQoMCkpOw0KKyNlbmRpZg0K
ICAgICBYQV9TRVRfQVRJTUUoJm5vZGUuYXR0ciwgMCk7DQogICAgIFhBX1NF
VF9NVElNRSgmbm9kZS5hdHRyLCAwKTsNCiAgICAgWEFfU0VUX0NUSU1FKCZu
b2RlLmF0dHIsIDApOw0KQEAgLTE1MSw3ICsxNjQsMTEgQEAgbWFrZV9yb290
IChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQ0KICAgICBubnBmcy0+cm9vdCA9
IGlub2RlOw0KIA0KICAgICAvKiBYWFggZXJyb3IgaGFuZGxpbmcgKi8NCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw0LDAp
DQogICAgIGRwID0gZF9hbGxvY19yb290KGlub2RlKTsNCisjZWxzZQ0KKyAg
ICBkcCA9IGRfbWFrZV9yb290KGlub2RlKTsNCisjZW5kaWYNCiAgICAgbm5w
ZnNfZF9pbml0KGRwKTsNCiAgICAgc2ItPnNfcm9vdCA9IGRwOw0KICAgICBy
ZXR1cm4gMDsNCkBAIC0xNzUsMTMgKzE5MiwyNyBAQCBubnBmc19yZWFkX3N1
cGVyIChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiBzDQogICAgIE5OUEZTREVCKFhE
RUJWRk9QUywgKCJubnBmc19yZWFkX3N1cGVyOiBiZWdpbiBzZXR0aW5nIHZh
cmlhYmxlc1xuIikpOw0KIA0KICAgICBpZiAoZGF0YSAhPSBOVUxMKSB7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks
MCkNCiAJc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0KKwlzdHJ1Y3Qg
cGF0aCBwYXRoOw0KKyNlbmRpZg0KIAkNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KIAllcnJvciA9IHBhdGhf
bG9va3VwKGRhdGEsIDAsICZuZCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwllcnJvciA9IGtlcm5f
cGF0aChkYXRhLCAwLCAmbmQucGF0aCk7DQorI2Vsc2UNCisJZXJyb3IgPSBr
ZXJuX3BhdGgoZGF0YSwgMCwgJnBhdGgpOw0KKyNlbmRpZg0KIAlpZiAoZXJy
b3IpDQogCSAgICBkZGV2ID0gRVJSX1BUUihlcnJvcik7DQogCWVsc2UNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSww
KQ0KIAkgICAgZGRldiA9IG5kLnBhdGguZGVudHJ5Ow0KKyNlbHNlDQorCSAg
ICBkZGV2ID0gcGF0aC5kZW50cnk7DQorI2VuZGlmDQogDQogCWlmICghSVNf
RVJSKGRkZXYpKSB7DQogCSAgICBtaW5vcmRldmljZSA9IE1JTk9SKGRkZXYt
PmRfaW5vZGUtPmlfcmRldik7DQpAQCAtMjI1LDYgKzI1Niw3IEBAIG5ucGZz
X2ZpbGxfc3VwZXIgKHN0cnVjdCBzdXBlcl9ibG9jayAqc2INCiAgICAgcmV0
dXJuIDA7DQogfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigyLDYsMzkpDQogaW50DQogbm5wZnNfZ2V0X3NiKHN0cnVj
dCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBlLA0KIAkgICAgIGludCBmbGFn
cywgY29uc3QgY2hhciAqZGV2X25hbWUsDQpAQCAtMjMyLDEyICsyNjQsMjMg
QEAgbm5wZnNfZ2V0X3NiKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmcw0K
IHsNCiAgICAgcmV0dXJuIGdldF9zYl9ub2Rldihmc190eXBlLCBmbGFncywg
ZGF0YSwgbm5wZnNfZmlsbF9zdXBlciwgbW50KTsNCiB9DQorI2Vsc2UNCitz
dHJ1Y3QgZGVudHJ5Kg0KK25ucGZzX21vdW50KHN0cnVjdCBmaWxlX3N5c3Rl
bV90eXBlICpmc190eXBlLA0KKwkgICAgIGludCBmbGFncywgY29uc3QgY2hh
ciAqZGV2X25hbWUsDQorCSAgICAgdm9pZCAqZGF0YSkgDQorew0KKyAgICBy
ZXR1cm4gbW91bnRfbm9kZXYoZnNfdHlwZSwgZmxhZ3MsIGRhdGEsIG5ucGZz
X2ZpbGxfc3VwZXIpOw0KK30NCisjZW5kaWYNCiANCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogc3RhdGljIHZv
aWQNCiBubnBmc193cml0ZV9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiBz
YikNCiB7DQogICAgIHNiLT5zX2RpcnQgPSAwOw0KIH0NCisjZW5kaWYNCiAN
CiAvKg0KICAqIFhYWCBpcyB0aGlzIGdvb2Q/IA0K
---276651502-360532137-1453833425=:11904
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-360532137-1453833425=:11904--