[5083] in arla-drinkers
Re: PATCH v13: Arla 0.90 on Linux 2.6.3x to 4.5
daemon@ATHENA.MIT.EDU (Bo Branten)
Fri May 6 12:11:30 2016
From arla-drinkers-bounces@stacken.kth.se Fri May 06 16:11:30 2016
Return-Path: <arla-drinkers-bounces@stacken.kth.se>
Delivered-To: arla-drinkers-mtg@bloom-picayune.mit.edu
Received: (qmail 10968 invoked from network); 6 May 2016 16:11:29 -0000
Received: from mx5.kth.se (130.237.32.10)
by charon.mit.edu with SMTP; 6 May 2016 16:11:29 -0000
Received: from mx5.kth.se (localhost [127.0.0.1])
by mx5.kth.se (Postfix) with ESMTP id E66F224022D;
Fri, 6 May 2016 18:11:27 +0200 (CEST)
X-Virus-Scanned: by amavisd-new at kth.se
Received: from mx5.kth.se ([127.0.0.1])
by mx5.kth.se (mx5.kth.se [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id hDAJd75y5gmH; Fri, 6 May 2016 18:11:13 +0200 (CEST)
Received: from vingummi.stacken.kth.se (unknown [IPv6:2001:6b0:1:ea:211:43ff:fe35:104c])
by mx5.kth.se (Postfix) with ESMTP;
Fri, 6 May 2016 18:11:12 +0200 (CEST)
Received: from vingummi.stacken.kth.se (localhost [IPv6:::1])
by vingummi.stacken.kth.se (Postfix) with ESMTP id C2B6814CC69;
Fri, 6 May 2016 18:11:12 +0200 (CEST)
Received: by vingummi.stacken.kth.se (Postfix)
id 0094114CD02; Fri, 6 May 2016 18:11:11 +0200 (CEST)
Delivered-To: al_stacken_kth_se______________arla-drinkers@vingummi.stacken.kth.se
Received: from mx6.kth.se (mx6.kth.se [130.237.48.70])
by vingummi.stacken.kth.se (Postfix) with ESMTPS id F10CA14CADB
for <arla-drinkers@stacken.kth.se>; Fri, 6 May 2016 18:11:10 +0200 (CEST)
Received: from mx6.kth.se (localhost [127.0.0.1])
by mx6.kth.se (Postfix) with ESMTP id E3EC21C015C
for <arla-drinkers@stacken.kth.se>; Fri, 6 May 2016 18:11:10 +0200 (CEST)
X-Virus-Scanned: by amavisd-new at kth.se
X-Amavis-OS-Fingerprint: ???; dist: 8; link: Ethernet or modem; params: none;
raw_mtu: 1500; raw_sig:
4:56+8:0:1460:32850,1:mss,nop,nop,ts,nop,ws,nop,nop,sok:df,id+:0,
[130.239.18.156]:37046
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 LuPBY-FueQi8 for <arla-drinkers@stacken.kth.se>;
Fri, 6 May 2016 18:11:08 +0200 (CEST)
Received: from mail.acc.umu.se (mail.acc.umu.se [130.239.18.156])
by mx6.kth.se (Postfix) with ESMTPS
for <arla-drinkers@stacken.kth.se>; Fri, 6 May 2016 18:11:08 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
by amavisd-new (Postfix) with ESMTP id 12B4871A
for <arla-drinkers@stacken.kth.se>; Fri, 6 May 2016 18:11:07 +0200 (MEST)
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 38967718
for <arla-drinkers@stacken.kth.se>; Fri, 6 May 2016 18:11:00 +0200 (MEST)
Received: by suiko.acc.umu.se (Postfix, from userid 10005)
id 2A8BD44B8C; Fri, 6 May 2016 18:11:00 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
by suiko.acc.umu.se (Postfix) with ESMTP id 2538F44B8B
for <arla-drinkers@stacken.kth.se>; Fri, 6 May 2016 18:11:00 +0200 (CEST)
Date: Fri, 6 May 2016 18:11:00 +0200 (CEST)
From: Bo Branten <bosse@acc.umu.se>
To: arla-drinkers@stacken.kth.se
Subject: Re: PATCH v13: Arla 0.90 on Linux 2.6.3x to 4.5
In-Reply-To: <alpine.DEB.2.10.1601150307590.11672@suiko.acc.umu.se>
Message-ID: <alpine.DEB.2.10.1605061805520.25480@suiko.acc.umu.se>
References: <alpine.DEB.2.10.1601110310480.17625@suiko.acc.umu.se>
<alpine.DEB.2.10.1601150307590.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-1709114826-1462551060=:25480"
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-1709114826-1462551060=:25480
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII
PATCH v13: Arla 0.90 on Linux 2.6.3x to 4.5
Fix for Linux kernel v4.5.
Bo Branten
---276651502-1709114826-1462551060=:25480
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-v13-arla-0.90-for-linux-2.6.3x-to-4.5
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.DEB.2.10.1605061811000.25480@suiko.acc.umu.se>
Content-Description:
Content-Disposition: attachment; filename=patch-v13-arla-0.90-for-linux-2.6.3x-to-4.5
ZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xkL25ucGZzL2luY2x1
ZGUvbm5wZnMvbm5wZnNfYXR0ci5oIGFybGEtMC45MC9ubnBmcy9pbmNsdWRl
L25ucGZzL25ucGZzX2F0dHIuaA0KLS0tIGFybGEtMC45MC1vbGQvbm5wZnMv
aW5jbHVkZS9ubnBmcy9ubnBmc19hdHRyLmgJMjAwNi0xMC0yNCAxODozMzoz
MC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvaW5jbHVk
ZS9ubnBmcy9ubnBmc19hdHRyLmgJMjAxNi0wMS0yMiAxMjo1MTowNy4wMDAw
MDAwMDAgKzAxMDANCkBAIC0xMTMsOCArMTEzLDE4IEBAIHN0cnVjdCBubnBm
c19hdHRyIHsNCiAgICAgdWludDMyX3QJCXhhX25saW5rOw0KICAgICB1aW50
MzJfdAkJeGFfdHlwZTsNCiANCisjaWZuZGVmIF9fS0VSTkVMX18NCiAgICAg
dWludDMyX3QJCXhhX3VpZDsNCiAgICAgdWludDMyX3QJCXhhX2dpZDsNCisj
ZWxzZQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJ
T04oMywxNCwwKQ0KKyAgICBrdWlkX3QJCXhhX3VpZDsNCisgICAga2dpZF90
CQl4YV9naWQ7DQorI2Vsc2UNCisgICAgdWludDMyX3QJCXhhX3VpZDsNCisg
ICAgdWludDMyX3QJCXhhX2dpZDsNCisjZW5kaWYNCisjZW5kaWYNCiANCiAg
ICAgdWludDMyX3QJCXhhX2F0aW1lOw0KICAgICB1aW50MzJfdAkJeGFfbXRp
bWU7DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMv
aW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaCBhcmxhLTAuOTAvbm5wZnMv
aW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaA0KLS0tIGFybGEtMC45MC1v
bGQvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaAkyMDA2LTEw
LTI0IDE4OjMzOjMxLjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEtMC45MC9u
bnBmcy9pbmNsdWRlL25ucGZzL25ucGZzX2Jsb2Nrcy5oCTIwMDctMDEtMjQg
MTg6MDk6MTcuMDAwMDAwMDAwICswMTAwDQpAQCAtMSw1ICsxLDUgQEANCiAv
Kg0KLSAqIENvcHlyaWdodCAoYykgMjAwNS0yMDA2LCBTdG9ja2hvbG1zIFVu
aXZlcnNpdGV0DQorICogQ29weXJpZ2h0IChjKSAyMDA1LTIwMDcsIFN0b2Nr
aG9sbXMgVW5pdmVyc2l0ZXQNCiAgKiAoU3RvY2tob2xtIFVuaXZlcnNpdHks
IFN0b2NraG9sbSBTd2VkZW4pDQogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4N
CiAgKg0KQEAgLTMxLDExICszMSwxNSBAQA0KICAqIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLg0KICAqLw0KIA0KLS8qICRJZDogbm5wZnNfYmxvY2tz
LmgsdiAxLjIgMjAwNi8xMC8yNCAxNjozMzozMSB0b2wgRXhwICQgKi8NCisv
KiAkSWQ6IG5ucGZzX2Jsb2Nrcy5oLHYgMS4zIDIwMDcvMDEvMjQgMTc6MDk6
MTcgdG9sIEV4cCAkICovDQogDQogI2RlZmluZSBOTlBGU19OT19JTkRFWCAg
IDAgIC8qIGR1bW15IGNhY2hlIGluZGV4ICovDQogI2RlZmluZSBOTlBGU19O
T19PRkZTRVQgICgodWludDY0X3QpLTEpICAvKiBkdW1teSBvZmZzZXQsIG5v
IGJsb2NrICovDQogDQotI2RlZmluZSBOTlBGU19DQUNIRV9GSUxFX1BBVEgg
ICAgIiUwMlgvJTAyWC8lMDJsbFgiDQotI2RlZmluZSBOTlBGU19DQUNIRV9E
SVJfUEFUSCAgICAgIiUwMlgvJTAyWEAiDQotI2RlZmluZSBOTlBGU19DQUNI
RV9QQVRIX1NJWkUgICAgKCA2ICsxICsyKzEgKzE2ICsxKQ0KKyNkZWZpbmUg
Tk5QRlNfQ0FDSEVfRklMRV9ESVIxICAgICAgICAiJTAyeCINCisjZGVmaW5l
IE5OUEZTX0NBQ0hFX0ZJTEVfRElSX1BBVEggICAgTk5QRlNfQ0FDSEVfRklM
RV9ESVIxICIvIiBOTlBGU19DQUNIRV9GSUxFX0RJUjENCisjZGVmaW5lIE5O
UEZTX0NBQ0hFX0ZJTEVfQkxPQ0tfUEFUSCAgIiUwMmxseCINCisNCisjZGVm
aW5lIE5OUEZTX0NBQ0hFX0ZJTEVfUEFUSCAgIE5OUEZTX0NBQ0hFX0ZJTEVf
RElSX1BBVEggIi8iIE5OUEZTX0NBQ0hFX0ZJTEVfQkxPQ0tfUEFUSA0KKyNk
ZWZpbmUgTk5QRlNfQ0FDSEVfRElSX1BBVEggICAgTk5QRlNfQ0FDSEVfRklM
RV9ESVJfUEFUSCAiQCINCisjZGVmaW5lIE5OUEZTX0NBQ0hFX1BBVEhfU0la
RSAgICggNiArMSArMisxICsxNiArMSApDQpkaWZmIC11cHJOIC1Ybm9kaWZm
IGFybGEtMC45MC1vbGQvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19tZXNz
YWdlLmggYXJsYS0wLjkwL25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfbWVz
c2FnZS5oDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBmcy9pbmNsdWRlL25ucGZz
L25ucGZzX21lc3NhZ2UuaAkyMDA2LTEwLTI0IDE4OjMzOjMyLjAwMDAwMDAw
MCArMDIwMA0KKysrIGFybGEtMC45MC9ubnBmcy9pbmNsdWRlL25ucGZzL25u
cGZzX21lc3NhZ2UuaAkyMDE2LTAxLTIyIDEyOjUzOjI5LjAwMDAwMDAwMCAr
MDEwMA0KQEAgLTMxLDcgKzMxLDcgQEANCiAgKiBTVUNIIERBTUFHRS4NCiAg
Ki8NCiANCi0vKiAkSWQ6IG5ucGZzX21lc3NhZ2UuaCx2IDEuNjEgMjAwNi8x
MC8yNCAxNjozMzozMiB0b2wgRXhwICQgKi8NCisvKiAkSWQ6IG5ucGZzX21l
c3NhZ2UuaCx2IDEuNjIgMjAwOS8wMi8yNCAyMDoyMDo1NSB0b2wgRXhwICQg
Ki8NCiANCiAjaWZuZGVmIF94bXNnX2gNCiAjZGVmaW5lIF94bXNnX2gNCkBA
IC01Miw3ICs1MiwxNSBAQCB0eXBlZGVmIHVpbnQxNl90IG5ucGZzX3JpZ2h0
czsNCiAgKiBUaGUgbm5wZnNfY3JlZCwgaWYgcGFnID09IDAsIHVzZSB1aWQg
DQogICovDQogdHlwZWRlZiBzdHJ1Y3Qgbm5wZnNfY3JlZCB7DQorI2lmbmRl
ZiBfX0tFUk5FTF9fDQogICAgIHVpbnQzMl90IHVpZDsNCisjZWxzZQ0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxNCww
KQ0KKyAgICBrdWlkX3QgdWlkOw0KKyNlbHNlDQorICAgIHVpbnQzMl90IHVp
ZDsNCisjZW5kaWYNCisjZW5kaWYNCiAgICAgbm5wZnNfcGFnX3QgcGFnOw0K
IH0gbm5wZnNfY3JlZDsNCiANCkBAIC0xMDYsNyArMTE0LDcgQEAgdHlwZWRl
ZiBzdHJ1Y3Qgbm5wZnNfYmxvY2tfaGFuZGxlIHsNCiANCiAvKiBubnBmc19u
b2RlLmZsYWdzDQogICogVGhlIGxvd2VyIDE2IGJpdCBmbGFncyBhcmUgcmVz
ZXJ2ZWQgZm9yIGNvbW1vbiBubnBmcyBmbGFncw0KLSAqIFRoZSB1cHBlciAx
NiBiaXQgZmxhZ3MgYXJlIHJlc2VydmVkIGZvciBvcGVydGluZyBzeXN0ZW0g
ZGVwZW5kYW50DQorICogVGhlIHVwcGVyIDE2IGJpdCBmbGFncyBhcmUgcmVz
ZXJ2ZWQgZm9yIG9wZXJhdGluZyBzeXN0ZW0gZGVwZW5kZW50DQogICogZmxh
Z3MuDQogICovDQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1v
bGQvbm5wZnMvbGludXgvbm5wZnMvbm5ucGZzLmggYXJsYS0wLjkwL25ucGZz
L2xpbnV4L25ucGZzL25ubnBmcy5oDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBm
cy9saW51eC9ubnBmcy9ubm5wZnMuaAkyMDAyLTA5LTA3IDEyOjQ3OjE3LjAw
MDAwMDAwMCArMDIwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBm
cy9ubm5wZnMuaAkyMDAyLTA5LTA3IDEyOjQ3OjE3LjAwMDAwMDAwMCArMDIw
MA0KQEAgLTEsNCArMSw0IEBADQogLyogJElkOiBubm5wZnMuaCx2IDEuMiAy
MDAyLzA5LzA3IDEwOjQ3OjE3IGxoYSBFeHAgJCAqLw0KLS8qICRTb3VyY2U6
IC9hZnMvc3RhY2tlbi5rdGguc2Uvc3JjL1NvdXJjZVJlcG9zaXRvcnkvYXJs
YS9ubnBmcy9saW51eC9ubnBmcy9ubm5wZnMuaCx2ICQgKi8NCisvKiAkU291
cmNlOiAvVXNlcnMvYm8vdG1wL0FybGFTb3VyY2VSZXBvc2l0b3J5L2FybGEv
bm5wZnMvbGludXgvbm5wZnMvbm5ucGZzLmgsdiAkICovDQogDQogI2RlZmlu
ZSBOTk5QRlMgMg0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xk
L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmggYXJsYS0wLjkwL25ucGZz
L2xpbnV4L25ucGZzL25ucGZzX2ZzLmgNCi0tLSBhcmxhLTAuOTAtb2xkL25u
cGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmgJMjAwNi0xMC0yNCAxODozMzo0
OC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGludXgv
bm5wZnMvbm5wZnNfZnMuaAkyMDE2LTAxLTEzIDIyOjU3OjA2LjAwMDAwMDAw
MCArMDEwMA0KQEAgLTg0LDggKzg0LDEzIEBAIHN0cnVjdCBubnBmcyB7DQog
ICAgIHN0cnVjdCB2ZnNtb3VudCAqY2FjaGVyb290OyAvKiBzaW1wbGlmeSBv
cGVuIG9mIGNhY2hlIGJsb2NrcyAqLw0KICAgICBzdHJ1Y3QgZGVudHJ5ICpj
YWNoZWRpcjsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxNCwwKQ0KICAgICB1aWRfdCB1aWQ7IC8qIGtlZXAgdHJh
Y2sgb2YgZGFlbW9uJ3MgaWRlbnRpdHkgKi8NCiAgICAgZ2lkX3QgZ2lkOw0K
KyNlbHNlDQorICAgIGt1aWRfdCB1aWQ7IC8qIGtlZXAgdHJhY2sgb2YgZGFl
bW9uJ3MgaWRlbnRpdHkgKi8NCisgICAga2dpZF90IGdpZDsNCisjZW5kaWYN
CiANCiAgICAgc3RydWN0IHsNCiAJaW50IHJlY3Vyc2U7DQpkaWZmIC11cHJO
IC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5w
ZnNfbG9jbC5oIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19s
b2NsLmgNCi0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzL25u
cGZzX2xvY2wuaAkyMDA3LTAxLTA4IDE0OjUyOjQ5LjAwMDAwMDAwMCArMDEw
MA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2Ns
LmgJMjAxNi0wMS0xMyAyMzowMToxMC4wMDAwMDAwMDAgKzAxMDANCkBAIC0z
NCw3ICszNCw3IEBADQogICogU1VDSCBEQU1BR0UuDQogICovDQogDQotLyog
JElkOiBubnBmc19sb2NsLmgsdiAxLjc3IDIwMDcvMDEvMDggMTM6NTI6NDkg
dG9sIEV4cCAkICovDQorLyogJElkOiBubnBmc19sb2NsLmgsdiAxLjc4IDIw
MTAvMDgvMDggMjA6NDM6MDYgdG9sIEV4cCAkICovDQogDQogI2lmZGVmIEhB
VkVfQ09ORklHX0gNCiAjaW5jbHVkZSA8Y29uZmlnLmg+DQpAQCAtNTEsNyAr
NTEsOSBAQA0KICNpbmNsdWRlIDxsaW51eC9zdGF0Lmg+DQogI2luY2x1ZGUg
PGxpbnV4L3N0cmluZy5oPg0KICNpbmNsdWRlIDxsaW51eC9uYW1laS5oPg0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs
MzkpDQogI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+DQorI2VuZGlmDQog
I2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4NCiANCiAvKg0KQEAgLTEzOCwxNSAr
MTQwLDE2IEBAIHR5cGVkZWYgX191MzIgIHVpbnQzMl90Ow0KIGludA0KIG5u
cGZzX2ZldGNoX3Jvb3Qoc3RydWN0IGlub2RlICppKTsNCiANCi0jaWYgTElO
VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5
KQ0KIGludA0KIG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlw
ZSAqZnNfdHlwZSwNCiAJICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRl
dl9uYW1lLA0KIAkgICAgIHZvaWQgKmRhdGEsIHN0cnVjdCB2ZnNtb3VudCAq
bW50KTsNCiAjZWxzZQ0KLXN0cnVjdCBzdXBlcl9ibG9jayAqDQotbm5wZnNf
Z2V0X3NiIChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCi0J
ICAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwgdm9pZCAq
ZGF0YSk7DQorc3RydWN0IGRlbnRyeSoNCitubnBmc19tb3VudChzdHJ1Y3Qg
ZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCisJICAgICBpbnQgZmxhZ3Ms
IGNvbnN0IGNoYXIgKmRldl9uYW1lLA0KKwkgICAgIHZvaWQgKmRhdGEpOw0K
ICNlbmRpZg0KIA0KIGV4dGVybiBzdHJ1Y3QgZGVudHJ5X29wZXJhdGlvbnMg
bm5wZnNfZGVudHJ5X29wZXJhdGlvbnM7DQpAQCAtMjAwLDE2ICsyMDMsMjUg
QEAgbm5wZnNfaXdyaXRlY291bnQgKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQog
ICogSGVscCBmdW5jdGlvbiB0byByZWFkIHRoZSBkZW50cnktPmRfY291bnQg
YSBwb3J0YWJsZSB3YXkNCiAgKi8NCiANCisvKiNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpKi8NCiBzdGF0aWMgaW5s
aW5lIGludA0KIG5ucGZzX2Rjb3VudCAoY29uc3Qgc3RydWN0IGRlbnRyeSAq
ZGVudHJ5KQ0KKy8qI2Vsc2UNCitzdGF0aWMgaW5saW5lIGludA0KK25ucGZz
X2Rjb3VudCAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZiovDQog
ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzgpDQogICAgIHJldHVybiBhdG9taWNfcmVhZCgmZGVudHJ5LT5kX2Nv
dW50KTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDExLDApDQorICAgIHJldHVybiBhdG9taWNfcmVhZCgoY29uc3Qg
YXRvbWljX3QqKSZkZW50cnktPmRfY291bnQpOw0KKyNlbHNlDQorICAgIHJl
dHVybiBkX2NvdW50KGRlbnRyeSk7Ow0KKyNlbmRpZg0KIH0NCiANCiBleHRl
cm4gDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lP
TigyLDYsMTgpDQogY29uc3QNCi0jZW5kaWYNCiBzdHJ1Y3QgYWRkcmVzc19z
cGFjZV9vcGVyYXRpb25zIG5ucGZzX2FvcHM7DQogDQogI2lmbmRlZiBsaXN0
X2Zvcl9lYWNoDQpAQCAtMjM3LDcgKzI0OSwxMiBAQCBubnBmc19maXh1cF9z
eXNjYWxsX2xvc3NhZ2Uodm9pZCk7DQogI2VuZGlmDQogDQogI2RlZmluZSBu
bnBmc19kZXZfdCBkZXZfdA0KKw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQogI2RlZmluZSBubnBmc19kX2Vu
dHJ5X3VuaGFzaGVkKGQpIGhsaXN0X3VuaGFzaGVkKGQpDQorI2Vsc2UNCisj
ZGVmaW5lIG5ucGZzX2RfZW50cnlfdW5oYXNoZWQoZCkgaGxpc3RfYmxfdW5o
YXNoZWQoZCkNCisjZW5kaWYNCiANCiAjZGVmaW5lIE5OUEZTX05PT1AgICAg
ICB3aGlsZSgwKXt9DQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45
MC1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbm9kZS5oIGFybGEtMC45
MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19ub2RlLmgNCi0tLSBhcmxhLTAu
OTAtb2xkL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX25vZGUuaAkyMDA2LTEy
LTExIDE3OjI5OjM5LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9u
bnBmcy9saW51eC9ubnBmcy9ubnBmc19ub2RlLmgJMjAxMC0wOC0wOCAyMjo0
MzowNy4wMDAwMDAwMDAgKzAyMDANCkBAIC01NCw3ICs1NCw3IEBAIGV4dGVy
biB1aW50MzJfdCBubnBmc19ibG9ja3NpemViaXRzOw0KICAqIGZsYWdzLg0K
ICAqLw0KIA0KLSNkZWZpbmUgTk5QRlNfTk9ERV9JUFVUCTB4MDAwMTAwMDAg
ICAvKiBub2RlIGlzIGluIGlwdXQoKSwgYXZvaWQgZGVhZGxvY2sgKi8NCisj
ZGVmaW5lIE5OUEZTX05PREVfSVBVVAkweDAwMDEwMDAwICAgLyogbm9kZSBp
cyBpbiBpcHV0KCksIGF2b2lkIGRlYWRsb2NrLiBDYW4gYmUgcmVtb3ZlZD8g
Ki8NCiANCiAjZGVmaW5lIFhOX0hBU0hTSVpFIDEwMDkNCiAjZGVmaW5lIFhO
X0NMRUFOVVBfSVRFUlMgMTI5DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEt
MC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfYmxvY2tzLmMgYXJsYS0wLjkw
L25ucGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5jDQotLS0gYXJsYS0wLjkwLW9s
ZC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYwkyMDA3LTAxLTA4IDE0OjI0
OjI0LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51
eC9ubnBmc19ibG9ja3MuYwkyMDE2LTAyLTIwIDE5OjQ0OjM5LjAwMDAwMDAw
MCArMDEwMA0KQEAgLTM0LDcgKzM0LDcgQEANCiAgKiBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4NCiAgKi8NCiANCi0vKiAkSWQ6IG5ucGZzX2Jsb2Nr
cy5jLHYgMS4zIDIwMDcvMDEvMDggMTM6MjQ6MjQgdG9sIEV4cCAkICovDQor
LyogJElkOiBubnBmc19ibG9ja3MuYyx2IDEuNiAyMDEwLzA4LzA4IDIwOjQz
OjA0IHRvbCBFeHAgJCAqLw0KIA0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19s
b2NsLmg+DQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2ZzLmg+DQpAQCAtNDMs
NiArNDMsMTEgQEANCiAjaW5jbHVkZSA8bGludXgvbW91bnQuaD4NCiAjaW5j
bHVkZSA8bGludXgvbW0uaD4NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
ID49IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkNCitleHRlcm4gaW50IHZmc19w
YXRoX2xvb2t1cChzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCB2ZnNtb3VudCAq
LA0KKwkJCSAgIGNvbnN0IGNoYXIgKiwgdW5zaWduZWQgaW50LCBzdHJ1Y3Qg
cGF0aCAqKTsNCisjZW5kaWYNCisNCiAvKg0KICAqIHJldHVybiB0cnVlIGlm
IGJsb2NrIGlzIGluIGNhY2hlDQogICovDQpAQCAtMjkwLDcgKzI5NSwxMyBA
QCBubnBmc19ibG9ja19leHRlbmQoc3RydWN0IG5ucGZzX25vZGUgKm5vDQog
ICAgIGJhY2tub2RlID0gYmFja2ZpbGUtPmZfbWFwcGluZy0+aG9zdDsNCiAN
CiAgICAgbXV0ZXhfbG9jaygmYmFja25vZGUtPmlfbXV0ZXgpOw0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDgsMCkNCiAg
ICAgcmV0ID0gdm10cnVuY2F0ZShiYWNrbm9kZSwgbm5wZnNfYmxvY2tzaXpl
KTsNCisjZWxzZQ0KKyAgICByZXQgPSBpbm9kZV9uZXdzaXplX29rKGJhY2tu
b2RlLCBubnBmc19ibG9ja3NpemUpOw0KKyAgICBpZighcmV0KQ0KKyAgICAg
ICAgdHJ1bmNhdGVfc2V0c2l6ZShiYWNrbm9kZSwgbm5wZnNfYmxvY2tzaXpl
KTsNCisjZW5kaWYNCiAgICAgbXV0ZXhfdW5sb2NrKCZiYWNrbm9kZS0+aV9t
dXRleCk7DQogICAgIA0KICAgICBmaWxwX2Nsb3NlKGJhY2tmaWxlLCBOVUxM
KTsNCkBAIC0zMTMsMTQgKzMyNCwyNiBAQCBubnBmc19ibG9ja19vcGVuKHN0
cnVjdCBubnBmc19ub2RlICpub2RlDQogCQkgc3RydWN0IGZpbGUgKipmaWxl
KQ0KIHsNCiAgICAgY2hhciBjYWNoZW5hbWVbTk5QRlNfQ0FDSEVfUEFUSF9T
SVpFXTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJT
SU9OKDMsMSwwKQ0KKyAgICBjaGFyIGZ1bGxfY2FjaGVuYW1lW05OUEZTX0NB
Q0hFX1BBVEhfU0laRV07DQorI2VuZGlmDQogICAgIHVpbnQ2NF90IGJsb2Nr
aW5kZXggPSBubnBmc19ibG9ja19pbmRleChvZmZzZXQpOw0KICAgICB1aW50
MzJfdCBpZCA9IG5vZGUtPmluZGV4Ow0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5u
cGZzcCA9IE5OUEZTX0ZST01fWE5PREUobm9kZSk7DQogICAgIHN0cnVjdCBp
bm9kZSAqaW5vZGUgPSBYTk9ERV9UT19WTk9ERShub2RlKTsNCiAgICAgaW50
IGZsYWdzID0gT19MQVJHRUZJTEUgfCBmbGFnOw0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVj
dCBuYW1laWRhdGEgbmQ7DQorI2Vsc2UNCisgICAgc3RydWN0IHBhdGggcGF0
aDsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMiw2LDI5KQ0KICAgICB1aWRfdCBzYXZldWlkOw0KICAgICBn
aWRfdCBzYXZlZ2lkOw0KKyNlbHNlDQorICAgIGNvbnN0IHN0cnVjdCBjcmVk
ICpvbGRfY3JlZDsNCisgICAgc3RydWN0IGNyZWQgKm92ZXJyaWRlX2NyZWQ7
DQorI2VuZGlmDQogICAgIGludCByZXQ7DQogDQogICAgIEJVR19PTighbm5w
ZnNwKTsNCkBAIC0zMzAsMTIgKzM1MywyMiBAQCBubnBmc19ibG9ja19vcGVu
KHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogCXJldCA9IHNucHJpbnRmKGNh
Y2hlbmFtZSwgc2l6ZW9mKGNhY2hlbmFtZSksDQogCQkgICAgICAgTk5QRlNf
Q0FDSEVfRElSX1BBVEgsDQogCQkgICAgICAgaWQgLyAweDEwMCwgaWQgJSAw
eDEwMCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVS
U0lPTigzLDEsMCkNCisJcmV0ID0gc25wcmludGYoZnVsbF9jYWNoZW5hbWUs
IHNpemVvZihjYWNoZW5hbWUpLA0KKwkJICAgICAgICIvdXNyL2FybGEvY2Fj
aGUvIiBOTlBGU19DQUNIRV9ESVJfUEFUSCwNCisJCSAgICAgICBpZCAvIDB4
MTAwLCBpZCAlIDB4MTAwKTsNCisjZW5kaWYNCiAgICAgfSBlbHNlIHsNCiAJ
cmV0ID0gc25wcmludGYoY2FjaGVuYW1lLCBzaXplb2YoY2FjaGVuYW1lKSwN
CiAJCSAgICAgICBOTlBGU19DQUNIRV9GSUxFX1BBVEgsDQogCQkgICAgICAg
aWQgLyAweDEwMCwgaWQgJSAweDEwMCwNCiAJCSAgICAgICAodW5zaWduZWQg
bG9uZyBsb25nKWJsb2NraW5kZXgpOw0KLQ0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxLDApDQorCXJldCA9IHNucHJp
bnRmKGZ1bGxfY2FjaGVuYW1lLCBzaXplb2YoY2FjaGVuYW1lKSwNCisJCSAg
ICAgICAiL3Vzci9hcmxhL2NhY2hlLyIgTk5QRlNfQ0FDSEVfRklMRV9QQVRI
LA0KKwkJICAgICAgIGlkIC8gMHgxMDAsIGlkICUgMHgxMDAsDQorCQkgICAg
ICAgKHVuc2lnbmVkIGxvbmcgbG9uZylibG9ja2luZGV4KTsNCisjZW5kaWYN
CiAJaWYgKCFubnBmc19ibG9ja19oYXZlX3Aobm9kZSwgb2Zmc2V0KSAmJiAo
ZmxhZ3MgJiBPX0NSRUFUKSA9PSAwKSB7DQogCSAgICBwcmludGsoS0VSTl9F
TUVSRyAicmVhZGluZyBibG9jayAlczogbm90IHRoZXJlXG4iLCBjYWNoZW5h
bWUpOw0KIAkgICAgQlVHKCk7DQpAQCAtMzQ2LDIyICszNzksMzcgQEAgbm5w
ZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KICAgICBC
VUdfT04oIW5ucGZzcC0+Y2FjaGVkaXIgfHwgIW5ucGZzcC0+Y2FjaGVyb290
KTsNCiAgICAgDQogICAgIC8qIHVzZSB0aGUgbmZzZCB0cmljayB0byBnaXZl
IHVzIGFjY2VzcyAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigyLDYsMjkpDQogICAgIHNhdmV1aWQgPSBjdXJyZW50LT5m
c3VpZDsNCiAgICAgc2F2ZWdpZCA9IGN1cnJlbnQtPmZzZ2lkOw0KICAgICBj
dXJyZW50LT5mc3VpZCA9IG5ucGZzcC0+dWlkOw0KICAgICBjdXJyZW50LT5m
c2dpZCA9IG5ucGZzcC0+Z2lkOw0KLQ0KLSAgICBuZC5kZW50cnkgPSBkZ2V0
KG5ucGZzcC0+Y2FjaGVkaXIpOw0KLSAgICBuZC5tbnQgPSBtbnRnZXQobm5w
ZnNwLT5jYWNoZXJvb3QpOw0KLSAgICBuZC5sYXN0X3R5cGUgPSBMQVNUX05P
Uk07DQotICAgIG5kLmRlcHRoID0gMDsNCi0gICAgbmQuZmxhZ3MgPSAwOw0K
LSAgICANCi0gICAgaWYgKGZsYWdzICYgT19DUkVBVCkNCi0JbmQuZmxhZ3Mg
PSBMT09LVVBfUEFSRU5UOw0KLSAgICANCi0gICAgcmV0ID0gcGF0aF93YWxr
KGNhY2hlbmFtZSwgJm5kKTsNCisjZWxzZQ0KKyAgICBvdmVycmlkZV9jcmVk
ID0gcHJlcGFyZV9jcmVkcygpOw0KKyAgICBpZiAob3ZlcnJpZGVfY3JlZCA9
PSBOVUxMKQ0KKyAgICAgICAgcmV0dXJuIC1FTk9NRU07DQorICAgIG92ZXJy
aWRlX2NyZWQtPmZzdWlkID0gbm5wZnNwLT51aWQ7DQorICAgIG92ZXJyaWRl
X2NyZWQtPmZzZ2lkID0gbm5wZnNwLT5naWQ7DQorICAgIG9sZF9jcmVkID0g
b3ZlcnJpZGVfY3JlZHMob3ZlcnJpZGVfY3JlZCk7DQorI2VuZGlmDQorDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSww
KQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRp
ciwgbm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJ
ICBmbGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkg
ICZuZCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxOSwwKQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5w
ZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNo
ZW5hbWUsIDAsICZuZC5wYXRoKTsNCisjZWxzZQ0KKyAgICByZXQgPSB2ZnNf
cGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJv
b3QsDQorCQkJICBjYWNoZW5hbWUsIDAsICZwYXRoKTsNCisjZW5kaWYNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxLDAp
DQogICAgIGlmIChyZXQpIHsNCisjZWxzZQ0KKyAgICBpZiAocmV0ICYmICEo
ZmxhZ3MgJiBPX0NSRUFUKSkgew0KKyNlbmRpZg0KIAl1aW50MzJfdCBubWFz
a3MgPSBub2RlLT5kYXRhLm5tYXNrczsNCiAJdWludDMyX3QgbWFzazsNCiAN
CkBAIC0zODcsMTcgKzQzNSwzNyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVj
dCBubnBmc19ub2RlICpub2RlDQogICAgIA0KICAgICBpZiAoZmxhZ3MgJiBP
X0NSRUFUKSB7DQogCS8qIFhYWCBtb2RlIGJpdHMgb24gY3JlYXRlIC0tIFNf
SVJVU1J8U19JV1VTUiAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDEsMCkNCiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5
ID0gbG9va3VwX2NyZWF0ZSgmbmQsIDApOwkNCisjZWxpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCXN0cnVjdCBk
ZW50cnkgKmRlbnRyeSA9IGtlcm5fcGF0aF9jcmVhdGUoQVRfRkRDV0QsIGZ1
bGxfY2FjaGVuYW1lLCAmbmQucGF0aCwgMCk7CQ0KKyNlbHNlDQorCXN0cnVj
dCBkZW50cnkgKmRlbnRyeSA9IGtlcm5fcGF0aF9jcmVhdGUoQVRfRkRDV0Qs
IGZ1bGxfY2FjaGVuYW1lLCAmcGF0aCwgMCk7CQ0KKyNlbmRpZg0KIAlpZiAo
SVNfRVJSKGRlbnRyeSkpIHsNCiAJICAgIHJldCA9IFBUUl9FUlIoZGVudHJ5
KTsNCiAJfSBlbHNlIHsNCi0JICAgIHJldCA9IHZmc19jcmVhdGUobmQuZGVu
dHJ5LT5kX2lub2RlLCBkZW50cnksIFNfSVJVU1J8U19JV1VTUiwgJm5kKTsN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2
LDApDQorCSAgICByZXQgPSB2ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5LT5k
X2lub2RlLCBkZW50cnksIFNfSVJVU1J8U19JV1VTUiwgJm5kKTsNCisjZWxp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp
DQorCSAgICAvKiBYWFggc2hvdWxkIHRoZSBsYXN0IGFyZ3VtZW50IHRvIHZm
c19jcmVhdGU6IGJvb2wgd2FudF9leGNsLCBiZSAwIG9yIDE/ICovDQorCSAg
ICByZXQgPSB2ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5LT5kX2lub2RlLCBk
ZW50cnksIFNfSVJVU1J8U19JV1VTUiwgMCk7DQorI2Vsc2UNCisJICAgIC8q
IFhYWCBzaG91bGQgdGhlIGxhc3QgYXJndW1lbnQgdG8gdmZzX2NyZWF0ZTog
Ym9vbCB3YW50X2V4Y2wsIGJlIDAgb3IgMT8gKi8NCisJICAgIHJldCA9IHZm
c19jcmVhdGUocGF0aC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwgU19JUlVT
UnxTX0lXVVNSLCAwKTsNCisjZW5kaWYNCisNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogCSAgICBkcHV0KGRl
bnRyeSk7DQorCSAgICBtdXRleF91bmxvY2soJm5kLnBhdGguZGVudHJ5LT5k
X2lub2RlLT5pX211dGV4KTsNCisJICAgIHBhdGhfcHV0KCZuZC5wYXRoKTsN
CisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDE5LDApDQorCSAgICBkb25lX3BhdGhfY3JlYXRlKCZuZC5wYXRoLCBkZW50
cnkpOw0KKyNlbHNlDQorCSAgICBkb25lX3BhdGhfY3JlYXRlKCZwYXRoLCBk
ZW50cnkpOw0KKyNlbmRpZg0KIAl9DQogDQotCW11dGV4X3VubG9jaygmbmQu
ZGVudHJ5LT5kX2lub2RlLT5pX211dGV4KTsNCi0JcGF0aF9yZWxlYXNlKCZu
ZCk7DQotDQogCWlmIChyZXQpIHsNCiAJICAgIHByaW50aygibm5wZnNfYmxv
Y2tfb3BlbiglcykgY3JlYXRlIGZhaWxlZDogJWRcbiIsIGNhY2hlbmFtZSwg
LXJldCk7DQogCSAgICBubnBmc19kZWJ1Z19vb3BzKCk7DQpAQCAtNDEwLDEy
ICs0NzgsMjQgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNfbm9k
ZSAqbm9kZQ0KIAkgICAgcmV0ID0gbm5wZnNfYmxvY2tfZXh0ZW5kKG5vZGUs
IG9mZnNldCk7DQogCX0NCiAgICAgfSBlbHNlIHsNCi0Jc3RydWN0IGZpbGUg
KmYgPSBkZW50cnlfb3BlbihuZC5kZW50cnksIG5kLm1udCwgZmxhZ3MpOw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs
MjkpDQorCXN0cnVjdCBmaWxlICpmID0gZGVudHJ5X29wZW4obmQucGF0aC5k
ZW50cnksIG5kLnBhdGgubW50LCBmbGFncyk7DQorI2VsaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQorICAgICAgICBz
dHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKG5kLnBhdGguZGVudHJ5LCBu
ZC5wYXRoLm1udCwgZmxhZ3MsIGN1cnJlbnRfY3JlZCgpKTsNCisjZWxpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQor
ICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKCZuZC5wYXRo
LCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNlbHNlDQorICAgICAgICBz
dHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKCZwYXRoLCBmbGFncywgY3Vy
cmVudF9jcmVkKCkpOw0KKyNlbmRpZg0KIAlpZiAoSVNfRVJSKGYpKSB7DQog
CSAgICByZXQgPSBQVFJfRVJSKGYpOw0KIAkgICAgcHJpbnRrKCJubnBmc19i
bG9ja19vcGVuKCVzKSBvcGVuIGZhaWxlZDogJWRcbiIsIGNhY2hlbmFtZSwg
LXJldCk7DQogCSAgICBubnBmc19kZWJ1Z19vb3BzKCk7DQotCSAgICBwYXRo
X3JlbGVhc2UoJm5kKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMywxOSwwKQ0KKwkgICAgcGF0aF9wdXQoJm5kLnBhdGgp
Ow0KKyNlbHNlDQorCSAgICBwYXRoX3B1dCgmcGF0aCk7DQorI2VuZGlmDQog
CX0gZWxzZSB7DQogCSAgICAqZmlsZSA9IGY7DQogCX0NCkBAIC00MjQsOCAr
NTA0LDEzIEBAIG5ucGZzX2Jsb2NrX29wZW4oc3RydWN0IG5ucGZzX25vZGUg
Km5vZGUNCiAgICAgLyogcGF0aF9yZWxlYXNlKCkgaXMgdXN1YWxseSBoYW5k
bGVkIG9uIGNsb3NlICovDQogDQogIG91dDoNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KICAgICBjdXJyZW50
LT5mc3VpZCA9IHNhdmV1aWQ7DQogICAgIGN1cnJlbnQtPmZzZ2lkID0gc2F2
ZWdpZDsNCisjZWxzZQ0KKyAgICByZXZlcnRfY3JlZHMob2xkX2NyZWQpOw0K
KyAgICBwdXRfY3JlZChvdmVycmlkZV9jcmVkKTsNCisjZW5kaWYNCiANCiAg
ICAgcmV0dXJuIHJldDsNCiB9DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEt
MC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfY29tbW9uLmMgYXJsYS0wLjkw
L25ucGZzL2xpbnV4L25ucGZzX2NvbW1vbi5jDQotLS0gYXJsYS0wLjkwLW9s
ZC9ubnBmcy9saW51eC9ubnBmc19jb21tb24uYwkyMDA2LTEyLTExIDE3OjMx
OjQ2LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51
eC9ubnBmc19jb21tb24uYwkyMDE2LTAxLTE0IDE2OjE1OjAwLjAwMDAwMDAw
MCArMDEwMA0KQEAgLTExMiwxMCArMTEyLDE1IEBAIG5ucGZzX3ByaW50X2Fs
aWFzZXMoY29uc3Qgc3RydWN0IGlub2RlICoNCiB2b2lkDQogbm5wZnNfcHJp
bnRfYWxpYXNlc19yZWFsKGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5vZGUpDQog
ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDYsMCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqYWxpYXM7DQorI2VsaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQor
ICAgIHN0cnVjdCBobGlzdF9ub2RlICphbGlhczsNCisjZW5kaWYNCiAgICAg
c3RydWN0IGRlbnRyeSAqZGVudHJ5Ow0KICAgICBpbnQgYmFpbG91dCA9IDEw
MDsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMyw2LDApDQogICAgIGFsaWFzID0gaW5vZGUtPmlfZGVudHJ5Lm5leHQ7
DQogICAgIHdoaWxlIChhbGlhcyAhPSAmaW5vZGUtPmlfZGVudHJ5KSB7DQog
CWlmICgtLWJhaWxvdXQgPCAwKSB7DQpAQCAtMTMxLDYgKzEzNiwyNiBAQCBu
bnBmc19wcmludF9hbGlhc2VzX3JlYWwoY29uc3Qgc3RydWN0IGluDQogCX0N
CiAJYWxpYXMgPSBhbGlhcy0+bmV4dDsNCiAgICAgfQ0KKyNlbHNlDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0K
KyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksIGFsaWFzLCAmaW5v
ZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VsaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBobGlzdF9m
b3JfZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRfYWxp
YXMpIHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50
cnksICZpbm9kZS0+aV9kZW50cnksIGRfdS5kX2FsaWFzKSB7DQorI2VuZGlm
DQorCWlmICgtLWJhaWxvdXQgPCAwKSB7DQorCSAgICBwcmludGsoIiAuLi4i
KTsNCisJICAgIGJyZWFrOw0KKwl9DQorCWlmIChkZW50cnkpIHsNCisJICAg
IHByaW50aygiICUuKnMoJXApIiwgKGludClkZW50cnktPmRfbmFtZS5sZW4s
DQorCQkgICBkZW50cnktPmRfbmFtZS5uYW1lLCBkZW50cnkpOw0KKwkgICAg
aWYgKG5ucGZzX2RfZW50cnlfdW5oYXNoZWQoJmRlbnRyeS0+ZF9oYXNoKSkN
CisJCXByaW50aygiKHVuaGFzaGVkKSIpOw0KKwl9DQorICAgIH0NCisjZW5k
aWYNCiAgICAgcHJpbnRrKCJcbiIpOw0KIH0NCiANCkBAIC0xNDYsNyArMTcx
LDExIEBAIG5ucGZzX3ByaW50X2NoaWxkcmVuKGNvbnN0IHN0cnVjdCBkZW50
cnkNCiANCiAgICAgd2hpbGUgKHN1YmRpcnMgIT0gJmRlbnRyeS0+ZF9zdWJk
aXJzKSB7DQogCXN0cnVjdCBsaXN0X2hlYWQgKnRtcCA9IHN1YmRpcnM7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks
MCkNCiAJc3RydWN0IGRlbnRyeSAqY2hpbGQgPSBsaXN0X2VudHJ5KHRtcCwg
c3RydWN0IGRlbnRyeSwgZF91LmRfY2hpbGQpOw0KKyNlbHNlDQorCXN0cnVj
dCBkZW50cnkgKmNoaWxkID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50
cnksIGRfY2hpbGQpOw0KKyNlbmRpZg0KIA0KIAlwcmludGsoIiAlLipzKCVw
KSIsIChpbnQpY2hpbGQtPmRfbmFtZS5sZW4sDQogCSAgICAgICBjaGlsZC0+
ZF9uYW1lLm5hbWUsIGNoaWxkKTsNCmRpZmYgLXVwck4gLVhub2RpZmYgYXJs
YS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19kZXYuYyBhcmxhLTAuOTAv
bm5wZnMvbGludXgvbm5wZnNfZGV2LmMNCi0tLSBhcmxhLTAuOTAtb2xkL25u
cGZzL2xpbnV4L25ucGZzX2Rldi5jCTIwMDYtMTAtMjQgMTg6MzM6MzYuMDAw
MDAwMDAwICswMjAwDQorKysgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZz
X2Rldi5jCTIwMTYtMDEtMTQgMTY6Mjg6MTkuMDAwMDAwMDAwICswMTAwDQpA
QCAtMzAwLDcgKzMwMCw5IEBAIG5ucGZzX2ludmFsaWRhdGVfYWxsKHN0cnVj
dCBubnBmcyAqbm5wZnMNCiAgICAgTk5QRlNERUIoWERFQk5PREUsICgiZnJl
ZV9hbGxfbm5wZnNfbm9kZXMgc3RhcnRpbmdcbiIpKTsNCiANCiAgICAgc2hy
aW5rX2RjYWNoZV9zYihubnBmcy0+c2IpOw0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzcpDQogICAgIGludmFsaWRh
dGVfaW5vZGVzKG5ucGZzLT5zYik7DQorI2VuZGlmDQogICAgIA0KICAgICBO
TlBGU0RFQihYREVCTk9ERSwgKCJmcmVlX2FsbF9ubnBmc19ub2RlcyBkb25l
XG4iKSk7DQogfQ0KQEAgLTM3NCw3ICszNzYsMTEgQEAgbm5wZnNfZGV2Y2xv
c2Uoc3RydWN0IGlub2RlICogaW5vZGUsIHN0cg0KIHN0YXRpYyBzc2l6ZV90
DQogbm5wZnNfZGV2cmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciAqYnVm
LCBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykNCiB7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAg
bm5wZnNfZGV2X3QgZGV2ID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlf
cmRldjsNCisjZWxzZQ0KKyAgICBubnBmc19kZXZfdCBkZXYgPSBmaWxlLT5m
X3BhdGguZGVudHJ5LT5kX2lub2RlLT5pX3JkZXY7DQorI2VuZGlmDQogICAg
IHN0cnVjdCBubnBmcyAqbm5wZnNwID0gJm5ucGZzW01JTk9SKGRldildOw0K
ICAgICBzdHJ1Y3Qgbm5wZnNfbGluayAqZmlyc3Q7DQogICAgIGludCByZXQg
PSAwLCBlcnJvciA9IDA7DQpAQCAtNDM5LDggKzQ0NSwxMiBAQCBubnBmc19k
ZXZ3cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgDQogDQogICAgIE5O
UEZTREVCKFhERUJERVYsICgibm5wZnNfZGV2d3JpdGVcbiIpKTsNCiAgICAg
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTksMCkNCiAgICAgZGV2ID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlf
cmRldjsNCi0gICAgbm5wZnNwID0gJm5ucGZzW01JTk9SKGRldildOw0KKyNl
bHNlDQorICAgIGRldiA9IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUt
PmlfcmRldjsNCisjZW5kaWYNCisgICAgIG5ucGZzcCA9ICZubnBmc1tNSU5P
UihkZXYpXTsNCiANCiAgICAgZG93bigmbm5wZnNwLT5jaGFubmVsX3NlbSk7
DQogICAgIGlmIChubnBmc3AtPnN0YXR1cyAmIE5OUEZTX0RFVldSSVRFKSB7
DQpAQCAtNTA1LDE5ICs1MTUsMzcgQEAgbm5wZnNfZGV2d3JpdGUoc3RydWN0
IGZpbGUgKmZpbGUsIGNvbnN0IA0KIC8qDQogICogTm90IHVzZWQuDQogICov
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs
NiwzNikNCiBzdGF0aWMgaW50DQogbm5wZnNfZGV2aW9jdGwoc3RydWN0IGlu
b2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsDQogCSAgICAgICB1bnNp
Z25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykNCisjZWxzZQ0KK3N0
YXRpYyBsb25nDQorbm5wZnNfdW5sb2NrZWRfZGV2aW9jdGwoc3RydWN0IGZp
bGUgKmZpbGUsDQorCSAgICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25l
ZCBsb25nIGFyZykNCisjZW5kaWYNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiAgICAgTk5QRlNERUIo
WERFQkRFViwgKCJubnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3MgPSAl
ZFxuIiwNCiAJCSAgICAgICBpbm9kZS0+aV9yZGV2LCBmaWxlLT5mX2ZsYWdz
KSk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMywxOSwwKQ0KKyAgICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2Rl
dmlvY3RsIGRldiA9ICVkLCBmbGFncyA9ICVkXG4iLA0KKwkJICAgICAgIGZp
bGUtPmZfZGVudHJ5LT5kX2lub2RlLT5pX3JkZXYsIGZpbGUtPmZfZmxhZ3Mp
KTsNCisjZWxzZQ0KKyAgICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2Rl
dmlvY3RsIGRldiA9ICVkLCBmbGFncyA9ICVkXG4iLA0KKwkJICAgICAgIGZp
bGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUtPmlfcmRldiwgZmlsZS0+Zl9m
bGFncykpOw0KKyNlbmRpZg0KICAgICByZXR1cm4gLUVJTlZBTDsNCiB9DQog
DQogc3RhdGljIHVuc2lnbmVkIGludA0KIG5ucGZzX2RldnBvbGwoc3RydWN0
IGZpbGUgKmZpbGUsIHBvbGxfdGFibGUgKndhaXQpDQogew0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAg
IG5ucGZzX2Rldl90IGRldiA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlLT5p
X3JkZXY7DQorI2Vsc2UNCisgICAgbm5wZnNfZGV2X3QgZGV2ID0gZmlsZS0+
Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbmRpZg0KICAg
ICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9ICZubnBmc1tNSU5PUihkZXYpXTsN
CiAgICAgaW50IHJldCA9IDA7DQogICAgIA0KQEAgLTk1Myw3ICs5ODEsMTEg
QEAgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19mb3BzID0gew0KICAg
ICByZWFkOgkJbm5wZnNfZGV2cmVhZCwNCiAgICAgd3JpdGU6CQlubnBmc19k
ZXZ3cml0ZSwNCiAgICAgcG9sbDoJCW5ucGZzX2RldnBvbGwsDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiAg
ICAgaW9jdGw6CQlubnBmc19kZXZpb2N0bCwNCisjZWxzZQ0KKyAgICB1bmxv
Y2tlZF9pb2N0bDoJbm5wZnNfdW5sb2NrZWRfZGV2aW9jdGwsDQorI2VuZGlm
DQogICAgIHJlbGVhc2U6CQlubnBmc19kZXZjbG9zZSwNCiAgICAgb3BlbjoJ
CW5ucGZzX2Rldm9wZW4sDQogfTsNCkBAIC05NjgsOCArMTAwMCwxMyBAQCBu
bnBmc19pbml0X2RldmljZSh2b2lkKQ0KIAlpbml0X3dhaXRxdWV1ZV9oZWFk
KCYobm5wZnNbaV0ud2FpdF9xdWV1ZSkpOw0KIAlubnBmc19pbml0cSgmbm5w
ZnNbaV0ubWVzc2FnZXEpOw0KIAlubnBmc19pbml0cSgmbm5wZnNbaV0uc2xl
ZXBxKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMiw2LDM3KQ0KIAlpbml0X01VVEVYKCZubnBmc1tpXS5pbmFjdGl2ZV9z
ZW0pOw0KIAlpbml0X01VVEVYKCZubnBmc1tpXS5jaGFubmVsX3NlbSk7DQor
I2Vsc2UNCisJc2VtYV9pbml0KCZubnBmc1tpXS5pbmFjdGl2ZV9zZW0sIDEp
Ow0KKwlzZW1hX2luaXQoJm5ucGZzW2ldLmNoYW5uZWxfc2VtLCAxKTsNCisj
ZW5kaWYNCiAJSU5JVF9MSVNUX0hFQUQoJm5ucGZzW2ldLmluYWN0aXZlX2xp
c3QpOw0KIAlubnBmc1tpXS5ubm9kZXMgPSAwOw0KICAgICB9DQpkaWZmIC11
cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNf
aW5vZGVvcHMuYyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVv
cHMuYw0KLS0tIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfaW5v
ZGVvcHMuYwkyMDA2LTEyLTExIDE3OjM1OjI2LjAwMDAwMDAwMCArMDEwMA0K
KysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19pbm9kZW9wcy5jCTIw
MTYtMDMtMTkgMDI6MDM6MTAuMDAwMDAwMDAwICswMTAwDQpAQCAtNDAsMjUg
KzQwLDQxIEBADQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2Rldi5oPg0KICNp
bmNsdWRlIDxubnBmcy9ubnBmc19kaXJlbnQuaD4NCiAjaW5jbHVkZSA8bm5w
ZnMvbm5wZnNfc3lzY2FsbHMuaD4NCisjaW5jbHVkZSA8bGludXgvYWlvLmg+
DQogI2luY2x1ZGUgPGxpbnV4L2JpbmZtdHMuaD4NCiAjaW5jbHVkZSA8bGlu
dXgvZmlsZS5oPg0KICNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+DQogI2lu
Y2x1ZGUgPGxpbnV4L3BhZ2UtZmxhZ3MuaD4NCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDQsMSwwKQ0KKyNpbmNsdWRlIDxs
aW51eC91aW8uaD4NCisjZW5kaWYNCiAjaW5jbHVkZSA8bGludXgvd3JpdGVi
YWNrLmg+DQogI2luY2x1ZGUgPGFzbS9mY250bC5oPg0KIA0KICNpZmRlZiBS
Q1NJRA0KLVJDU0lEKCIkSWQ6IG5ucGZzX2lub2Rlb3BzLmMsdiAxLjIyMyAy
MDA2LzEyLzExIDE2OjM1OjI2IHRvbCBFeHAgJCIpOw0KK1JDU0lEKCIkSWQ6
IG5ucGZzX2lub2Rlb3BzLmMsdiAxLjIyNiAyMDEwLzA4LzA4IDIwOjQzOjA0
IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0KIA0KIHN0YXRpYyBpbnQNCiBubnBm
c19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50IGZsYWcpOw0K
IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDYsMCkNCiBzdGF0aWMgaW50DQogbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVj
dCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpOw0KLQ0K
KyNlbHNlDQogc3RhdGljIGludA0KK25ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1
Y3QgZGVudHJ5ICpkZW50cnksIHVuc2lnbmVkIGludCBmbGFncyk7DQorI2Vu
ZGlmDQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDIsNiwzOCkNCitzdGF0aWMNCitpbnQNCiBubnBmc19kX2RlbGV0ZShz
dHJ1Y3QgZGVudHJ5ICpkZW50cnkpOw0KKyNlbHNlDQorc3RhdGljDQoraW50
DQorbm5wZnNfZF9kZWxldGUoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5
KTsNCisjZW5kaWYNCiANCiBzdGF0aWMgdm9pZA0KIG5ucGZzX2RfcmVsZWFz
ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOw0KQEAgLTEwNSw3ICsxMjEsNyBA
QCBubnBmc192bWFfY2xvc2UgKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqDQog
fQ0KIA0KIHN0YXRpYyBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3Qgbm5w
ZnNfZmlsZV92bV9vcHMgPSB7DQotICAgIC5ub3BhZ2UJPSBmaWxlbWFwX25v
cGFnZSwNCisgICAgLmZhdWx0ICAgICAgPSBmaWxlbWFwX2ZhdWx0LA0KICAg
ICAuY2xvc2UJPSBubnBmc192bWFfY2xvc2UsDQogfTsNCiANCkBAIC0xMzQs
MTIgKzE1MCwxNCBAQCBubnBmc19wcmludF9wYXRoKHN0cnVjdCBkZW50cnkg
KmRlbnRyeSkNCiAgKg0KICAqLw0KIA0KKyNpZiAwDQogdm9pZA0KIG5ucGZz
X3ByaW50X2xvY2soY2hhciAqcywgc3RydWN0IHNlbWFwaG9yZSAqc2VtKQ0K
IHsNCiAgICAgTk5QRlNERUIoWERFQkxPQ0ssICgibG9jazogJXMgc2VtOiAl
cCBjb3VudDogJWRcbiIsDQogCQkgICAgICBzLCBzZW0sIChpbnQpYXRvbWlj
X3JlYWQoJnNlbS0+Y291bnQpKSk7DQogfQ0KKyNlbmRpZg0KIA0KIC8qDQog
ICoNCkBAIC0xODUsNyArMjAzLDcgQEAgbm5wZnNfZF9pcHV0KHN0cnVjdCBk
ZW50cnkgKmRlbnRyeSwgc3RydQ0KICAgICBOTlBGU0RFQihYREVCVk5PUFMs
DQogCSAgICAgKCJubnBmc19kX2lwdXQ6IGRlbnRyeSAlcCwgaW5vZGUgJXBc
biIsIGRlbnRyeSwgaW5vZGUpKTsNCiAgICAgDQotICAgIGlmIChub2RlLT5m
bGFncyAmIE5OUEZTX05PREVfSVBVVCkgLyogWFhYIGxvY2tpbmcgKi8NCisg
ICAgaWYgKG5vZGUtPmZsYWdzICYgTk5QRlNfTk9ERV9JUFVUKSAvKiBYWFgg
bG9ja2luZy4gbmV2ZXIgc2V0PyAqLw0KIAlubnBmc19pcmVsZShpbm9kZSk7
DQogICAgIGVsc2UNCiAJaXB1dChpbm9kZSk7DQpAQCAtMjEyLDggKzIzMCwx
MyBAQCBubnBmc19pbm9kZV92YWxpZChzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0K
ICAqIG5ucGZzX2xvb2t1cCBub3cgcmV0dXJucyBhIGRlbnRyeS4NCiAgKi8N
CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Myw2LDApDQogc3RhdGljIHN0cnVjdCBkZW50cnkgKg0KIG5ucGZzX2xvb2t1
cCAoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwg
c3RydWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCitzdGF0aWMgc3RydWN0
IGRlbnRyeSAqDQorbm5wZnNfbG9va3VwIChzdHJ1Y3QgaW5vZGUgKmRpciwg
c3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQgZmxhZ3MpDQor
I2VuZGlmDQogew0KICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9nZXRub2Rl
IG1zZzsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7DQpAQCAtMjQwLDcg
KzI2MywxMSBAQCBubnBmc19sb29rdXAgKHN0cnVjdCBpbm9kZSAqZGlyLCBz
dHJ1Y3QgDQogDQogCW1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX0dF
VE5PREU7DQogICAgICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9
IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJbXNnLmNyZWQudWlkID0gY3Vy
cmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICBtc2cuY3JlZC51aWQgPSBj
dXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KIAltc2cuY3JlZC5wYWcgPSBubnBm
c19nZXRfcGFnKCk7DQogCW1zZy5wYXJlbnRfaGFuZGxlID0gZC0+aGFuZGxl
Ow0KICAgICAgICAgDQpAQCAtMzEwLDcgKzMzNywxMSBAQCBubnBmc19vcGVu
X3ZhbGlkKHN0cnVjdCBpbm9kZSAqdnAsIHVfaW50DQogICAgICAgew0KIAlz
dHJ1Y3Qgbm5wZnNfbWVzc2FnZV9vcGVuIG1zZzsNCiAJbXNnLmhlYWRlci5v
cGNvZGUgPSBOTlBGU19NU0dfT1BFTjsNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJbXNnLmNyZWQudWlk
ID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICBtc2cuY3JlZC51
aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KIAltc2cuY3JlZC5wYWcg
PSBubnBmc19nZXRfcGFnKCk7DQogCW1zZy5oYW5kbGUgPSB4bi0+aGFuZGxl
Ow0KIAltc2cudG9rZW5zID0gdG9rOw0KQEAgLTM5Nyw3ICs0MjgsMTEgQEAg
ZmluZF9maXJzdF9ibG9jayhzdHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KIHN0
YXRpYyBpbnQNCiBubnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUs
IHVfaW50IGZsYWcpDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5v
ZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBz
dHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9p
bm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSBO
TlBGU19GUk9NX1ZOT0RFKGlub2RlKTsNCiAgICAgc3RydWN0IG5ucGZzX25v
ZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KICAgICBsb2ZmX3Qg
bGVuID0gaV9zaXplX3JlYWQoaW5vZGUpOw0KQEAgLTQyNSw3ICs0NjAsMTEg
QEAgbm5wZnNfZnN5bmNfaW50KHN0cnVjdCBmaWxlICpmaWxlLCB1X2ludA0K
IA0KIAltc2cuaGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19QVVREQVRBOw0K
IAltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCW1z
Zy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAg
bXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAJbXNn
LmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogCW1zZy5mbGFnICAgPSBmbGFnOw0K
IAltc2cub2Zmc2V0ID0gb2ZmOw0KQEAgLTQ2MCwxNCArNDk5LDI3IEBAIG5u
cGZzX2ZzeW5jX2ludChzdHJ1Y3QgZmlsZSAqZmlsZSwgdV9pbnQNCiAgKg0K
ICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigyLDYsMzUpDQogc3RhdGljIGludA0KIG5ucGZzX2ZzeW5jKHN0cnVj
dCBmaWxlICpmaWxlLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGludCBkYXRh
c3luYykNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDEsMCkNCitzdGF0aWMgaW50DQorbm5wZnNfZnN5bmMoc3RydWN0
IGZpbGUgKmZpbGUsIGludCBkYXRhc3luYykNCisjZWxzZQ0KK3N0YXRpYyBp
bnQNCitubnBmc19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IHN0
YXJ0LCBsb2ZmX3QgZW5kLCBpbnQgZGF0YXN5bmMpDQorI2VuZGlmDQogew0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2
LDM1KQ0KKyAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkgPSBmaWxlLT5mX3Bh
dGguZGVudHJ5Ow0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2Rl
ID0gREVOVFJZX1RPX0lOT0RFKGRlbnRyeSk7DQogICAgIHN0cnVjdCBubnBm
cyAqbm5wZnNwOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQogICAg
IGludCBlcnJvciA9IDA7DQogDQorICAgICh2b2lkKW5ucGZzcDsNCisNCiAg
ICAgZXJyb3IgPSBubnBmc19pbm9kZV92YWxpZChpbm9kZSk7DQogICAgIGlm
IChlcnJvcikNCiAJcmV0dXJuIGVycm9yOw0KQEAgLTUxMSw3ICs1NjMsMTEg
QEAgbm5wZnNfYXR0cl92YWxpZChzdHJ1Y3QgaW5vZGUgKiB2cCwgdV9pbg0K
ICAgICAgICAgICAgIHN0cnVjdCBubnBmc19tZXNzYWdlX2dldGF0dHIgbXNn
Ow0KIA0KICAgICAgICAgICAgIG1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNf
TVNHX0dFVEFUVFI7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJO
RUxfVkVSU0lPTigyLDYsMjgpDQogICAgICAgICAgICAgbXNnLmNyZWQudWlk
ID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICAgICAgbXNnLmNy
ZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAgICAgICAgICAg
ICBtc2cuY3JlZC5wYWcgPSBwYWc7DQogICAgICAgICAgICAgbXNnLmhhbmRs
ZSA9IHhuLT5oYW5kbGU7DQogICAgICAgICAgICAgZXJyb3IgPSBubnBmc19t
ZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7
DQpAQCAtNTUxLDcgKzYwNywxMSBAQCBubnBmc19yaWdodHNfdmFsaWQoc3Ry
dWN0IGlub2RlICogdnAsIG5uDQogICAgICAgICAgICAgc3RydWN0IG5ucGZz
X21lc3NhZ2VfZ2V0YXR0ciBtc2c7DQogDQogICAgICAgICAgICAgbXNnLmhl
YWRlci5vcGNvZGUgPSBOTlBGU19NU0dfR0VUQVRUUjsNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAg
ICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UN
CisgICAgICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0K
KyNlbmRpZg0KICAgICAgICAgICAgIG1zZy5jcmVkLnBhZyA9IHBhZzsNCiAg
ICAgICAgICAgICBtc2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAgICAgICAg
ICAgICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5o
ZWFkZXIsIHNpemVvZihtc2cpKTsNCkBAIC01OTIsMTEgKzY1MiwyNSBAQCBj
aGVja19yaWdodHMgKG5ucGZzX3JpZ2h0cyByaWdodHMsIGludCBtDQogICog
V2UgZG9uJ3QgaG9sZCBpX211dGV4Lg0KICAqLw0KIA0KKyNpZiAoTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KSB8fCBMSU5V
WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxLDApKQ0KK3N0
YXRpYyBpbnQNCitubnBmc19wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5v
ZGUsIGludCBtb2RlKQ0KKyNlbHNlDQogc3RhdGljIGludA0KLW5ucGZzX3Bl
cm1pc3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1vZGUsIHN0cnVj
dCBuYW1laWRhdGEgKm5kKQ0KK25ucGZzX3Blcm1pc3Npb24oc3RydWN0IGlu
b2RlICppbm9kZSwgaW50IG1vZGUsIHVuc2lnbmVkIGludCBmbGFncykNCisj
ZW5kaWYNCiB7DQogICAgIGludCBlcnJvciA9IDA7DQotICAgIG5ucGZzX3Bh
Z190IHBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCisgICAgbm5wZnNfcGFnX3Qg
cGFnOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJ
T04oMywxLDApDQorICAgIGlmIChtb2RlICYgTUFZX05PVF9CTE9DSykNCisg
ICAgICAgIHJldHVybiAtRUNISUxEOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05f
Q09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQorICAgIGlmIChmbGFn
cyAmIElQRVJNX0ZMQUdfUkNVKQ0KKyAgICAgICAgcmV0dXJuIC1FQ0hJTEQ7
DQorI2VuZGlmDQorDQorICAgIHBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAg
ICAgDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19hY2Nlc3Mg
KCVwKSBtb2RlID0gMCVvIGFsaWFzZXM6IiwgaW5vZGUsIG1vZGUpKTsNCiAg
ICAgbm5wZnNfcHJpbnRfYWxpYXNlcyhpbm9kZSk7DQpAQCAtNjM2LDcgKzcx
MCwxMSBAQCBubnBmc19kb19nZXRkYXRhKHN0cnVjdCBubnBmc19ub2RlICp4
biwgDQogICAgIGludCBlcnJvcjsNCiANCiAgICAgbXNnLmhlYWRlci5vcGNv
ZGUgPSBOTlBGU19NU0dfR0VUREFUQTsNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgbXNnLmNyZWQu
dWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgIG1zZy5jcmVkLnVp
ZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogICAgIG1zZy5jcmVkLnBh
ZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgbXNnLmhhbmRsZSA9IHhuLT5o
YW5kbGU7DQogICAgIG1zZy50b2tlbnMgPSB0b2s7DQpAQCAtNzUwLDExICs4
MjgsMTkgQEAgbm5wZnNfZGF0YV92YWxpZChzdHJ1Y3QgaW5vZGUgKmlub2Rl
LCB1Xw0KIGludCBubnBmc19maWxlX21tYXAoc3RydWN0IGZpbGUgKiBmaWxl
LCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKiB2bWEpDQogew0KICAgICBpbnQg
ZmxhZ3MsIGVycm9yID0gMDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBzdHJ1Y3QgaW5vZGUgKmlu
b2RlID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGU7DQorI2Vsc2UNCisgICAg
c3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfcGF0aC5kZW50cnktPmRf
aW5vZGU7DQorI2VuZGlmDQogICAgIHN0cnVjdCBhZGRyZXNzX3NwYWNlICpt
YXBwaW5nID0gZmlsZS0+Zl9tYXBwaW5nOw0KIA0KICAgICBOTlBGU0RFQihY
REVCVk5PUFMsICgibm5wZnNfbW1hcCBpbm9kZTogJXBcbiIsIGlub2RlKSk7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTksMCkNCiAgICAgbm5wZnNfcHJpbnRfcGF0aChmaWxlLT5mX2RlbnRyeSk7
DQorI2Vsc2UNCisgICAgbm5wZnNfcHJpbnRfcGF0aChmaWxlLT5mX3BhdGgu
ZGVudHJ5KTsNCisjZW5kaWYNCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAo
Im5ucGZzX21tYXAgYWxpYXNlczoiKSk7DQogICAgIG5ucGZzX3ByaW50X2Fs
aWFzZXMoaW5vZGUpOw0KICAgICANCkBAIC03ODksMzcgKzg3NSw1MCBAQCBp
bnQgbm5wZnNfZmlsZV9tbWFwKHN0cnVjdCBmaWxlICogZmlsZSwgDQogICoN
CiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxNiwwKQ0KIHN0YXRpYyBzc2l6ZV90DQogbm5wZnNfYWlvX3Jl
YWQoc3RydWN0IGtpb2NiICppb2NiLA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE5KQ0KIAkgICAgICAgY29uc3Qg
c3RydWN0IGlvdmVjICppb3YsIHVuc2lnbmVkIGxvbmcgbnJfc2VncywNCisJ
ICAgICAgIGxvZmZfdCBwb3MpDQogI2Vsc2UNCi0JICAgICAgIGNoYXIgX191
c2VyICpidWYsIHNpemVfdCBjb3VudCwNCitzdGF0aWMgc3NpemVfdA0KK25u
cGZzX3JlYWRfaXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3Zf
aXRlciAqdG8pDQogI2VuZGlmDQotCSAgICAgICBsb2ZmX3QgcG9zKQ0KIHsN
CiAgICAgaW50IGVycm9yID0gMDsNCiAgICAgc3RydWN0IGZpbGUgKmZpbGUg
PSBpb2NiLT5raV9maWxwOw0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0g
S0VSTkVMX1ZFUlNJT04oMiw2LDE5KQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDEyLDApDQogICAgIHNzaXplX3QgY291
bnQgPSBpb2NiLT5raV9sZWZ0Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDQsMSwwKQ0KKyAgICBzc2l6ZV90IGNvdW50
ID0gaW9jYi0+a2lfbmJ5dGVzOw0KKyNlbHNlDQorICAgIHNzaXplX3QgY291
bnQgPSBpb3ZfaXRlcl9jb3VudCh0byk7DQogI2VuZGlmDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAg
c3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2Rl
Ow0KKyNlbHNlDQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5m
X3BhdGguZGVudHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qg
bm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAg
IA0KICAgICBpZiAoeG4gIT0gTlVMTCkNCiAJTk5QRlNERUIoWERFQlZOT1BT
LCAoIm5ucGZzX3JlYWRfZmlsZSglcCk6IHRva2VuczogMHgleFxuIiwNCiAJ
CQkgICAgIGlub2RlLCB4bi0+dG9rZW5zKSk7DQogDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgZXJy
b3IgPSBubnBmc19kYXRhX3ZhbGlkKGlub2RlLCBOTlBGU19EQVRBX1IsIHBv
cywgcG9zICsgY291bnQpOw0KKyNlbHNlDQorICAgIGVycm9yID0gbm5wZnNf
ZGF0YV92YWxpZChpbm9kZSwgTk5QRlNfREFUQV9SLCBpb2NiLT5raV9wb3Ms
IGlvY2ItPmtpX3BvcyArIGNvdW50KTsNCisjZW5kaWYNCiAgICAgaWYgKGVy
cm9yKSB7DQogCU5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19yZWFkX2Zp
bGU6IGRhdGEgbm90IHZhbGlkICVkXG4iLCBlcnJvcikpOw0KIAlyZXR1cm4g
ZXJyb3I7DQogICAgIH0NCiAgICAgDQotI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTkpDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgZXJyb3Ig
PSBnZW5lcmljX2ZpbGVfYWlvX3JlYWQoaW9jYiwgaW92LCBucl9zZWdzLCBw
b3MpOw0KICNlbHNlDQotICAgIGVycm9yID0gZ2VuZXJpY19maWxlX2Fpb19y
ZWFkKGlvY2IsIGJ1ZiwgY291bnQsIHBvcyk7DQorICAgIGVycm9yID0gZ2Vu
ZXJpY19maWxlX3JlYWRfaXRlcihpb2NiLCB0byk7DQogI2VuZGlmDQogICAg
IE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19yZWFkX2ZpbGU6IGVycm9y
ID0gJWRcbiIsIGVycm9yKSk7DQogICAgIHJldHVybiBlcnJvcjsNCkBAIC04
MjksMjMgKzkyOCwzNiBAQCBubnBmc19haW9fcmVhZChzdHJ1Y3Qga2lvY2Ig
KmlvY2IsDQogICoNCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0KIHN0YXRpYyBzc2l6ZV90DQog
bm5wZnNfYWlvX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCi0jaWYgTElO
VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCiAJ
CWNvbnN0IHN0cnVjdCBpb3ZlYyAqaW92LCB1bnNpZ25lZCBsb25nIG5yX3Nl
Z3MsDQorCQlsb2ZmX3QgcG9zKQ0KICNlbHNlDQotCQljb25zdCBjaGFyIF9f
dXNlciAqYnVmLCBzaXplX3QgY291bnQsIA0KK3N0YXRpYyBzc2l6ZV90DQor
bm5wZnNfd3JpdGVfaXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBp
b3ZfaXRlciAqZnJvbSkNCiAjZW5kaWYNCi0JCWxvZmZfdCBwb3MpDQogew0K
ICAgICBpbnQgZXJyb3IgPSAwOw0KICAgICBzdHJ1Y3QgZmlsZSAqZmlsZSA9
IGlvY2ItPmtpX2ZpbHA7DQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBL
RVJORUxfVkVSU0lPTigyLDYsMTkpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkNCiAgICAgc3NpemVfdCBjb3Vu
dCA9IGlvY2ItPmtpX2xlZnQ7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oNCwxLDApDQorICAgIHNzaXplX3QgY291bnQg
PSBpb2NiLT5raV9uYnl0ZXM7DQorI2Vsc2UNCisgICAgc3NpemVfdCBjb3Vu
dCA9IGlvdl9pdGVyX2NvdW50KGZyb20pOw0KICNlbmRpZg0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAg
IHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9k
ZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+
Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0
IG5ucGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDAp
DQogICAgIGxvZmZfdCByZWFscG9zID0gcG9zOw0KKyNlbHNlDQorICAgIGxv
ZmZfdCByZWFscG9zID0gaW9jYi0+a2lfcG9zOw0KKyNlbmRpZg0KICAgICAN
CiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2Fpb193cml0ZSgl
cCk6IHRva2VuczogMHgleFxuIiwNCiAJCQkgaW5vZGUsIHhuLT50b2tlbnMp
KTsNCkBAIC04NTksMTAgKzk3MSwxMCBAQCBubnBmc19haW9fd3JpdGUoc3Ry
dWN0IGtpb2NiICppb2NiLA0KIAlyZXR1cm4gZXJyb3I7DQogICAgIH0NCiAN
Ci0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIs
NiwxOSkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMywxNiwwKQ0KICAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV9haW9fd3Jp
dGUoaW9jYiwgaW92LCBucl9zZWdzLCBwb3MpOw0KICNlbHNlDQotICAgIGVy
cm9yID0gZ2VuZXJpY19maWxlX2Fpb193cml0ZShpb2NiLCBidWYsIGNvdW50
LCBwb3MpOw0KKyAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV93cml0ZV9pdGVy
KGlvY2IsIGZyb20pOw0KICNlbmRpZg0KICAgICBpZiAoIUlTX0VSUl9WQUxV
RShlcnJvcikpDQogCXhuLT5mbGFncyB8PSBOTlBGU19EQVRBX0RJUlRZOyAv
KiBYWFggcmFjZSAqLw0KQEAgLTg3MSw5ICs5ODMsMTkgQEAgbm5wZnNfYWlv
X3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAgICAgcmV0dXJuIGVycm9y
Ow0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywzLDApDQogc3RhdGljIGludA0KIG5ucGZzX2NyZWF0ZShzdHJ1
Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KIAkgICAg
IGludCBtb2RlLCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCitzdGF0
aWMgaW50DQorbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1
Y3QgZGVudHJ5ICpkZW50cnksDQorCSAgICAgdW1vZGVfdCBtb2RlLCBzdHJ1
Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBm
c19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRl
bnRyeSwNCisJICAgICB1bW9kZV90IG1vZGUsIGJvb2wgZXhjbCkNCisjZW5k
aWYNCiB7DQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KICAgICBzdHJ1
Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAtOTAzLDkgKzEwMjUsMTcgQEAgbm5w
ZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZA0KICAgICBY
QV9DTEVBUigmbXNnLmF0dHIpOw0KICAgICBYQV9TRVRfTU9ERSgmbXNnLmF0
dHIsIG1vZGUpOw0KICAgICBYQV9TRVRfVFlQRSgmbXNnLmF0dHIsIE5OUEZT
X0ZJTEVfUkVHKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5F
TF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgWEFfU0VUX0dJRCgmbXNnLmF0dHIs
IGN1cnJlbnQtPmZzZ2lkKTsNCisjZWxzZQ0KKyAgICBYQV9TRVRfR0lEKCZt
c2cuYXR0ciwgY3VycmVudF9mc2dpZCgpKTsNCisjZW5kaWYNCiAgICAgbXNn
Lm1vZGUgPSAwOwkJLyogWFhYICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIG1zZy5jcmVkLnVp
ZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBtc2cuY3JlZC51aWQg
PSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICBtc2cuY3JlZC5wYWcg
PSBubnBmc19nZXRfcGFnKCk7DQogICAgIGVycm9yID0gbm5wZnNfbWVzc2Fn
ZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KICAg
ICBpZiAoZXJyb3IgPT0gMCkNCkBAIC05NDYsNyArMTA3NiwxMSBAQCBubnBm
c191bmxpbmsgKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0DQogICAgIGlm
IChzdHJsY3B5KG1zZy5uYW1lLCBkZW50cnktPmRfbmFtZS5uYW1lLCBzaXpl
b2YobXNnLm5hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkNCiAJcmV0dXJuIC1F
TkFNRVRPT0xPTkc7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBL
RVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIG1zZy5jcmVkLnVpZCA9IGN1
cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBtc2cuY3JlZC51aWQgPSBjdXJy
ZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICBtc2cuY3JlZC5wYWcgPSBubnBm
c19nZXRfcGFnKCk7DQogICAgIGVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMo
bm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KICAgICBpZiAo
ZXJyb3IgPT0gMCkNCkBAIC05OTEsNyArMTEyNSwxMSBAQCBubnBmc19yZW5h
bWUgKHN0cnVjdCBpbm9kZSAqIG9sZF9kaXIsIHN0DQogICAgIGlmIChzdHJs
Y3B5KG1zZy5uZXdfbmFtZSwgbmV3X2RlbnRyeS0+ZF9uYW1lLm5hbWUsIHNp
emVvZihtc2cubmV3X25hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkNCiAJcmV0
dXJuIC1FTkFNRVRPT0xPTkc7DQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBtc2cuY3JlZC51
aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgbXNnLmNyZWQudWlk
ID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAgICAgbXNnLmNyZWQucGFn
ID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICBlcnJvciA9IG5ucGZzX21lc3Nh
Z2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCiAg
ICAgaWYgKGVycm9yID09IDApDQpAQCAtMTAwOCw4ICsxMTQ2LDEzIEBAIG5u
cGZzX3JlbmFtZSAoc3RydWN0IGlub2RlICogb2xkX2Rpciwgc3QNCiAgICAg
cmV0dXJuIGVycm9yOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywzLDApDQogc3RhdGljIGludA0KIG5ucGZz
X21rZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGRlbnRyeSAqZGVu
dHJ5LCBpbnQgbW9kZSkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19t
a2RpcihzdHJ1Y3QgaW5vZGUgKiBkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRy
eSwgdW1vZGVfdCBtb2RlKQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IG5u
cGZzICpubnBmc3A7DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCkBA
IC0xMDQwLDkgKzExODMsMTcgQEAgbm5wZnNfbWtkaXIoc3RydWN0IGlub2Rl
ICogZGlyLCBzdHJ1Y3QgZA0KIAlYQV9DTEVBUigmbXNnLmF0dHIpOw0KIAlY
QV9TRVRfTU9ERSgmbXNnLmF0dHIsIG1vZGUpOw0KIAlYQV9TRVRfVFlQRSgm
bXNnLmF0dHIsIE5OUEZTX0ZJTEVfRElSKTsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJWEFfU0VUX0dJ
RCgmbXNnLmF0dHIsIGN1cnJlbnQtPmZzZ2lkKTsNCisjZWxzZQ0KKyAgICAg
ICAgWEFfU0VUX0dJRCgmbXNnLmF0dHIsIGN1cnJlbnRfZnNnaWQoKSk7DQor
I2VuZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxf
VkVSU0lPTigyLDYsMjgpDQogCW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVp
ZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91
aWQoKTsNCisjZW5kaWYNCiAJbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3Bh
ZygpOw0KIAllcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1z
Zy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCiAJaWYgKGVycm9yID09IDApDQpA
QCAtMTA4Myw3ICsxMjM0LDExIEBAIG5ucGZzX3JtZGlyKHN0cnVjdCBpbm9k
ZSAqIGRpciwgc3RydWN0IGQNCiAgICAgbXNnLnBhcmVudF9oYW5kbGUgPSB4
bi0+aGFuZGxlOw0KICAgICBpZiAoc3RybGNweShtc2cubmFtZSwgZGVudHJ5
LT5kX25hbWUubmFtZSwgc2l6ZW9mKG1zZy5uYW1lKSkgPj0gTk5QRlNfTUFY
X05BTUUpDQogCSAgICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAg
ICAgbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAg
IG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogICAg
IG1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgZXJyb3Ig
PSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXpl
b2YobXNnKSk7DQogICAgIGlmIChlcnJvciA9PSAwKQ0KQEAgLTExMjgsNyAr
MTI4MywxMSBAQCBzdGF0aWMgaW50IG5ucGZzX2xpbmsoc3RydWN0IGRlbnRy
eSAqb2xkDQogCWlmIChzdHJsY3B5KG1zZy5uYW1lLCBuYW1lLCBzaXplb2Yo
bXNnLm5hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkNCiAJICAgIHJldHVybiAt
RU5BTUVUT09MT05HOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0g
S0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3JlZC51aWQgPSBjdXJy
ZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1
cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IG5ucGZz
X2dldF9wYWcoKTsNCiAJZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYyhubnBm
c3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7DQogCWlmIChlcnJvciA9
PSAwKQ0KQEAgLTExNTcsMjkgKzEzMTYsNDcgQEAgc3RhdGljIGludCBubnBm
c19zeW1saW5rKHN0cnVjdCBpbm9kZSAqZA0KICAgICB4biA9IFZOT0RFX1RP
X1hOT0RFKGRpcik7DQogDQogICAgIHsNCi0Jc3RydWN0IG5ucGZzX21lc3Nh
Z2Vfc3ltbGluayBtc2c7DQorCXN0cnVjdCBubnBmc19tZXNzYWdlX3N5bWxp
bmsgKm1zZyA9IE5VTEw7DQogDQotCW1zZy5oZWFkZXIub3Bjb2RlID0gTk5Q
RlNfTVNHX1NZTUxJTks7DQotCW1zZy5wYXJlbnRfaGFuZGxlID0geG4tPmhh
bmRsZTsNCi0JaWYgKHN0cmxjcHkobXNnLm5hbWUsIG5hbWUsIHNpemVvZiht
c2cubmFtZSkpID49IE5OUEZTX01BWF9OQU1FKQ0KLQkgICAgcmV0dXJuIC1F
TkFNRVRPT0xPTkc7DQotCWlmIChzdHJsY3B5KG1zZy5jb250ZW50cywgc3lt
bmFtZSwgc2l6ZW9mKG1zZy5jb250ZW50cykpID49IE5OUEZTX01BWF9TWU1M
SU5LX0NPTlRFTlQpDQotCSAgICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCi0J
WEFfQ0xFQVIoJm1zZy5hdHRyKTsNCi0JWEFfU0VUX01PREUoJm1zZy5hdHRy
LCAwNzc3KTsNCi0JWEFfU0VUX1RZUEUoJm1zZy5hdHRyLCBOTlBGU19GSUxF
X0xOSyk7DQotCVhBX1NFVF9HSUQoJm1zZy5hdHRyLCBjdXJyZW50LT5mc2dp
ZCk7DQorCW1zZyA9IGttYWxsb2Moc2l6ZW9mKCptc2cpLCBHRlBfS0VSTkVM
KTsNCiANCi0JbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KLQltc2cu
Y3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQotCWVycm9yID0gbm5wZnNf
bWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykp
Ow0KKwlpZiAobXNnID09IE5VTEwpDQorCSAgcmV0dXJuIC1FTk9NRU07DQor
DQorCW1zZy0+aGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19TWU1MSU5LOw0K
Kwltc2ctPnBhcmVudF9oYW5kbGUgPSB4bi0+aGFuZGxlOw0KKwlpZiAoc3Ry
bGNweShtc2ctPm5hbWUsIG5hbWUsIHNpemVvZihtc2ctPm5hbWUpKSA+PSBO
TlBGU19NQVhfTkFNRSkgew0KKwkgIGtmcmVlKG1zZyk7DQorCSAgcmV0dXJu
IC1FTkFNRVRPT0xPTkc7DQorCX0NCisJaWYgKHN0cmxjcHkobXNnLT5jb250
ZW50cywgc3ltbmFtZSwgc2l6ZW9mKG1zZy0+Y29udGVudHMpKSA+PSBOTlBG
U19NQVhfU1lNTElOS19DT05URU5UKSB7DQorCSAga2ZyZWUobXNnKTsNCisJ
ICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCisJfQ0KKwlYQV9DTEVBUigmbXNn
LT5hdHRyKTsNCisJWEFfU0VUX01PREUoJm1zZy0+YXR0ciwgMDc3Nyk7DQor
CVhBX1NFVF9UWVBFKCZtc2ctPmF0dHIsIE5OUEZTX0ZJTEVfTE5LKTsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwy
OCkNCisJWEFfU0VUX0dJRCgmbXNnLT5hdHRyLCBjdXJyZW50LT5mc2dpZCk7
DQorI2Vsc2UNCisgICAgICAgIFhBX1NFVF9HSUQoJm1zZy0+YXR0ciwgY3Vy
cmVudF9mc2dpZCgpKTsNCisjZW5kaWYNCisNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisJbXNnLT5jcmVk
LnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLT5j
cmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQorCW1zZy0+Y3Jl
ZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQorCWVycm9yID0gbm5wZnNfbWVz
c2FnZV9ycGMobm5wZnNwLCAmbXNnLT5oZWFkZXIsIHNpemVvZigqbXNnKSk7
DQogCWlmIChlcnJvciA9PSAwKQ0KLQkgICAgZXJyb3IgPSBOTlBGU19NU0df
V0FLRVVQX0VSUk9SKCZtc2cpOw0KKwkgICAgZXJyb3IgPSBOTlBGU19NU0df
V0FLRVVQX0VSUk9SKG1zZyk7DQogDQogCS8qIFhYWCBzaG91bGQgdGhpcyBy
ZWFsbHkgYmUgaGVyZSAqLw0KIAlpZiAoREVOVFJZX1RPX1hERU5UUlkoZGVu
dHJ5KS0+eGRfZmxhZ3MgPT0gMCkgew0KIAkgICAgcHJpbnRrKEtFUk5fRU1F
UkcgIk5OUEZTIFBhbmljOiBubnBmc19zeW1saW5rOiBkZW50cnkgbm90IHZh
bGlkXG4iKTsNCiAJfQ0KKwlrZnJlZShtc2cpOw0KICAgICB9DQogDQogICAg
IHJldHVybiBlcnJvcjsNCkBAIC0xMTg4LDEyICsxMzY1LDIxIEBAIHN0YXRp
YyBpbnQgbm5wZnNfc3ltbGluayhzdHJ1Y3QgaW5vZGUgKmQNCiAvKg0KICAq
IFdlIGhvbGQgaV9tdXRleC4NCiAgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMSwwKQ0KIHN0YXRpYyBpbnQNCiBu
bnBmc19yZWFkZGlyKHN0cnVjdCBmaWxlICogZmlsZSwgdm9pZCAqIGRpcmVu
dCwgZmlsbGRpcl90IGZpbGxkaXIpDQorI2Vsc2UNCitzdGF0aWMgaW50DQor
bm5wZnNfaXRlcmF0ZShzdHJ1Y3QgZmlsZSAqIGZpbGUsIHN0cnVjdCBkaXJf
Y29udGV4dCAqY3R4KQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yOw0K
ICAgICBsb2ZmX3Qgb2Zmc2V0LCBiZWdpbl9vZmZzZXQ7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAg
c3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2Rl
Ow0KKyNlbHNlDQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5m
X3BhdGguZGVudHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qg
aW5vZGUgKmNhY2hlX2lub2RlOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAq
eG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAgIGNoYXIgKmJ1ZjsN
CkBAIC0xMjE3LDYgKzE0MDMsNyBAQCBubnBmc19yZWFkZGlyKHN0cnVjdCBm
aWxlICogZmlsZSwgdm9pZCAqDQogDQogICAgIGNhY2hlX2lub2RlID0gYmFj
a2ZpbGUtPmZfbWFwcGluZy0+aG9zdDsNCiANCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMSwwKQ0KICAgICB3aGlsZSAo
ZmlsZS0+Zl9wb3MgPCBpX3NpemVfcmVhZChjYWNoZV9pbm9kZSkpIHsNCiAJ
Tk5QRlNERUIoWERFQlJFQURESVIsDQogCSAgICAgICAoIm5ucGZzX3JlYWRk
aXIgZmlsZS0+Zl9wb3M6ICVkIGlfc2l6ZTogJWRcbiIsDQpAQCAtMTIyOSw2
ICsxNDE2LDIwIEBAIG5ucGZzX3JlYWRkaXIoc3RydWN0IGZpbGUgKiBmaWxl
LCB2b2lkICoNCiAJbWFwcGluZyA9IGJhY2tmaWxlLT5mX21hcHBpbmc7DQog
CWlucGFnZSA9IGZpbGUtPmZfcG9zICYgKFBBR0VfQ0FDSEVfU0laRS0xKTsN
CiAJcGFnZV9udW0gPSBmaWxlLT5mX3BvcyA+PiBQQUdFX0NBQ0hFX1NISUZU
Ow0KKyNlbHNlDQorICAgIHdoaWxlIChjdHgtPnBvcyA8IGlfc2l6ZV9yZWFk
KGNhY2hlX2lub2RlKSkgew0KKwlOTlBGU0RFQihYREVCUkVBRERJUiwNCisJ
ICAgICAgICgibm5wZnNfcmVhZGRpciBmaWxlLT5mX3BvczogJWQgaV9zaXpl
OiAlZFxuIiwNCisJCShpbnQpIGN0eC0+cG9zLCAoaW50KSBjYWNoZV9pbm9k
ZS0+aV9zaXplKSk7DQorCWJlZ2luX29mZnNldCA9IGN0eC0+cG9zICZ+IChO
TlBGU19ESVJFTlRfQkxPQ0tTSVpFIC0gMSk7DQorCW9mZnNldCA9IGN0eC0+
cG9zICYgKE5OUEZTX0RJUkVOVF9CTE9DS1NJWkUgLSAxKTsNCisJY3R4LT5w
b3MgPSBiZWdpbl9vZmZzZXQ7DQorCU5OUEZTREVCKFhERUJSRUFERElSLCAo
Im5ucGZzX3JlYWRkaXIgYmVnaW5fb2Zmc2V0OiAlZCBvZmZzZXQ6ICVkXG4i
LA0KKwkJCSAgICAgKGludCliZWdpbl9vZmZzZXQsIChpbnQpb2Zmc2V0KSk7
DQorCW1hcHBpbmcgPSBiYWNrZmlsZS0+Zl9tYXBwaW5nOw0KKwlpbnBhZ2Ug
PSBjdHgtPnBvcyAmIChQQUdFX0NBQ0hFX1NJWkUtMSk7DQorCXBhZ2VfbnVt
ID0gY3R4LT5wb3MgPj4gUEFHRV9DQUNIRV9TSElGVDsNCisjZW5kaWYNCiAN
CiAJTk5QRlNERUIoWERFQlJFQURESVIsDQogCSAgICAgICAoIm5ucGZzX3Jl
YWRkaXIgaW5wYWdlOiAlZCBwYWdlX251bTogJWx1XG4iLA0KQEAgLTEyNjQs
NiArMTQ2NSw3IEBAIG5ucGZzX3JlYWRkaXIoc3RydWN0IGZpbGUgKiBmaWxl
LCB2b2lkICoNCiAJCSAgICAoaW50KSB4ZGlyZW50LT5kX25hbWxlbiwNCiAJ
CSAgICAoaW50KSAob2Zmc2V0K2JlZ2luX29mZnNldCkpKTsNCiANCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMSwwKQ0K
IAkgICAgaWYgKHhkaXJlbnQtPmRfZmlsZW5vICE9IDANCiAJCSYmIChmaWxs
ZGlyX2Vycm9yID0gZmlsbGRpciAoZGlyZW50LA0KIAkJCQkgICAgIHhkaXJl
bnQtPmRfbmFtZSwNCkBAIC0xMjc1LDEyICsxNDc3LDI4IEBAIG5ucGZzX3Jl
YWRkaXIoc3RydWN0IGZpbGUgKiBmaWxlLCB2b2lkICoNCiAJCQkgKCJubnBm
c19yZWFkZGlyIGZpbGxkaXI6ICVkXG4iLCBmaWxsZGlyX2Vycm9yKSk7DQog
CQlicmVhazsNCiAJICAgIH0NCisjZWxzZQ0KKwkgICAgaWYgKHhkaXJlbnQt
PmRfZmlsZW5vICE9IDANCisJCSYmIChmaWxsZGlyX2Vycm9yID0gZGlyX2Vt
aXQgKGN0eCwNCisJCQkJICAgICB4ZGlyZW50LT5kX25hbWUsDQorCQkJCSAg
ICAgeGRpcmVudC0+ZF9uYW1sZW4sDQorCQkJCSAgICAgeGRpcmVudC0+ZF9m
aWxlbm8sDQorCQkJCSAgICAgRFRfVU5LTk9XTikpIDwgMCkgew0KKwkJTk5Q
RlNERUIoWERFQlJFQURESVIsDQorCQkJICgibm5wZnNfcmVhZGRpciBmaWxs
ZGlyOiAlZFxuIiwgZmlsbGRpcl9lcnJvcikpOw0KKwkJYnJlYWs7DQorCSAg
ICB9DQorI2VuZGlmDQogCSAgICBvZmZzZXQgKz0geGRpcmVudC0+ZF9yZWNs
ZW47DQogDQogCSAgICBpZiAoeGRpcmVudC0+ZF9yZWNsZW4gPT0gMCkgew0K
IAkJcHJpbnRrKEtFUk5fRU1FUkcgIk5OUEZTIFBhbmljOiAiDQogCQkgICAg
ICAgImVtcHR5IGRpcmVudCBhdCAlbGxkIGluIG5ucGZzX3JlYWRkaXIsIHBv
cyAlZCBzaXplICVkXG4iLA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDExLDApDQogCQkgICAgICAgKGxvbmcgbG9uZylv
ZmZzZXQsIChpbnQpZmlsZS0+Zl9wb3MsDQorI2Vsc2UNCisJCSAgICAgICAo
bG9uZyBsb25nKW9mZnNldCwgKGludCljdHgtPnBvcywNCisjZW5kaWYNCiAJ
CSAgICAgICAoaW50KWNhY2hlX2lub2RlLT5pX3NpemUpOw0KIAkJTk5QRlNE
RUIoWERFQlZOT1BTLCAoImlub2RlOiAlcCBhbGlhc2VzOiIsIGlub2RlKSk7
DQogCQlubnBmc19wcmludF9hbGlhc2VzKGlub2RlKTsNCkBAIC0xMjk4LDcg
KzE1MTYsMTEgQEAgbm5wZnNfcmVhZGRpcihzdHJ1Y3QgZmlsZSAqIGZpbGUs
IHZvaWQgKg0KIAlpZiAob2Zmc2V0ID4gTk5QRlNfRElSRU5UX0JMT0NLU0la
RSkNCiAJICAgIG9mZnNldCA9IE5OUEZTX0RJUkVOVF9CTE9DS1NJWkU7DQog
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTEsMCkNCiAJZmlsZS0+Zl9wb3MgPSBiZWdpbl9vZmZzZXQgKyBvZmZzZXQ7
DQorI2Vsc2UNCisJY3R4LT5wb3MgPSBiZWdpbl9vZmZzZXQgKyBvZmZzZXQ7
DQorI2VuZGlmDQogDQogCWlmIChlcnJvciB8fCBvZmZzZXQgPCBOTlBGU19E
SVJFTlRfQkxPQ0tTSVpFKQ0KIAkgICAgYnJlYWs7DQpAQCAtMTMzMSwxMiAr
MTU1MywyNSBAQCBubnBmc19yZWFkbGluayAoc3RydWN0IGRlbnRyeSAqZGVu
dHJ5LCBjDQogICogV2UgZG9uJ3QgaG9sZCBpX211dGV4Lg0KICAqLw0KIA0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDIs
MCkNCiBzdGF0aWMgdm9pZCAqDQogbm5wZnNfZm9sbG93X2xpbmsgKHN0cnVj
dCBkZW50cnkgKmRlbnRyeSwNCiAJCSBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkN
CisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0
LDUsMCkNCitzdGF0aWMgY29uc3QgY2hhciAqDQorbm5wZnNfZm9sbG93X2xp
bmsgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwNCisJCSB2b2lkICoqcGFnZSkN
CisjZWxzZQ0KK3N0YXRpYyBjb25zdCBjaGFyICoNCitubnBmc19nZXRfbGlu
ayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KKwkJIHN0cnVjdCBpbm9kZSAq
aW5vZGUsDQorCQkgc3RydWN0IGRlbGF5ZWRfY2FsbCAqZG9uZSkNCisjZW5k
aWYNCiB7DQogICAgIGludCBlcnJvciA9IDA7DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDQsNSwwKQ0KICAgICBzdHJ1Y3Qg
aW5vZGUgKmlub2RlID0gREVOVFJZX1RPX0lOT0RFKGRlbnRyeSk7DQorI2Vu
ZGlmDQogDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19mb2xs
b3dfbGlua1xuIikpOw0KICAgICANCkBAIC0xMzQ0LDcgKzE1NzksMTMgQEAg
bm5wZnNfZm9sbG93X2xpbmsgKHN0cnVjdCBkZW50cnkgKmRlbnRyeQ0KICAg
ICBpZiAoZXJyb3IpDQogICAgICAgIHJldHVybiBFUlJfUFRSKGVycm9yKTsN
CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
NCwyLDApDQogICAgIHJldHVybiBwYWdlX2ZvbGxvd19saW5rX2xpZ2h0KGRl
bnRyeSwgbmQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDQsNSwwKQ0KKyAgICByZXR1cm4gcGFnZV9mb2xsb3dfbGlu
a19saWdodChkZW50cnksIHBhZ2UpOw0KKyNlbHNlDQorICAgIHJldHVybiBw
YWdlX2dldF9saW5rKGRlbnRyeSwgaW5vZGUsIGRvbmUpOw0KKyNlbmRpZg0K
IH0NCiANCiAvKg0KQEAgLTEzOTgsNyArMTYzOSwxMSBAQCBubnBmc19zZXRh
dHRyIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0DQogICAgICAgICBzdHJ1
Y3Qgbm5wZnNfbWVzc2FnZV9wdXRhdHRyIG1zZzsNCiANCiAgICAgICAgIG1z
Zy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1BVVEFUVFI7DQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQog
CW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAg
ICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAJ
bXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICAgICAgbXNn
LmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogICAgICAgICBubnBmc19pYXR0cjJh
dHRyKHhuLCBhdHRyLCAmbXNnLmF0dHIpOw0KQEAgLTE0MjIsNiArMTY2Nyw4
IEBAIG5ucGZzX3JlbGVhc2VfZmlsZSAoc3RydWN0IGlub2RlICppbm9kZSwN
CiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0KICAgICBpbnQgZXJyb3Ig
PSAwOw0KIA0KKyAgICAodm9pZClubnBmc3A7DQorDQogICAgIE5OUEZTREVC
KFhERUJWTk9QUywgKCJubnBmc19yZWxlYXNlX2ZpbGVcbiIpKTsNCiANCiAg
ICAgZXJyb3IgPSBubnBmc19pbm9kZV92YWxpZChpbm9kZSk7DQpAQCAtMTQ1
MCwxOCArMTY5NywxOCBAQCBubnBmc19yZWxlYXNlX2ZpbGUgKHN0cnVjdCBp
bm9kZSAqaW5vZGUsDQogICoNCiAgKi8NCiANCi0jaWYgTElOVVhfVkVSU0lP
Tl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCiBzdGF0aWMgaW50
DQogbm5wZnNfZmx1c2goc3RydWN0IGZpbGUgKmZpbGUsIGZsX293bmVyX3Qg
aWQpDQotI2Vsc2UNCi1zdGF0aWMgaW50DQotbm5wZnNfZmx1c2goc3RydWN0
IGZpbGUgKmZpbGUpDQotI2VuZGlmDQogew0KICAgICBOTlBGU0RFQihYREVC
Vk5PUFMsICgibm5wZnNfZmx1c2hcbiIpKTsNCiANCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBpZiAo
ZmlsZSAmJiBmaWxlLT5mX2RlbnRyeSAmJiBmaWxlLT5mX2RlbnRyeS0+ZF9p
bm9kZSkNCiAJcmV0dXJuIG5ucGZzX3JlbGVhc2VfZmlsZShmaWxlLT5mX2Rl
bnRyeS0+ZF9pbm9kZSwgZmlsZSk7DQorI2Vsc2UNCisgICAgaWYgKGZpbGUg
JiYgZmlsZS0+Zl9wYXRoLmRlbnRyeSAmJiBmaWxlLT5mX3BhdGguZGVudHJ5
LT5kX2lub2RlKQ0KKwlyZXR1cm4gbm5wZnNfcmVsZWFzZV9maWxlKGZpbGUt
PmZfcGF0aC5kZW50cnktPmRfaW5vZGUsIGZpbGUpOw0KKyNlbmRpZg0KICAg
ICBlbHNlDQogCXJldHVybiAwOw0KIH0NCkBAIC0xNDcwLDEwICsxNzE3LDI0
IEBAIG5ucGZzX2ZsdXNoKHN0cnVjdCBmaWxlICpmaWxlKQ0KICAqIFJldHVy
biAxIGlmIGBkZW50cnknIGlzIHN0aWxsIHZhbGlkLCBvdGhlcndpc2UgMC4N
CiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMyw2LDApDQorc3RhdGljIGludA0KK25ucGZzX2RfcmV2YWxpZGF0
ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5k
KQ0KKyNlbHNlDQogc3RhdGljIGludA0KLW5ucGZzX2RfcmV2YWxpZGF0ZShz
dHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5kKSAN
CitubnBmc19kX3JldmFsaWRhdGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1
bnNpZ25lZCBpbnQgZmxhZ3MpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3Qg
aW5vZGUgKmlub2RlID0gREVOVFJZX1RPX0lOT0RFKGRlbnRyeSk7DQorDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDYs
MCkNCisgICAgaWYgKGZsYWdzICYgTE9PS1VQX1JDVSkNCisgICAgICAgIHJl
dHVybiAtRUNISUxEOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBL
RVJORUxfVkVSU0lPTigyLDYsMzgpDQorICAgIGlmIChuZCAmJiBuZC0+Zmxh
Z3MgJiBMT09LVVBfUkNVKQ0KKyAgICAgICAgcmV0dXJuIC1FQ0hJTEQ7DQor
I2VuZGlmDQorDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19k
X3JldmFsaWRhdGUgJXAgXCIlLipzXCIgKGlub2RlICVwKVxuIiwNCiAJCSAg
ICAgICBkZW50cnksDQogCQkgICAgICAgKGludClkZW50cnktPmRfbmFtZS5s
ZW4sDQpAQCAtMTUxOSw5ICsxNzgwLDE1IEBAIG5ucGZzX2RfcmV2YWxpZGF0
ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkNCiAgICAgcmV0dXJuIDA7DQogfQ0K
IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzgpDQogc3RhdGljDQogaW50DQogbm5wZnNfZF9kZWxldGUoc3RydWN0
IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbHNlDQorc3RhdGljDQoraW50DQorbm5w
ZnNfZF9kZWxldGUoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNl
bmRpZg0KIHsNCiAgICAgc3RydWN0IGlub2RlICppbm9kZTsNCiAgICAgc3Ry
dWN0IG5ucGZzX25vZGUgKnhuOw0KQEAgLTE1NDYsMTEgKzE4MTMsMTYgQEAg
bm5wZnNfZF9kZWxldGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KIH0NCiAN
CiBzdGF0aWMgc3NpemVfdA0KLW5ucGZzX3NlbmRmaWxlKHN0cnVjdCBmaWxl
ICpmaWxlLCBsb2ZmX3QgKnBwb3MsIHNpemVfdCBjb3VudCwNCi0JICAgICAg
IHJlYWRfYWN0b3JfdCBhY3Rvciwgdm9pZCAqdGFyZ2V0KQ0KK25ucGZzX3Nw
bGljZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3QgKnBwb3MsDQor
CQkgIHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUsIHNpemVfdCBjb3Vu
dCwNCisJCSAgdW5zaWduZWQgaW50IGZsYWdzKQ0KIHsNCiAgICAgaW50IGVy
cm9yID0gMDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxOSwwKQ0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmls
ZS0+Zl9kZW50cnktPmRfaW5vZGU7DQorI2Vsc2UNCisgICAgc3RydWN0IGlu
b2RlICppbm9kZSA9IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGU7DQor
I2VuZGlmDQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4biA9IFZOT0RFX1RP
X1hOT0RFKGlub2RlKTsNCiAgICAgDQogICAgIGlmICh4biAhPSBOVUxMKQ0K
QEAgLTE1NjEsOCArMTgzMyw3IEBAIG5ucGZzX3NlbmRmaWxlKHN0cnVjdCBm
aWxlICpmaWxlLCBsb2ZmX3QNCiAJTk5QRlNERUIoWERFQlZOT1BTLCAoIm5u
cGZzX3NlbmRmaWxlOiBkYXRhIG5vdCB2YWxpZCAlZFxuIiwgZXJyb3IpKTsN
CiAJcmV0dXJuIGVycm9yOw0KICAgICB9DQotDQotICAgIGVycm9yID0gZ2Vu
ZXJpY19maWxlX3NlbmRmaWxlKGZpbGUsIHBwb3MsIGNvdW50LCBhY3Rvciwg
dGFyZ2V0KTsNCisgICAgZXJyb3IgPSBmaWxlLT5mX29wLT5zcGxpY2VfcmVh
ZChmaWxlLCBwcG9zLCBwaXBlLCBjb3VudCwgZmxhZ3MpOw0KIA0KICAgICBO
TlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfc2VuZGZpbGU6IGVycm9yID0g
JWRcbiIsIGVycm9yKSk7DQogICAgIHJldHVybiBlcnJvcjsNCkBAIC0xNjM5
LDQwICsxOTEwLDQxIEBAIG5ucGZzX3dyaXRlX2JhY2twYWdlKHN0cnVjdCBw
YWdlICpwYWdlLCANCiAJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcg
PSBiYWNrZmlsZS0+Zl9tYXBwaW5nOw0KIAl1bnNpZ25lZCBsZW4gPSBQQUdF
X0NBQ0hFX1NJWkU7DQogCXN0cnVjdCBwYWdlICpiYWNrcGFnZTsNCisJdm9p
ZCAqZnNkYXRhOw0KIAl1bnNpZ25lZCBsb25nIG9mZnNldDsNCiANCiAJaW50
IGVycm9yOw0KIAkNCi0JZG8gew0KLQkJYmFja3BhZ2UgPSBncmFiX2NhY2hl
X3BhZ2UobWFwcGluZywgbm5wZnNfZ2V0X2JhY2tpbmRleChwYWdlKSk7DQot
CQlpZiAoIWJhY2twYWdlKSB7DQotCQkJcHJpbnRrKCJubnBmc193cml0ZV9i
YWNrcGFnZTogbm8gcGFnZVxuIik7DQotCQkJcmV0dXJuIC1FSU87DQotCQl9
DQorCSh2b2lkKW9mZnNldDsNCiANCi0JCWVycm9yID0gbWFwcGluZy0+YV9v
cHMtPnByZXBhcmVfd3JpdGUoYmFja2ZpbGUsIGJhY2twYWdlLA0KLQkJCQkJ
CSAgICAgIDAsIGxlbik7DQorCWRvIHsNCisJCWVycm9yID0gcGFnZWNhY2hl
X3dyaXRlX2JlZ2luKGJhY2tmaWxlLCBtYXBwaW5nLCAwLCBsZW4sDQorCQkJ
CQkgICAgICBBT1BfRkxBR19VTklOVEVSUlVQVElCTEUsDQorCQkJCQkgICAg
ICAmYmFja3BhZ2UsICZmc2RhdGEpOw0KIAkJaWYgKCFlcnJvcikgew0KIAkJ
CWNvcHlfaGlnaHBhZ2UoYmFja3BhZ2UsIHBhZ2UpOw0KIAkJCWZsdXNoX2Rj
YWNoZV9wYWdlKGJhY2twYWdlKTsNCi0JCQllcnJvciA9IG1hcHBpbmctPmFf
b3BzLT5jb21taXRfd3JpdGUoYmFja2ZpbGUsIGJhY2twYWdlLA0KLQkJCQkJ
CQkgICAgIDAsIGxlbik7DQorCQkJZXJyb3IgPSBwYWdlY2FjaGVfd3JpdGVf
ZW5kKGJhY2tmaWxlLCBtYXBwaW5nLCAwLCBsZW4sDQorCQkJCQlsZW4sIGJh
Y2twYWdlLCBmc2RhdGEpOw0KKwkJCWlmIChlcnJvciA+IDApDQorCQkJCWVy
cm9yID0gMDsNCiAJCX0NCiAJCWlmIChlcnJvciA9PSBBT1BfVFJVTkNBVEVE
X1BBR0UpIHsNCi0JCQlwYWdlX2NhY2hlX3JlbGVhc2UoYmFja3BhZ2UpOw0K
IAkJCWNvbnRpbnVlOw0KIAkJfQ0KIAl9IHdoaWxlICgwKTsNCiANCiAJb2Zm
c2V0ID0gcGFnZV9vZmZzZXQoYmFja3BhZ2UpOw0KLQl1bmxvY2tfcGFnZShi
YWNrcGFnZSk7DQotCXBhZ2VfY2FjaGVfcmVsZWFzZShiYWNrcGFnZSk7DQog
DQogCWlmIChlcnJvcikNCiAJCXByaW50aygibm5wZnNfd3JpdGVfYmFja3Bh
Z2U6IEVJT1xuIik7DQogI2lmZGVmIE5OUEZTX1NBRkVfU1lOQw0KIAllbHNl
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs
NiwzMikNCiAJCSh2b2lkKXN5bmNfcGFnZV9yYW5nZShtYXBwaW5nLT5ob3N0
LCBtYXBwaW5nLCBvZmZzZXQsIGxlbik7DQorI2Vsc2UNCisJCSh2b2lkKWZp
bGVtYXBfd3JpdGVfYW5kX3dhaXRfcmFuZ2UobWFwcGluZywgb2Zmc2V0LCBv
ZmZzZXQgKyBsZW4gLSAxKTsNCisjZW5kaWYNCiAjZW5kaWYNCiAJDQogCXJl
dHVybiBlcnJvcjsNCkBAIC0xNjg5LDEzICsxOTYxLDkgQEAgbm5wZnNfcmVh
ZF9iYWNrcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgcw0KIAlzdHJ1Y3QgcGFn
ZSAqYmFja3BhZ2U7DQogCXVuc2lnbmVkIGxvbmcgb2Zmc2V0Ow0KIA0KLSNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4
KQ0KKwkodm9pZClvZmZzZXQ7DQorDQogCWJhY2twYWdlID0gcmVhZF9tYXBw
aW5nX3BhZ2UobWFwcGluZywgbiwgYmFja2ZpbGUpOw0KLSNlbHNlDQotCWJh
Y2twYWdlID0gcmVhZF9jYWNoZV9wYWdlKG1hcHBpbmcsIG4sDQotCQkJCSAg
IChmaWxsZXJfdCAqKW1hcHBpbmctPmFfb3BzLT5yZWFkcGFnZSwNCi0JCQkJ
ICAgYmFja2ZpbGUpOw0KLSNlbmRpZg0KIAlpZiAoIUlTX0VSUihiYWNrcGFn
ZSkpIHsNCiAJCXdhaXRfb25fcGFnZV9sb2NrZWQoYmFja3BhZ2UpOw0KIA0K
QEAgLTE4NDIsMTEgKzIxMTAsMTcgQEAgbm5wZnNfcHJlcGFyZV93cml0ZShz
dHJ1Y3QgZmlsZSAqZmlsZSwgcw0KIA0KIAlpZiAobW9kc2l6ZSA+IGlfc2l6
ZV9yZWFkKGlub2RlKSkgew0KIAkJaW50IGVycm9yOw0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDgsMCkNCiAJCWVycm9y
ID0gdm10cnVuY2F0ZShpbm9kZSwgbW9kc2l6ZSk7DQorI2Vsc2UNCisJCWVy
cm9yID0gaW5vZGVfbmV3c2l6ZV9vayhpbm9kZSwgbW9kc2l6ZSk7DQorCQlp
ZighZXJyb3IpDQorCQkJdHJ1bmNhdGVfc2V0c2l6ZShpbm9kZSwgbW9kc2l6
ZSk7DQorI2VuZGlmDQogCQlpZiAoZXJyb3IpIHsNCiAJCQlwcmludGsoIm5u
cGZzX3ByZXBhcmVfd3JpdGU6IHRydW5jYXRlKCVsbHUpIC0+ICVkXG4iLA0K
IAkJCSAgICAgICBtb2RzaXplLCAtZXJyb3IpOw0KLQkJCUJVRygpOyAvKiBY
WFggbm90IGNvcnJlY3QgKi8NCisJCQkvKkJVRygpOyovIC8qIFhYWCBub3Qg
Y29ycmVjdCAqLw0KIAkJfQ0KIAl9DQogDQpAQCAtMTg3Miw0NCArMjE0Niwx
MTggQEAgbm5wZnNfcHJlcGFyZV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwg
cw0KIAlyZXR1cm4gcmV0Ow0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiBzdGF0aWMgaW50DQot
bm5wZnNfY29tbWl0X3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qg
cGFnZSAqcGFnZSwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8pDQorbm5w
ZnNfd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRy
ZXNzX3NwYWNlICptYXBwaW5nLCBsb2ZmX3QgcG9zLA0KK3Vuc2lnbmVkIGxl
biwgdW5zaWduZWQgZmxhZ3MsIHN0cnVjdCBwYWdlICoqcGFnZXAsIHZvaWQg
Kipmc2RhdGEpDQogew0KLSAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gcGFn
ZS0+bWFwcGluZy0+aG9zdDsNCi0gICAgbG9mZl90IHBvcyA9ICgobG9mZl90
KXBhZ2UtPmluZGV4IDw8IFBBR0VfQ0FDSEVfU0hJRlQpICsgdG87DQorCXN0
cnVjdCBwYWdlICpwYWdlOw0KKwlwZ29mZl90IGluZGV4Ow0KKwl1bnNpZ25l
ZCBmcm9tOw0KKwlpbnQgcmV0ID0gMDsNCiANCi0gICAgaWYgKHBvcyA+IGlu
b2RlLT5pX3NpemUpIHsNCi0JaV9zaXplX3dyaXRlKGlub2RlLCBwb3MpOw0K
KwlpbmRleCA9IHBvcyA+PiBQQUdFX0NBQ0hFX1NISUZUOw0KKwlmcm9tID0g
cG9zICYgKFBBR0VfQ0FDSEVfU0laRSAtIDEpOw0KIA0KLQlzcGluX2xvY2so
Jmlub2RlLT5pX2xvY2spOw0KLQlpbm9kZS0+aV9ibG9ja3MgPSAocG9zICsg
SV9CTE9DS1NfVU5JVCAtIDEpID4+IElfQkxPQ0tTX0JJVFM7DQotCXNwaW5f
dW5sb2NrKCZpbm9kZS0+aV9sb2NrKTsNCi0gICAgfQ0KLSAgICBzZXRfcGFn
ZV9kaXJ0eShwYWdlKTsNCisJcGFnZSA9IGdyYWJfY2FjaGVfcGFnZV93cml0
ZV9iZWdpbihtYXBwaW5nLCBpbmRleCwgZmxhZ3MpOw0KKwlpZiAoIXBhZ2Up
DQorCQlyZXR1cm4gLUVOT01FTTsNCisNCisJKnBhZ2VwID0gcGFnZTsNCisN
CisJcmV0ID0gbm5wZnNfcHJlcGFyZV93cml0ZShmaWxlLCBwYWdlLCBmcm9t
LCBmcm9tICsgbGVuKTsNCisJaWYgKHJldCkgew0KKwkJdW5sb2NrX3BhZ2Uo
cGFnZSk7DQorCQlwYWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7DQorCX0NCisN
CisJcmV0dXJuIHJldDsNCit9DQorI2VuZGlmDQogDQorLyogWFhYIHdlIHVz
ZSB0aGUgc3lzdGVtIHByb3ZpZGVkIHNpbXBsZV9jb21taXRfd3JpdGUgaW5z
dGVhZCBzbyB0aGlzIGZ1bmN0aW9uIGlzIHVudXNlZCBmb3Igbm93ICovDQog
I2lmIDANCi0gICAgew0KLQljaGFyICphZGRyOw0KLQlrbWFwKHBhZ2UpOw0K
LQlhZGRyID0gcGFnZV9hZGRyZXNzKHBhZ2UpOw0KLQlOTlBGU0RFQihYREVC
Vk5PUFMsICgibm5wZnNfY29tbWl0X3dyaXRlKCVwKTogJXgleCV4JXhcbiIs
DQorc3RhdGljIGludA0KK25ucGZzX2NvbW1pdF93cml0ZShzdHJ1Y3QgZmls
ZSAqZmlsZSwgc3RydWN0IHBhZ2UgKnBhZ2UsDQorCQkgICB1bnNpZ25lZCBm
cm9tLCB1bnNpZ25lZCB0bykNCit7DQorCXN0cnVjdCBpbm9kZSAqaW5vZGUg
PSBwYWdlLT5tYXBwaW5nLT5ob3N0Ow0KKwlsb2ZmX3QgcG9zID0gKChsb2Zm
X3QpcGFnZS0+aW5kZXggPDwgUEFHRV9DQUNIRV9TSElGVCkgKyB0bzsNCisN
CisJaWYgKCFQYWdlVXB0b2RhdGUocGFnZSkpDQorCQlTZXRQYWdlVXB0b2Rh
dGUocGFnZSk7DQorDQorCWlmIChwb3MgPiBpbm9kZS0+aV9zaXplKSB7DQor
CQlpX3NpemVfd3JpdGUoaW5vZGUsIHBvcyk7DQorDQorCQlzcGluX2xvY2so
Jmlub2RlLT5pX2xvY2spOw0KKwkJaW5vZGUtPmlfYmxvY2tzID0gKHBvcyAr
IElfQkxPQ0tTX1VOSVQgLSAxKSA+PiBJX0JMT0NLU19CSVRTOw0KKwkJc3Bp
bl91bmxvY2soJmlub2RlLT5pX2xvY2spOw0KKwl9DQorCXNldF9wYWdlX2Rp
cnR5KHBhZ2UpOw0KKw0KKyNpZiAwDQorCXsNCisJICAgIGNoYXIgKmFkZHI7
DQorCSAgICBrbWFwKHBhZ2UpOw0KKwkgICAgYWRkciA9IHBhZ2VfYWRkcmVz
cyhwYWdlKTsNCisJICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19j
b21taXRfd3JpdGUoJXApOiAleCV4JXgleFxuIiwNCiAJCQkgICAgIGZpbGUt
PmZfbWFwcGluZy0+aG9zdCwgDQogCQkJICAgICBhZGRyWzBdLCBhZGRyWzFd
LCBhZGRyWzJdLCBhZGRyWzNdKSk7DQotCWt1bm1hcChwYWdlKTsNCi0gICAg
fQ0KKwkgICAga3VubWFwKHBhZ2UpOw0KKwl9DQogI2VuZGlmDQotICAgIA0K
LSAgICByZXR1cm4gMDsNCisgDQorCXJldHVybiAwOw0KIH0NCisjZW5kaWYN
CiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9O
KDIsNiwxOCkNCi1jb25zdA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0g
S0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KKy8qIFhYWCB3ZSB1c2UgdGhlIHN5
c3RlbSBwcm92aWRlZCBzaW1wbGVfd3JpdGVfZW5kIGluc3RlYWQgc28gdGhp
cyBmdW5jdGlvbiBpcyB1bnVzZWQgZm9yIG5vdyAqLw0KKyNpZiAwDQorc3Rh
dGljIGludA0KK25ucGZzX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwg
c3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBwb3MsDQor
CQl1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwgc3RydWN0IHBhZ2Ug
KnBhZ2UsIHZvaWQgKmZzZGF0YSkNCit7DQorCXVuc2lnbmVkIGZyb20gPSBw
b3MgJiAoUEFHRV9DQUNIRV9TSVpFIC0gMSk7DQorDQorCS8qIHplcm8gdGhl
IHN0YWxlIHBhcnQgb2YgdGhlIHBhZ2UgaWYgd2UgZGlkIGEgc2hvcnQgY29w
eSAqLw0KKwlpZiAoY29waWVkIDwgbGVuKSB7DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KKwkJdm9pZCAqa2Fk
ZHIgPSBrbWFwX2F0b21pYyhwYWdlLCBLTV9VU0VSMCk7DQorI2Vsc2UNCisJ
CXZvaWQgKmthZGRyID0ga21hcF9hdG9taWMocGFnZSk7DQorI2VuZGlmDQor
CQltZW1zZXQoa2FkZHIgKyBmcm9tICsgY29waWVkLCAwLCBsZW4gLSBjb3Bp
ZWQpOw0KKwkJZmx1c2hfZGNhY2hlX3BhZ2UocGFnZSk7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KKwkJa3Vu
bWFwX2F0b21pYyhrYWRkciwgS01fVVNFUjApOw0KKyNlbHNlDQorCQlrdW5t
YXBfYXRvbWljKGthZGRyKTsNCisjZW5kaWYNCisJfQ0KKw0KKwlubnBmc19j
b21taXRfd3JpdGUoZmlsZSwgcGFnZSwgZnJvbSwgZnJvbSArIGNvcGllZCk7
DQorDQorCXVubG9ja19wYWdlKHBhZ2UpOw0KKwlwYWdlX2NhY2hlX3JlbGVh
c2UocGFnZSk7DQorDQorCXJldHVybiBjb3BpZWQ7DQorfQ0KKyNlbmRpZg0K
ICNlbmRpZg0KKw0KK2NvbnN0DQogc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3Bl
cmF0aW9ucyBubnBmc19hb3BzID0gew0KIAkucmVhZHBhZ2UgPSBubnBmc19y
ZWFkcGFnZSwNCiAJLndyaXRlcGFnZSA9IG5ucGZzX3dyaXRlcGFnZSwNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI4
KQ0KIAkucHJlcGFyZV93cml0ZSA9IG5ucGZzX3ByZXBhcmVfd3JpdGUsDQot
CS5jb21taXRfd3JpdGUgPSBubnBmc19jb21taXRfd3JpdGUsDQorCS5jb21t
aXRfd3JpdGUgPSBzaW1wbGVfY29tbWl0X3dyaXRlLA0KKyNlbHNlDQorCS53
cml0ZV9iZWdpbiA9IG5ucGZzX3dyaXRlX2JlZ2luLA0KKwkud3JpdGVfZW5k
ID0gc2ltcGxlX3dyaXRlX2VuZCwNCisjZW5kaWYNCiB9Ow0KIA0KIC8qDQpA
QCAtMTkxNywyMSArMjI2NSwzMCBAQCBzdHJ1Y3QgYWRkcmVzc19zcGFjZV9v
cGVyYXRpb25zIG5ucGZzX2FvDQogICovDQogDQogc3RydWN0IGZpbGVfb3Bl
cmF0aW9ucyBubnBmc19maWxlX29wZXJhdGlvbnMgPSB7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAg
LmFpb19yZWFkCT0gbm5wZnNfYWlvX3JlYWQsDQogICAgIC5haW9fd3JpdGUJ
PSBubnBmc19haW9fd3JpdGUsDQorI2Vsc2UNCisgICAgLnJlYWRfaXRlcgk9
IG5ucGZzX3JlYWRfaXRlciwNCisgICAgLndyaXRlX2l0ZXIJPSBubnBmc193
cml0ZV9pdGVyLA0KKyNlbmRpZg0KICAgICAubW1hcAk9IG5ucGZzX2ZpbGVf
bW1hcCwNCiAgICAgLm9wZW4JPSBubnBmc19vcGVuLA0KICAgICAuZmx1c2gJ
PSBubnBmc19mbHVzaCwNCiAgICAgLnJlbGVhc2UJPSBubnBmc19yZWxlYXNl
X2ZpbGUsDQogICAgIC5mc3luYwk9IG5ucGZzX2ZzeW5jLA0KLSAgICAuc2Vu
ZGZpbGUJPSBubnBmc19zZW5kZmlsZSwNCisgICAgLnNwbGljZV9yZWFkID0g
bm5wZnNfc3BsaWNlX3JlYWQsDQogfTsNCiANCiBzdHJ1Y3QgZmlsZV9vcGVy
YXRpb25zIG5ucGZzX2RlYWRfb3BlcmF0aW9ucyA9IHsNCiB9Ow0KIA0KIHN0
cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZGlyX29wZXJhdGlvbnMgPSB7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTEsMCkNCiAgICAgLnJlYWRkaXIJPSBubnBmc19yZWFkZGlyLA0KKyNlbHNl
DQorICAgIC5pdGVyYXRlICAgID0gbm5wZnNfaXRlcmF0ZSwNCisjZW5kaWYN
CiAgICAgLmZsdXNoCT0gbm5wZnNfZmx1c2gsDQogfTsNCiANCkBAIC0xOTY4
LDYgKzIzMjUsMTAgQEAgc3RydWN0IGlub2RlX29wZXJhdGlvbnMgbm5wZnNf
ZGVhZF9pbm9kZQ0KIA0KIHN0cnVjdCBpbm9kZV9vcGVyYXRpb25zIG5ucGZz
X2xpbmtfaW5vZGVfb3BlcmF0aW9ucyA9IHsNCiAgICAgLnJlYWRsaW5rIAkJ
PSBubnBmc19yZWFkbGluaywNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oNCw1LDApDQogICAgIC5mb2xsb3dfbGluayAJPSBu
bnBmc19mb2xsb3dfbGluaywNCiAgICAgLnB1dF9saW5rIAkJPSBwYWdlX3B1
dF9saW5rLA0KKyNlbHNlDQorICAgIC5nZXRfbGluawkJPSBubnBmc19nZXRf
bGluaywNCisjZW5kaWYNCiB9Ow0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxh
LTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYyBhcmxhLTAuOTAv
bm5wZnMvbGludXgvbm5wZnNfbG9hZC5jDQotLS0gYXJsYS0wLjkwLW9sZC9u
bnBmcy9saW51eC9ubnBmc19sb2FkLmMJMjAwNi0xMC0zMSAxMTowMjo0MS4w
MDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5w
ZnNfbG9hZC5jCTIwMTYtMDEtMTMgMjA6MTQ6MDIuMDAwMDAwMDAwICswMTAw
DQpAQCAtNTQsNyArNTQsMTEgQEAgZXh0ZXJuIHN0cnVjdCBmaWxlX29wZXJh
dGlvbnMgbm5wZnNfZm9wcw0KIA0KIHN0cnVjdCBmaWxlX3N5c3RlbV90eXBl
IG5ucGZzX2ZzX3R5cGUgPSB7DQogICAgICAgIG5hbWU6ICAgICAgICAgICAi
bm5wZnMiLA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigyLDYsMzkpDQogICAgICAgIGdldF9zYjogICAgICAgICBubnBmc19n
ZXRfc2IsDQorI2Vsc2UNCisgICAgICAgbW91bnQ6ICAgICAgICAgIG5ucGZz
X21vdW50LA0KKyNlbmRpZg0KICAgICAgICBraWxsX3NiOiAgICAgICAga2ls
bF9saXR0ZXJfc3VwZXIsDQogICAgICAgIG93bmVyOiAgICAgICAgICBUSElT
X01PRFVMRSwNCiB9Ow0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAt
b2xkL25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYyBhcmxhLTAuOTAvbm5w
ZnMvbGludXgvbm5wZnNfbWVzc2FnZS5jDQotLS0gYXJsYS0wLjkwLW9sZC9u
bnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAwNy0wMS0wOSAxNzozMzoz
MS4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGludXgv
bm5wZnNfbWVzc2FnZS5jCTIwMTYtMDEtMjQgMTg6NTI6MjguMDAwMDAwMDAw
ICswMTAwDQpAQCAtNDUsNyArNDUsNyBAQA0KICNpbmNsdWRlIDxsaW51eC9t
b3VudC5oPg0KIA0KICNpZmRlZiBSQ1NJRA0KLVJDU0lEKCIkSWQ6IG5ucGZz
X21lc3NhZ2UuYyx2IDEuMTQzLjIuMSAyMDA3LzAxLzA5IDE2OjMzOjMxIHRv
bCBFeHAgJCIpOw0KK1JDU0lEKCIkSWQ6IG5ucGZzX21lc3NhZ2UuYyx2IDEu
MTQ1IDIwMTAvMDgvMDggMjA6NDM6MDUgdG9sIEV4cCAkIik7DQogI2VuZGlm
DQogDQogc3RhdGljIHZvaWQNCkBAIC01NSw5ICs1NSwxNSBAQCBzdGF0aWMg
dm9pZA0KIG5ucGZzX2RfcmVtb3ZlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkN
CiB7DQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfZF9yZW1vdmUg
JXBcbiIsIGRlbnRyeSkpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigyLDYsMzgpDQogICAgIHNwaW5fbG9jaygmZGNhY2hl
X2xvY2spOw0KICAgICBkZ2V0X2xvY2tlZChkZW50cnkpOw0KICAgICBzcGlu
X3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorICAgIHNwaW5fbG9j
aygmZGVudHJ5LT5kX2xvY2spOw0KKyAgICBkZ2V0X2Rsb2NrKGRlbnRyeSk7
DQorICAgIHNwaW5fdW5sb2NrKCZkZW50cnktPmRfbG9jayk7DQorI2VuZGlm
DQogICAgIGRfZHJvcChkZW50cnkpOw0KICAgICBkcHV0KGRlbnRyeSk7DQog
fQ0KQEAgLTEyMSw3ICsxMjcsMTEgQEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxs
bm9kZShzdHJ1Y3Qgbm5wZnMgKg0KICAgICBzdHJ1Y3QgaW5vZGUgKmRpLCAq
aW5vZGU7DQogICAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCA9IE5VTEw7DQog
ICAgIHN0cnVjdCBxc3RyIHNxc3RyOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgc3RydWN0IGxpc3Rf
aGVhZCAqYWxpYXM7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMyw5LDApDQorICAgIHN0cnVjdCBobGlzdF9ub2RlICph
bGlhczsNCisjZW5kaWYNCiAgICAgDQogICAgIE5OUEZTREVCKFhERUJNU0cs
ICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZVxuIikpOw0KICAgICANCkBA
IC0xNzYsMTIgKzE4NiwyNiBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxub2Rl
KHN0cnVjdCBubnBmcyAqDQogICAgICAqDQogICAgICAqLw0KICAgICANCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDAp
DQogICAgIGFsaWFzID0gZGktPmlfZGVudHJ5Lm5leHQ7DQogICAgIHdoaWxl
IChhbGlhcyAhPSAmZGktPmlfZGVudHJ5KSB7DQogCXBhcmVudCA9IGxpc3Rf
ZW50cnkoYWxpYXMsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KLQlzcGlu
X2xvY2soJmRjYWNoZV9sb2NrKTsNCi0JZGdldF9sb2NrZWQocGFyZW50KTsN
Ci0Jc3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisgICAgaGxp
c3RfZm9yX2VhY2hfZW50cnkocGFyZW50LCBhbGlhcywgJmRpLT5pX2RlbnRy
eSwgZF9hbGlhcykgew0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50
cnkocGFyZW50LCAmZGktPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2Vsc2UN
CisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkocGFyZW50LCAmZGktPmlfZGVu
dHJ5LCBkX3UuZF9hbGlhcykgew0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQorICAgIHNwaW5f
bG9jaygmZGNhY2hlX2xvY2spOw0KKyAgICBkZ2V0X2xvY2tlZChwYXJlbnQp
Ow0KKyAgICBzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQor
ICAgIHNwaW5fbG9jaygmcGFyZW50LT5kX2xvY2spOw0KKyAgICBkZ2V0X2Rs
b2NrKHBhcmVudCk7DQorICAgIHNwaW5fdW5sb2NrKCZwYXJlbnQtPmRfbG9j
ayk7DQorI2VuZGlmDQogCWRlbnRyeSA9IGRfbG9va3VwKHBhcmVudCwgJnNx
c3RyKTsNCiAJTk5QRlNERUIoWERFQk1TRywNCiAJCSAoIm5ucGZzX21lc3Nh
Z2VfaW5zdGFsbG5vZGU6IGFsaWFzICVwLCBsb29rdXAgJXBcbiIsDQpAQCAt
MjMzLDcgKzI1Nyw5IEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGUoc3Ry
dWN0IG5ucGZzICoNCiAJDQogCWRwdXQoZGVudHJ5KTsNCiAJZGVudHJ5ID0g
TlVMTDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMyw2LDApDQogCWFsaWFzID0gYWxpYXMtPm5leHQ7DQorI2VuZGlmDQog
CWRwdXQocGFyZW50KTsNCiAgICAgfQ0KICAgICBOTlBGU0RFQihYREVCTVNH
LCAoIm5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGU6IGRvbmUgaW5zdGFsbGlu
Z1xuIikpOw0KQEAgLTI2OCw3ICsyOTQsMTMgQEAgbm5wZnNfbWVzc2FnZV9p
bnN0YWxsYXR0cihzdHJ1Y3Qgbm5wZnMgKg0KICAgICB9DQogDQogICAgIGlu
b2RlID0gWE5PREVfVE9fVk5PREUodCk7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBkZW50cnkgPSBs
aXN0X2VudHJ5KGlub2RlLT5pX2RlbnRyeS5uZXh0LCBzdHJ1Y3QgZGVudHJ5
LCBkX2FsaWFzKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDE5LDApDQorICAgIGRlbnRyeSA9IGhsaXN0X2VudHJ5
KGlub2RlLT5pX2RlbnRyeS5maXJzdCwgc3RydWN0IGRlbnRyeSwgZF9hbGlh
cyk7DQorI2Vsc2UNCisgICAgZGVudHJ5ID0gaGxpc3RfZW50cnkoaW5vZGUt
PmlfZGVudHJ5LmZpcnN0LCBzdHJ1Y3QgZGVudHJ5LCBkX3UuZF9hbGlhcyk7
DQorI2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCTVNHLCAoIm5u
cGZzX21lc3NhZ2VfaW5zdGFsbGF0dHIgbmFtZTolc1xuIiwNCiAJCSAgICAg
ICBkZW50cnktPmRfbmFtZS5uYW1lKSk7DQpAQCAtMzk2LDE3ICs0MjgsMzUg
QEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsZGF0YShzdHJ1Y3Qgbm5wZnMgKg0K
IHN0YXRpYyB2b2lkDQogY2xlYXJfYWxsX2NoaWxkcmVuIChzdHJ1Y3QgaW5v
ZGUgKmlub2RlLCBpbnQgcGFyZW50KQ0KIHsNCisgICAgc3RydWN0IGRlbnRy
eSAqZGVudHJ5Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDYsMCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqYWxpYXM7
DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Myw5LDApDQorICAgIHN0cnVjdCBobGlzdF9ub2RlICphbGlhczsNCisjZW5k
aWYNCiANCiAgYWdhaW46DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAgICAgc3Bpbl9sb2NrKCZkY2FjaGVf
bG9jayk7DQorI2Vsc2UNCisgICAgc3Bpbl9sb2NrKCZpbm9kZS0+aV9sb2Nr
KTsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMyw2LDApDQogICAgIGFsaWFzID0gaW5vZGUtPmlfZGVudHJ5
Lm5leHQ7DQogICAgIHdoaWxlIChhbGlhcyAhPSAmaW5vZGUtPmlfZGVudHJ5
KSB7DQotCXN0cnVjdCBkZW50cnkgKmRlbnRyeTsNCisjZWxpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisgICAgaGxp
c3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5LCBhbGlhcywgJmlub2RlLT5pX2Rl
bnRyeSwgZF9hbGlhcykgew0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hf
ZW50cnkoZGVudHJ5LCAmaW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQor
I2Vsc2UNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5LCAmaW5v
ZGUtPmlfZGVudHJ5LCBkX3UuZF9hbGlhcykgew0KKyNlbmRpZg0KIAlzdHJ1
Y3QgbGlzdF9oZWFkICpzdWJkaXJzOw0KIAlzdHJ1Y3Qgbm5wZnNfZGVudHJ5
X2RhdGEgKnhkOw0KIAkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMyw2LDApDQogCWRlbnRyeSA9IGxpc3RfZW50cnkoYWxp
YXMsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KKyNlbmRpZg0KIAlpZiAo
ZGVudHJ5ID09IE5VTEwpIHsNCiAJICAgIHByaW50ayhLRVJOX0VNRVJHICJO
TlBGUyBQYW5pYzogZGVudHJ5IGluIGFsaWFzIGxpc3QgaXMgbnVsbFxuIik7
DQogCSAgICBicmVhazsNCkBAIC00MjIsNyArNDcyLDExIEBAIGNsZWFyX2Fs
bF9jaGlsZHJlbiAoc3RydWN0IGlub2RlICppbm9kZSwNCiAJc3ViZGlycyA9
IGRlbnRyeS0+ZF9zdWJkaXJzLm5leHQ7DQogCXdoaWxlIChzdWJkaXJzICE9
ICZkZW50cnktPmRfc3ViZGlycykgew0KIAkgICAgc3RydWN0IGxpc3RfaGVh
ZCAqdG1wID0gc3ViZGlyczsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAkgICAgc3RydWN0IGRlbnRyeSAq
Y2hpbGQgPSBsaXN0X2VudHJ5KHRtcCwgc3RydWN0IGRlbnRyeSwgZF91LmRf
Y2hpbGQpOw0KKyNlbHNlDQorCSAgICBzdHJ1Y3QgZGVudHJ5ICpjaGlsZCA9
IGxpc3RfZW50cnkodG1wLCBzdHJ1Y3QgZGVudHJ5LCBkX2NoaWxkKTsNCisj
ZW5kaWYNCiAJICAgIHN1YmRpcnMgPSB0bXAtPm5leHQ7DQogCSAgICBOTlBG
U0RFQihYREVCTVNHLCAoImNsZWFyX2FsbF9jaGlsZHJlbiBjaGlsZDogJS4q
cyBpbm9kZTogJXAvJXAgIg0KIAkJCSAgICAgICAiZGNvdW50OiAlZCBhbGlh
c2VzOlxuIiwNCkBAIC00NDIsMTQgKzQ5NiwyNCBAQCBjbGVhcl9hbGxfY2hp
bGRyZW4gKHN0cnVjdCBpbm9kZSAqaW5vZGUsDQogDQogCSAgICAvKiBUaHJv
dyBpbW1lZGlhdGVseSAqLw0KIAkgICAgaWYgKG5ucGZzX2Rjb3VudChjaGls
ZCkgPT0gMCkgew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigyLDYsMzgpDQogCSAgICAgICAgc3Bpbl91bmxvY2soJmRjYWNo
ZV9sb2NrKTsNCisjZWxzZQ0KKwkgICAgICAgIHNwaW5fdW5sb2NrKCZpbm9k
ZS0+aV9sb2NrKTsNCisjZW5kaWYNCiAJCW5ucGZzX2RfcmVtb3ZlKGNoaWxk
KTsNCiAJCWdvdG8gYWdhaW47DQogCSAgICB9DQogCX0NCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogCWFsaWFz
ID0gYWxpYXMtPm5leHQ7DQorI2VuZGlmDQogICAgIH0NCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KICAgICBz
cGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorICAgIHNwaW5f
dW5sb2NrKCZpbm9kZS0+aV9sb2NrKTsNCisjZW5kaWYNCiB9DQogDQogc3Rh
dGljIHZvaWQNCkBAIC02MDUsMTIgKzY2OSwxMCBAQCBnY19ibG9jayhzdHJ1
Y3Qgbm5wZnMgKm5ucGZzcCwNCiAgICAgfQ0KIA0KICAgICBpZiAoIW5ucGZz
X2Jsb2NrX2hhdmVfcCh4biwgb2Zmc2V0KSkgew0KLSNpZiAwICAgLyogaGFw
cGVucyB3aGVuIGRhZW1vbiBzZW5kcyBzZXZlcmFsIG1lc3NhZ2VzIGZvciBz
YW1lIGJsb2NrICovDQogCXByaW50ayhLRVJOX0VNRVJHICJOTlBGUy9nY19i
bG9jazogIg0KIAkgICAgICAgIkVOT0VOVCAoJWQsJWQsJWQsJWQpIDB4JWxs
eFxuIiwgDQogCSAgICAgICB4bi0+aGFuZGxlLmEsIHhuLT5oYW5kbGUuYiwg
eG4tPmhhbmRsZS5jLCB4bi0+aGFuZGxlLmQsIA0KIAkgICAgICAgKHVuc2ln
bmVkIGxvbmcgbG9uZylvZmZzZXQpOw0KLSNlbmRpZg0KIAlyZXR1cm4gLUVO
T0VOVDsNCiAgICAgfQ0KIA0KQEAgLTcyMSwxMiArNzgzLDIyIEBAIG5ucGZz
X21lc3NhZ2VfdmVyc2lvbihzdHJ1Y3Qgbm5wZnMgKm5ucGYNCiANCiAgICAg
Lyogc2FuaXR5IGNoZWNrIGJlZm9yZSB3ZSBsb29rIGF0IGl0ICovDQogICAg
IGlmIChzaXplID09IHNpemVvZigqbWVzc2FnZSkgJiYgbWVzc2FnZS0+dmVy
c2lvbiA9PSBOTlBGU19WRVJTSU9OKSB7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJc3RydWN0IG5hbWVp
ZGF0YSBuZDsNCisjZWxzZQ0KKwlzdHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRp
Zg0KIAlpbnQgZXJyb3I7DQogDQogCXVpbnQ2NF90IGJsb2Nrc2l6ZSA9IG1l
c3NhZ2UtPmJsb2Nrc2l6ZTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KIAllcnJvciA9IHBhdGhfbG9v
a3VwKCIuIiwgMCwgJm5kKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCWVycm9yID0ga2Vybl9wYXRo
KCIuIiwgMCwgJm5kLnBhdGgpOw0KKyNlbHNlDQorCWVycm9yID0ga2Vybl9w
YXRoKCIuIiwgMCwgJnBhdGgpOw0KKyNlbmRpZg0KIAlpZiAoZXJyb3IpIHsN
CiAJICAgIC8qDQogCSAgICAgKiBCYWQgY2FjaGUgcm9vdCwganVzdCByZXR1
cm4uDQpAQCAtNzM3LDEyICs4MDksMjMgQEAgbm5wZnNfbWVzc2FnZV92ZXJz
aW9uKHN0cnVjdCBubnBmcyAqbm5wZg0KIAkJICAgIm5ucGZzX21lc3NhZ2Vf
dmVyc2lvbiBmYWlsZWQgcGF0aF9sb29rdXAsICINCiAJCSAgICJlcnJubzog
JWRcbiIsIGVycm9yKTsNCiAJfSBlbHNlIHsNCi0JICAgIG5ucGZzcC0+Y2Fj
aGVyb290ID0gbW50Z2V0KG5kLm1udCk7DQotCSAgICBubnBmc3AtPmNhY2hl
ZGlyID0gZGdldChuZC5kZW50cnkpOw0KLQkgICAgcGF0aF9yZWxlYXNlKCZu
ZCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMTksMCkNCisJICAgIG5ucGZzcC0+Y2FjaGVyb290ID0gbW50Z2V0KG5k
LnBhdGgubW50KTsNCisJICAgIG5ucGZzcC0+Y2FjaGVkaXIgPSBkZ2V0KG5k
LnBhdGguZGVudHJ5KTsNCisJICAgIHBhdGhfcHV0KCZuZC5wYXRoKTsNCisj
ZWxzZQ0KKwkgICAgbm5wZnNwLT5jYWNoZXJvb3QgPSBtbnRnZXQocGF0aC5t
bnQpOw0KKwkgICAgbm5wZnNwLT5jYWNoZWRpciA9IGRnZXQocGF0aC5kZW50
cnkpOw0KKwkgICAgcGF0aF9wdXQoJnBhdGgpOw0KKyNlbmRpZg0KIAkgICAg
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs
NiwyOSkNCiAJICAgIG5ucGZzcC0+dWlkID0gY3VycmVudC0+ZnN1aWQ7DQog
CSAgICBubnBmc3AtPmdpZCA9IGN1cnJlbnQtPmZzZ2lkOw0KKyNlbHNlDQor
ICAgICAgICAgICAgbm5wZnNwLT51aWQgPSBjdXJyZW50X2ZzdWlkKCk7DQor
ICAgICAgICAgICAgbm5wZnNwLT5naWQgPSBjdXJyZW50X2ZzZ2lkKCk7DQor
I2VuZGlmDQogDQogCSAgICAvKiBYWFggd2Ugc2hvdWxkIHZhbGlkYXRlIHRo
ZXNlIHZhbHVlcyAqLw0KIAkgICAgbm5wZnNfYmxvY2tzaXplID0gYmxvY2tz
aXplOw0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xkL25ucGZz
L2xpbnV4L25ucGZzX25vZGUuYyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5w
ZnNfbm9kZS5jDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBm
c19ub2RlLmMJMjAwNy0wMS0wMyAxNDo1MjowMi4wMDAwMDAwMDAgKzAxMDAN
CisrKyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfbm9kZS5jCTIwMTYt
MDUtMDYgMTc6MDE6MTAuMDAwMDAwMDAwICswMjAwDQpAQCAtMTMyLDcgKzEz
MiwxMiBAQCBubnBmc19zZXRzaXplKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVp
bnQ2DQogCXByaW50aygibm5wZnNfc2V0c2l6ZTogdHJ1bmNhdGluZyBAMHgl
bGx1XG4iLA0KIAkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZylzaXplKTsN
CiAjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMyw4LDApDQogCXZtdHJ1bmNhdGUoaW5vZGUsIHNpemUpOyAvKiBY
WFggcmV0dmFsICovDQorI2Vsc2UNCisJaWYoIWlub2RlX25ld3NpemVfb2so
aW5vZGUsIHNpemUpKQ0KKwkgICAgdHJ1bmNhdGVfc2V0c2l6ZShpbm9kZSwg
c2l6ZSk7DQorI2VuZGlmDQogCW5ucGZzX2Jsb2NrX3RydW5jYXRlKHhuLCBz
aXplKTsNCiAgICAgfQ0KIH0NCkBAIC0xNTAsOSArMTU1LDE4IEBAIG5ucGZz
X2F0dHIyaW5vZGUoY29uc3Qgc3RydWN0IG5ucGZzX2F0dHINCiAJc3RydWN0
IHRpbWVzcGVjIG5vdGltZSA9IHswfTsNCiANCiAJaW5vZGUtPmlfbW9kZSAg
ID0gMDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMywxNCwwKQ0KIAlpbm9kZS0+aV91aWQgICAgPSAwOw0KIAlpbm9kZS0+
aV9naWQgICAgPSAwOw0KKyNlbHNlDQorCWlub2RlLT5pX3VpZCAgICA9IEtV
SURUX0lOSVQoMCk7DQorCWlub2RlLT5pX2dpZCAgICA9IEtHSURUX0lOSVQo
MCk7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMiwwKQ0KIAlpbm9kZS0+aV9ubGluayAgPSAxOw0KKyNl
bHNlDQorCXNldF9ubGluayhpbm9kZSwgMSk7DQorI2VuZGlmDQogCWlub2Rl
LT5pX2F0aW1lICA9IG5vdGltZTsNCiAJaW5vZGUtPmlfbXRpbWUgID0gbm90
aW1lOw0KIAlpbm9kZS0+aV9jdGltZSAgPSBub3RpbWU7DQpAQCAtMTY5LDcg
KzE4MywxMSBAQCBubnBmc19hdHRyMmlub2RlKGNvbnN0IHN0cnVjdCBubnBm
c19hdHRyDQogICAgIGlmIChYQV9WQUxJRF9HSUQoYXR0cikpDQogCWlub2Rl
LT5pX2dpZCAgICA9IGF0dHItPnhhX2dpZDsNCiAgICAgaWYgKFhBX1ZBTElE
X05MSU5LKGF0dHIpKQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDIsMCkNCiAJaW5vZGUtPmlfbmxpbmsgID0gYXR0ci0+
eGFfbmxpbms7DQorI2Vsc2UNCisJc2V0X25saW5rKGlub2RlLCBhdHRyLT54
YV9ubGluayk7DQorI2VuZGlmDQogICAgIA0KICAgICBpZiAoWEFfVkFMSURf
U0laRShhdHRyKSkgew0KIAlubnBmc19zZXRzaXplKGlub2RlLCBhdHRyLT54
YV9zaXplKTsNCkBAIC0yNjYsNiArMjg0LDkgQEAgbm5wZnNfZmlsbF9pbm9k
ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdA0KIAlpbm9kZS0+aV9vcCAgPSAm
bm5wZnNfbGlua19pbm9kZV9vcGVyYXRpb25zOw0KIAlpbm9kZS0+aV9mb3Ag
PSAmbm5wZnNfbGlua19vcGVyYXRpb25zOw0KIAlpbm9kZS0+aV9tYXBwaW5n
LT5hX29wcyA9ICZubnBmc19hb3BzOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPj0gS0VSTkVMX1ZFUlNJT04oNCw1LDApDQorCWlub2RlX25vaGlnaG1l
bShpbm9kZSk7DQorI2VuZGlmDQogICAgIH0gZWxzZSB7DQogCWlub2RlLT5p
X29wICA9ICZubnBmc19kZWFkX2lub2RlX29wZXJhdGlvbnM7DQogCWlub2Rl
LT5pX2ZvcCA9ICZubnBmc19kZWFkX29wZXJhdGlvbnM7DQpAQCAtNTEwLDEy
ICs1MzEsMjQgQEAgbm5wZnNfaGFzX3BhZyhjb25zdCBzdHJ1Y3Qgbm5wZnNf
bm9kZSAqeA0KIGludA0KIG5ucGZzX25vZGVfdXNlcnMoc3RydWN0IGlub2Rl
ICppbm9kZSkNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsNiwwKQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpwb3M7
DQorI2Vsc2UNCisgICAgc3RydWN0IGhsaXN0X25vZGUgKnBvczsNCisjZW5k
aWYNCiAgICAgaW50IHVzZXJzID0gMDsNCiAgICAgDQogICAgIC8qIFhYWCB0
aGlzIHNob3VsZCBwcm9iYWJseSBiZSBwcm90ZWN0ZWQgc29tZWhvdyAqLw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs
MCkNCiAgICAgbGlzdF9mb3JfZWFjaChwb3MsICZpbm9kZS0+aV9kZW50cnkp
IHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaChwb3MsICZpbm9kZS0+
aV9kZW50cnkpIHsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAlzdHJ1Y3QgZGVudHJ5ICpk
ZW50cnkgPSBsaXN0X2VudHJ5KHBvcywgc3RydWN0IGRlbnRyeSwgZF9hbGlh
cyk7DQorI2Vsc2UNCisJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gbGlzdF9l
bnRyeShwb3MsIHN0cnVjdCBkZW50cnksIGRfdS5kX2FsaWFzKTsNCisjZW5k
aWYNCiAJaWYgKG5ucGZzX2Rjb3VudChkZW50cnkpID4gMSkNCiAJICAgIHVz
ZXJzKys7DQogICAgIH0NCmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS0wLjkw
LW9sZC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy5jIGFybGEtMC45MC9u
bnBmcy9saW51eC9ubnBmc19zeXNjYWxscy5jDQotLS0gYXJsYS0wLjkwLW9s
ZC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy5jCTIwMDctMDEtMDMgMTU6
MjY6MjcuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS0wLjkwL25ucGZzL2xp
bnV4L25ucGZzX3N5c2NhbGxzLmMJMjAxNi0wMi0yMCAxOTo0Mzo0Mi4wMDAw
MDAwMDAgKzAxMDANCkBAIC00Miw3ICs0Miw5IEBADQogI2luY2x1ZGUgPG5u
cGZzL25ucGZzX3N5c2NhbGxzLmg+DQogI2luY2x1ZGUgPG5ucGZzL25ucGZz
X2NvbW1vbi5oPg0KICNpbmNsdWRlIDxsaW51eC9maWxlLmg+DQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAj
aW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4NCisjZW5kaWYNCiAjaW5jbHVk
ZSA8bGludXgvc21wLmg+DQogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4N
CiANCkBAIC01MCw2ICs1MiwxMSBAQA0KICNpbmNsdWRlIDxsaW51eC9zZWN1
cml0eS5oPg0KICNlbmRpZg0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
Pj0gS0VSTkVMX1ZFUlNJT04oMyw3LDApDQorI3VuZGVmIFNZU0NBTExIQUNL
DQorLyogdGhlIG1ldGhvZCB0byByZWFkICdsb3dlcl9ib3VuZCcgZG9lcyBu
b3Qgd29yayBvbiBrZXJuZWwgMy43IGFuZCBsYXRlciwgc2Ugbm5wZnNfc3lz
Y2FsbHMtbG9zc2FnZS5jICovDQorI2VuZGlmDQorDQogI2lmIDANCiAjaWZk
ZWYgQ09ORklHX0NPTVBBVA0KICNpbmNsdWRlIDxsaW51eC9pb2N0bDMyLmg+
DQpAQCAtNjQsNyArNzEsNyBAQA0KICN1bmRlZiBORUVEX1ZJQ0VJT0NUTDMy
DQogDQogI2lmZGVmIFJDU0lEDQotUkNTSUQoIiRJZDogbm5wZnNfc3lzY2Fs
bHMuYyx2IDEuMTIyIDIwMDcvMDEvMDMgMTQ6MjY6MjcgdG9sIEV4cCAkIik7
DQorUkNTSUQoIiRJZDogbm5wZnNfc3lzY2FsbHMuYyx2IDEuMTI1IDIwMTAv
MDgvMDggMjA6NDM6MDYgdG9sIEV4cCAkIik7DQogI2VuZGlmDQogDQogc3Rh
dGljIHN0cnVjdCBwcm9jX2Rpcl9lbnRyeSAqbm5wZnNfcHJvY2ZzX2RpcjsN
CkBAIC04MiwxMiArODksMjIgQEAgdHlwZWRlZiBzdHJ1Y3QgYWZzcHJvY2Rh
dGEgew0KICAgICB1bnNpZ25lZCBsb25nIHN5c2NhbGw7DQogfSBhZnNwcm9j
ZGF0YTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMiw2LDM2KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19wcm9jZnNfaW9j
dGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsDQog
CQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7DQor
I2Vsc2UNCitzdGF0aWMgbG9uZw0KK25ucGZzX3Byb2Nmc19pb2N0bChzdHJ1
Y3QgZmlsZSAqZmlsZSwNCisJCSAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2ln
bmVkIGxvbmcgYXJnKTsNCisjZW5kaWYNCiANCiBzdGF0aWMgc3RydWN0IGZp
bGVfb3BlcmF0aW9ucyBubnBmc19wcm9jZnNfZm9wcyA9IHsNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KQ0KICAg
ICAuaW9jdGwgPSBubnBmc19wcm9jZnNfaW9jdGwsDQorI2Vsc2UNCisgICAg
LnVubG9ja2VkX2lvY3RsID0gbm5wZnNfcHJvY2ZzX2lvY3RsLA0KKyNlbmRp
Zg0KIH07DQogDQogDQpAQCAtMTQ3LDUzICsxNjQsNDggQEAgc3RhdGljIGlu
dCBubnBmc19zZWNfcmVnaXN0ZXJlZCA9IDA7DQogI2RlZmluZSBTRUMyUEFH
KHMpIChubnBmc19wYWdfdCkodW5zaWduZWQgbG9uZykocykNCiAjZGVmaW5l
IFBBRzJTRUMocCkgKHZvaWQgKikodW5zaWduZWQgbG9uZykocCkNCiANCi1z
dGF0aWMgaW50DQotbm5wZnNfc2VjX3Rhc2tfYWxsb2Moc3RydWN0IHRhc2tf
c3RydWN0ICpwKQ0KLXsNCi0gICAgbm5wZnNfcGFnX3QgcGFnID0gU0VDMlBB
RyhjdXJyZW50LT5zZWN1cml0eSk7DQotICAgIGlmIChwYWcpDQotCXAtPnNl
Y3VyaXR5ID0gUEFHMlNFQyhwYWcpOw0KLSAgICByZXR1cm4gMDsNCi19DQot
DQotc3RhdGljIHZvaWQNCi1ubnBmc19zZWNfdGFza19mcmVlKHN0cnVjdCB0
YXNrX3N0cnVjdCAqcCkNCi17DQotICAgIG5ucGZzX3BhZ190IHBhZyA9IFNF
QzJQQUcocC0+c2VjdXJpdHkpOw0KLSAgICBpZiAocGFnKQ0KLQlwLT5zZWN1
cml0eSA9IE5VTEw7DQotfQ0KLQ0KIHN0YXRpYyBubnBmc19wYWdfdA0KIG5u
cGZzX2dldF9wYWdfc2VjKHZvaWQpDQogew0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBubnBmc19w
YWdfdCBwYWcgPSBTRUMyUEFHKGN1cnJlbnQtPnNlY3VyaXR5KTsNCisjZWxz
ZQ0KKyAgICBubnBmc19wYWdfdCBwYWcgPSBTRUMyUEFHKGN1cnJlbnRfc2Vj
dXJpdHkoKSk7DQorI2VuZGlmDQogICAgIGlmIChwYWcpDQogCXJldHVybiBw
YWc7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVS
U0lPTigyLDYsMjgpDQogICAgIHJldHVybiBjdXJyZW50LT51aWQ7DQorI2Vs
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCww
KQ0KKyAgICByZXR1cm4gY3VycmVudF91aWQoKTsNCisjZWxzZQ0KKyAgICB7
IGt1aWRfdCBrdWlkID0gY3VycmVudF91aWQoKTsgcmV0dXJuIGt1aWQudmFs
OyB9DQorI2VuZGlmDQogfQ0KIA0KIHN0YXRpYyBpbnQNCiBubnBmc19zZXRf
cGFnX3NlYyh2b2lkKQ0KIHsNCiAgICAgc3RhdGljIG5ucGZzX3BhZ190IHBh
Z251bSA9IE5OUEZTX1BBR19MTElNOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KKyAgICBzdHJ1Y3QgY3Jl
ZCAqY3JlZDsNCisjZW5kaWYNCiANCiAgICAgaWYgKHBhZ251bSA9PSBOTlBG
U19QQUdfVUxJTSkNCiAJcmV0dXJuIC1FTk9NRU07DQogICAgIC8qIHBhZ251
bSA9IE5OUEZTX1BBR19MTElNOyAqLw0KICAgICANCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgY3Vy
cmVudC0+c2VjdXJpdHkgPSBQQUcyU0VDKHBhZ251bSk7DQorI2Vsc2UNCisg
ICAgY3JlZCA9IChzdHJ1Y3QgY3JlZCAqKSBjdXJyZW50LT5jcmVkOw0KKyAg
ICBjcmVkLT5zZWN1cml0eSA9IFBBRzJTRUMocGFnbnVtKTsNCisjZW5kaWYN
CiAgICAgcGFnbnVtKys7DQogICAgIHJldHVybiAwOw0KIH0NCiANCi1zdGF0
aWMgc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgbm5wZnNfc2VjX29wcyA9
IHsNCi0gICAgLnRhc2tfYWxsb2Nfc2VjdXJpdHkgPSBubnBmc19zZWNfdGFz
a19hbGxvYywNCi0gICAgLnRhc2tfZnJlZV9zZWN1cml0eSA9IG5ucGZzX3Nl
Y190YXNrX2ZyZWUsDQotLy8gICAgLnRhc2tfcmVwYXJlbnRfdG9faW5pdCA9
IG5ucGZzX3NlY19yZXBhcmVudF90b19pbml0LA0KLX07DQotDQogI2VuZGlm
IC8qIENPTkZJR19TRUNVUklUWSAqLw0KIA0KICNpZmRlZiBHUk9VUFBBR1MN
CkBAIC0yMDYsNyArMjE4LDEyIEBAIGZpbmRfcGFnKHN0cnVjdCBncm91cF9p
bmZvICpnaSkNCiAgICAgTk5QRlNERUIoWERFQlNZUywgKCJmaW5kX3BhZzog
bmdyb3VwcyA9ICVkXG4iLCBnaS0+bmdyb3VwcykpOw0KIA0KICAgICBmb3Ig
KGkgPSBnaS0+bmdyb3VwcyAtIDE7IGkgPj0gMDsgaS0tKSB7DQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAJ
Z2lkX3QgZ3JvdXAgPSBHUk9VUF9BVChnaSwgaSk7DQorI2Vsc2UNCisJa2dp
ZF90IGtncm91cCA9IEdST1VQX0FUKGdpLCBpKTsNCisJZ2lkX3QgZ3JvdXAg
PSBrZ3JvdXAudmFsOw0KKyNlbmRpZg0KIAlpZiAoKG5ucGZzX3BhZ190KWdy
b3VwID49IE5OUEZTX1BBR19MTElNICYmIChubnBmc19wYWdfdClncm91cCA8
IE5OUEZTX1BBR19VTElNKSB7DQogCSAgICBOTlBGU0RFQihYREVCU1lTLA0K
IAkJICAgICAoImZpbmRfcGFnOiBFeGlzdGluZyBwYWcgJXUgYXQgcG9zICV1
XG4iLCBncm91cCwgaSkpOw0KQEAgLTIyMiwxNSArMjM5LDMxIEBAIGZpbmRf
cGFnKHN0cnVjdCBncm91cF9pbmZvICpnaSkNCiBzdGF0aWMgbm5wZnNfcGFn
X3QNCiBubnBmc19nZXRfcGFnX2dyb3VwKHZvaWQpDQogew0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAg
ICBzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ2kgPSBjdXJyZW50LT5ncm91cF9pbmZv
Ow0KICAgICBubnBmc19wYWdfdCByZXQgPSBjdXJyZW50LT51aWQ7DQorI2Vs
c2UNCisgICAgc3RydWN0IGdyb3VwX2luZm8gKmdpID0gZ2V0X2N1cnJlbnRf
Z3JvdXBzKCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTQsMCkNCisgICAgbm5wZnNfcGFnX3QgcmV0ID0gY3VycmVu
dF91aWQoKTsNCisjZWxzZQ0KKyAgICBrdWlkX3Qga3VpZCA9IGN1cnJlbnRf
dWlkKCk7DQorICAgIG5ucGZzX3BhZ190IHJldCA9IGt1aWQudmFsOw0KKyNl
bmRpZg0KKyNlbmRpZg0KICAgICBpbnQgaTsNCiANCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgZ2V0
X2dyb3VwX2luZm8oZ2kpOw0KKyNlbmRpZg0KIA0KICAgICBpID0gZmluZF9w
YWcoZ2kpOw0KICAgICBpZiAoaSAhPSBOTlBGU19QQUdfTk9URk9VTkQpDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQs
MCkNCiAJcmV0ID0gR1JPVVBfQVQoZ2ksIGkpOw0KKyNlbHNlDQorCXsga2dp
ZF90IGtnaWQgPSBHUk9VUF9BVChnaSwgaSk7IHJldCA9IGtnaWQudmFsOyB9
DQorI2VuZGlmDQogDQogICAgIHB1dF9ncm91cF9pbmZvKGdpKTsNCiANCkBA
IC0yNDIsMTMgKzI3NSwxOSBAQCBubnBmc19nZXRfcGFnX2dyb3VwKHZvaWQp
DQogc3RhdGljIGludA0KIHN0b3JlX3BhZyhubnBmc19wYWdfdCBwYWdudW0p
DQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJ
T04oMiw2LDI4KQ0KICAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAqb2xkX2dpID0g
Y3VycmVudC0+Z3JvdXBfaW5mbzsNCisjZWxzZQ0KKyAgIHN0cnVjdCBncm91
cF9pbmZvICpvbGRfZ2kgPSBnZXRfY3VycmVudF9ncm91cHMoKTsNCisjZW5k
aWYNCiAgICAgc3RydWN0IGdyb3VwX2luZm8gKm5ld19naTsNCi0gICAgaW50
IG5ibG9ja3MsIGNvdW50Ow0KKyAgICB1bnNpZ25lZCBpbnQgbmJsb2Nrcywg
Y291bnQ7DQogICAgIGludCBmb3VuZCA9IDA7DQogICAgIGludCBpLCBrOw0K
ICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJT
SU9OKDIsNiwyOCkgICAgDQogICAgIGdldF9ncm91cF9pbmZvKG9sZF9naSk7
DQorI2VuZGlmDQogDQogICAgIGkgPSBmaW5kX3BhZyhvbGRfZ2kpOw0KICAg
ICBpZiAoaSAhPSBOTlBGU19QQUdfTk9URk9VTkQpDQpAQCAtMjc0LDEwICsz
MTMsMTcgQEAgc3RvcmVfcGFnKG5ucGZzX3BhZ190IHBhZ251bSkNCiAJY291
bnQgLT0gTkdST1VQU19QRVJfQkxPQ0s7DQogICAgIH0NCiANCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KICAg
ICBpZiAoZm91bmQpDQogCUdST1VQX0FUKG5ld19naSwgaSkgPSBwYWdudW07
DQogICAgIGVsc2UNCiAJR1JPVVBfQVQobmV3X2dpLCBuZXdfZ2ktPm5ncm91
cHMgLSAxKSA9IHBhZ251bTsNCisjZWxzZQ0KKyAgICBpZiAoZm91bmQpDQor
CXsga2dpZF90IGtnaWQgPSBLR0lEVF9JTklUKHBhZ251bSk7IEdST1VQX0FU
KG5ld19naSwgaSkgPSBrZ2lkOyB9DQorICAgIGVsc2UNCisJeyBrZ2lkX3Qg
a2dpZCA9IEtHSURUX0lOSVQocGFnbnVtKTsgR1JPVVBfQVQobmV3X2dpLCBu
ZXdfZ2ktPm5ncm91cHMgLSAxKSA9IGtnaWQ7IH0NCisjZW5kaWYNCiAgICAg
DQogICAgIHNldF9jdXJyZW50X2dyb3VwcyhuZXdfZ2kpOw0KICAgICBwdXRf
Z3JvdXBfaW5mbyhuZXdfZ2kpOw0KQEAgLTMxNyw3ICszNjMsMTMgQEAgbm5w
ZnNfZ2V0X3BhZygpDQogICAgIHJldHVybiBubnBmc19nZXRfcGFnX2dyb3Vw
KCk7DQogI2VuZGlmIC8qIEdST1VQUEFHUyAqLw0KIA0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBy
ZXR1cm4gY3VycmVudC0+dWlkOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCisgICAgcmV0dXJuIGN1cnJl
bnRfdWlkKCk7DQorI2Vsc2UNCisgICAgeyBrdWlkX3Qga3VpZCA9IGN1cnJl
bnRfdWlkKCk7IHJldHVybiBrdWlkLnZhbDsgfQ0KKyNlbmRpZg0KIH0NCiAN
CiBzdGF0aWMgaW5saW5lIGludA0KQEAgLTQyMiw3ICs0NzQsNyBAQCBubnBm
c19zZXRncm91cHMxNiAoaW50IGdpZHNldHNpemUsIG9sZF9nDQogI2VuZGlm
IC8qIFNZU0NBTExIQUNLICovDQogI2VuZGlmIC8qIEdST1VQUEFHUyAqLw0K
IA0KLXN0cnVjdCBmaWxlX2hhbmRsZSB7DQorc3RydWN0IG5ucGZzX2ZpbGVf
aGFuZGxlIHsNCiAgICAgbm5wZnNfZGV2X3QgZGV2Ow0KICAgICBpbm9fdCBp
bm9kZTsNCiAgICAgX191MzIgZ2VuOw0KQEAgLTUwOSwyNiArNTYxLDU4IEBA
IG5ucGZzX2RlYnVnX3ByaW50IChzdHJ1Y3QgYXJsYVZpY2VJb2N0bCANCiAg
KiBmb2xsb3cgc3ltbGlua3MgaWZmIGBmb2xsb3cnDQogICovDQogDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkN
CiBzdGF0aWMgc3RydWN0IGRlbnRyeSAqDQogdXNlcl9wYXRoMmRlbnRyeSAo
c3RydWN0IG5hbWVpZGF0YSAqbmQsIGNoYXIgKnVzZXJfcGF0aCwgaW50IGZv
bGxvdykNCisjZWxzZQ0KK3N0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoNCit1c2Vy
X3BhdGgyZGVudHJ5IChzdHJ1Y3QgcGF0aCAqcGF0aCwgY2hhciAqdXNlcl9w
YXRoLCBpbnQgZm9sbG93KQ0KKyNlbmRpZg0KIHsNCiAgICAgY2hhciAqa25h
bWU7DQogICAgIGludCBmbGFncyA9IDA7DQogICAgIGludCBlcnJvciA9IDA7
DQogDQotICAgIGtuYW1lID0gZ2V0bmFtZSAodXNlcl9wYXRoKTsNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw3LDApDQor
ICAgIGtuYW1lID0gZ2V0bmFtZSh1c2VyX3BhdGgpOw0KKyNlbHNlDQorICAg
IGtuYW1lID0gX19nZXRuYW1lKCk7DQorI2VuZGlmDQorDQogICAgIGlmIChJ
U19FUlIoa25hbWUpKQ0KIAlyZXR1cm4gRVJSX1BUUihQVFJfRVJSKGtuYW1l
KSk7DQogICAgIGlmIChmb2xsb3cpDQogCWZsYWdzIHw9IExPT0tVUF9GT0xM
T1c7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVS
U0lPTigzLDcsMCkNCisgICAgZXJyb3IgPSBzdHJuY3B5X2Zyb21fdXNlcihr
bmFtZSwgdXNlcl9wYXRoLCBQQVRIX01BWCk7DQorICAgIGlmIChlcnJvciA8
IDAgfHwgZXJyb3IgPT0gUEFUSF9NQVgpIHsNCisJX19wdXRuYW1lKGtuYW1l
KTsNCisJcmV0dXJuIEVSUl9QVFIoZXJyb3IpOw0KKyAgICB9DQorI2VuZGlm
DQorDQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfc3lzY2FsbDog
bG9va2luZyB1cDogJXNcbiIsIGtuYW1lKSk7DQogDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAgZXJy
b3IgPSBwYXRoX2xvb2t1cChrbmFtZSwgZmxhZ3MsIG5kKTsNCisjZWxpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQor
ICAgIGVycm9yID0ga2Vybl9wYXRoKGtuYW1lLCBmbGFncywgJihuZC0+cGF0
aCkpOw0KKyNlbHNlDQorICAgIGVycm9yID0ga2Vybl9wYXRoKGtuYW1lLCBm
bGFncywgcGF0aCk7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0KICAgICBwdXRuYW1lKGtuYW1l
KTsNCisjZWxzZQ0KKyAgICBfX3B1dG5hbWUoa25hbWUpOw0KKyNlbmRpZg0K
ICAgICBpZiAoZXJyb3IpDQogCXJldHVybiBFUlJfUFRSKGVycm9yKTsNCi0g
ICAgcmV0dXJuIG5kLT5kZW50cnk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgcmV0dXJuIG5kLT5w
YXRoLmRlbnRyeTsNCisjZWxzZQ0KKyAgICByZXR1cm4gcGF0aC0+ZGVudHJ5
Ow0KKyNlbmRpZg0KIH0NCiANCiBhc21saW5rYWdlIGxvbmcNCkBAIC01NDAs
MTIgKzYyNCwyNCBAQCBzeXNfYWZzX2ludCAoaW50IG9wZXJhdGlvbiwNCiB7
DQogICAgIGxvbmcgZXJyb3IgPSAwOw0KICAgICBzdHJ1Y3QgYXJsYVZpY2VJ
b2N0bCB2aWNlX2lvY3RsOyANCi0gICAgc3RydWN0IG5ucGZzX21lc3NhZ2Vf
cGlvY3RsIG1zZzsNCisgICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfcGlvY3Rs
ICptc2cgPSBOVUxMOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV93YWtl
dXAgKm1zZzI7DQogICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IE5VTEw7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTksMCkNCiAgICAgc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0KKyAg
ICBzdHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KICAgICANCisgICAgbXNn
ID0ga21hbGxvYyhzaXplb2YoKm1zZyksIEdGUF9LRVJORUwpOw0KKyAgICBp
ZiAobXNnID09IE5VTEwpDQorICAgICAgcmV0dXJuIC1FTk9NRU07DQorDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwz
OSkNCiAgICAgbG9ja19rZXJuZWwoKTsNCisjZWxzZQ0KKyAgICAvKiBYWFgg
bG9ja19rZXJuZWwoKSBpcyByZW1vdmVkLCBjb25zaWRlciBhZGRpbmcgYW4g
cHJpdmF0ZSBsb2NrICovDQorI2VuZGlmDQogDQogICAgIE5OUEZTREVCKFhE
RUJTWVMsICgic3lzX2FmcyBrZXJuZWwgbG9ja2VkXG4iKSk7DQogDQpAQCAt
NTc1LDcgKzY3MSw3IEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9uLA0K
IAkgICAgZ290byB1bmxvY2s7DQogCX0NCiAJaWYgKHZpY2VfaW9jdGwuaW5f
c2l6ZSAhPSAwKSB7DQotCSAgICBpZihjb3B5X2Zyb21fdXNlcigmbXNnLm1z
ZywNCisJICAgIGlmKGNvcHlfZnJvbV91c2VyKCZtc2ctPm1zZywNCiAJCQkg
ICAgICB2aWNlX2lvY3RsLmluLA0KIAkJCSAgICAgIHZpY2VfaW9jdGwuaW5f
c2l6ZSkgIT0gMCkgew0KIAkJZXJyb3IgPSAtRUZBVUxUOw0KQEAgLTU4Myw3
ICs2NzksMTEgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQogCSAg
ICB9DQogCX0NCiAJaWYgKGFfcGF0aFAgIT0gTlVMTCkgew0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCSAg
ICBkZW50cnkgPSB1c2VyX3BhdGgyZGVudHJ5ICgmbmQsIGFfcGF0aFAsIGFf
Zm9sbG93U3ltbGlua3MpOw0KKyNlbHNlDQorCSAgICBkZW50cnkgPSB1c2Vy
X3BhdGgyZGVudHJ5ICgmcGF0aCwgYV9wYXRoUCwgYV9mb2xsb3dTeW1saW5r
cyk7DQorI2VuZGlmDQogCSAgICBpZiAoIWRlbnRyeSkgew0KIAkJZXJyb3Ig
PSAtRUlOVkFMOw0KIAkJZ290byB1bmxvY2s7DQpAQCAtNjI4LDE5ICs3Mjgs
MjMgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQogCQllcnJvciA9
IC1FSU5WQUw7DQogCQlnb3RvIHVubG9jazsNCiAJICAgIH0NCi0JICAgIG1z
Zy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KKwkgICAgbXNnLT5oYW5kbGUgPSB4
bi0+aGFuZGxlOw0KIAl9DQogDQotCW1zZy5oZWFkZXIub3Bjb2RlID0gTk5Q
RlNfTVNHX1BJT0NUTDsNCi0JbXNnLm9wY29kZSA9IGFfb3Bjb2RlOw0KKwlt
c2ctPmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfUElPQ1RMOw0KKwltc2ct
Pm9wY29kZSA9IGFfb3Bjb2RlOw0KIAkNCi0JbXNnLmluc2l6ZSAgID0gdmlj
ZV9pb2N0bC5pbl9zaXplOw0KLQltc2cub3V0c2l6ZSAgPSB2aWNlX2lvY3Rs
Lm91dF9zaXplOw0KLQltc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQot
CW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCisJbXNnLT5pbnNp
emUgICA9IHZpY2VfaW9jdGwuaW5fc2l6ZTsNCisJbXNnLT5vdXRzaXplICA9
IHZpY2VfaW9jdGwub3V0X3NpemU7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQorCW1zZy0+Y3JlZC51aWQg
PSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy0+Y3JlZC51
aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KKwltc2ctPmNyZWQucGFn
ID0gbm5wZnNfZ2V0X3BhZygpOw0KIAkNCi0JZXJyb3IgPSBubnBmc19tZXNz
YWdlX3JwYygmbm5wZnNbMF0sICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7
IC8qIFhYWCAqLw0KLQltc2cyID0gKHN0cnVjdCBubnBmc19tZXNzYWdlX3dh
a2V1cCAqKSAmbXNnOw0KKwllcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKCZu
bnBmc1swXSwgJm1zZy0+aGVhZGVyLCBzaXplb2YoKm1zZykpOyAvKiBYWFgg
Ki8NCisJbXNnMiA9IChzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV93YWtldXAgKikg
bXNnOw0KIAlpZiAoZXJyb3IgPT0gMCkNCiAJICAgIGVycm9yID0gbXNnMi0+
ZXJyb3I7DQogDQpAQCAtNjc1LDEyICs3NzksMjEgQEAgc3lzX2Fmc19pbnQg
KGludCBvcGVyYXRpb24sDQogICAgIA0KICB1bmxvY2s6DQogICAgIGlmIChk
ZW50cnkpDQotCXBhdGhfcmVsZWFzZSgmbmQpOw0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCXBhdGhfcHV0
KCZuZC5wYXRoKTsNCisjZWxzZQ0KKwlwYXRoX3B1dCgmcGF0aCk7DQorI2Vu
ZGlmDQogDQogICAgIE5OUEZTREVCKFhERUJTWVMsICgibm5wZnNfc3lzY2Fs
bCByZXR1cm5zIGVycm9yOiAlbGRcbiIsIGVycm9yKSk7DQogDQogICAgIE5O
UEZTREVCKFhERUJTWVMsICgic3lzX2FmcyBrZXJuZWwgdW5sb2NrXG4iKSk7
DQorICAgIGtmcmVlKG1zZyk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAgdW5sb2NrX2tlcm5lbCgp
Ow0KKyNlbHNlDQorICAgIC8qIFhYWCBzZWUgdGhlIGNvbW1lbnQgYXQgbG9j
a19rZXJuZWwoKSBhYm92ZSAqLw0KKyNlbmRpZg0KIA0KICAgICByZXR1cm4g
ZXJyb3I7DQogfQ0KQEAgLTcyOSw5ICs4NDIsMTUgQEAgc3lzX2FmcyAoaW50
IG9wZXJhdGlvbiwNCiAJCSAgICAgICBhX2ZvbGxvd1N5bWxpbmtzKTsNCiB9
DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDIsNiwzNikNCiBzdGF0aWMgaW50DQogbm5wZnNfcHJvY2ZzX2lvY3RsKHN0
cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLA0KIAkJICAg
dW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQorI2Vsc2UN
CitzdGF0aWMgbG9uZw0KK25ucGZzX3Byb2Nmc19pb2N0bChzdHJ1Y3QgZmls
ZSAqZmlsZSwNCisJCSAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxv
bmcgYXJnKQ0KKyNlbmRpZg0KIHsNCiAgICAgYWZzcHJvY2RhdGEgYXJnczsN
CiAgICAgbG9uZyByZXQ7DQpAQCAtNzgwLDIxICs4OTksMzEgQEAgc3RhdGlj
IGludCBubnBmc19pbml0X3Byb2Nmcyh2b2lkKQ0KIHsNCiAgICAgc3RydWN0
IHByb2NfZGlyX2VudHJ5ICplbnRyeTsNCiAgICAgDQotICAgIG5ucGZzX3By
b2Nmc19kaXIgPSBwcm9jX21rZGlyKE5OUEZTX1BST0NfRElSLCBwcm9jX3Jv
b3RfZnMpOw0KKyAgICBubnBmc19wcm9jZnNfZGlyID0gcHJvY19ta2Rpcigi
ZnMvIiBOTlBGU19QUk9DX0RJUiwgTlVMTCk7DQogICAgIGlmIChubnBmc19w
cm9jZnNfZGlyID09IE5VTEwpDQogCXJldHVybiAtRU5PTUVNOw0KICAgICAN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2
LDMwKQ0KICAgICBubnBmc19wcm9jZnNfZGlyLT5vd25lciA9IFRISVNfTU9E
VUxFOw0KKyNlbmRpZg0KICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxMCwwKQ0KICAgICBlbnRyeSA9IGNyZWF0
ZV9wcm9jX2VudHJ5KE5OUEZTX1BST0NfTk9ERSwgMDY2Niwgbm5wZnNfcHJv
Y2ZzX2Rpcik7DQorI2Vsc2UNCisgICAgZW50cnkgPSBwcm9jX2NyZWF0ZShO
TlBGU19QUk9DX05PREUsIDA2NjYsIE5VTEwsICZubnBmc19wcm9jZnNfZm9w
cyk7DQorI2VuZGlmDQogICAgIGlmIChlbnRyeSA9PSBOVUxMKSB7DQogCU5O
UEZTREVCKFhERUJTWVMsICgibm5wZnNfaW5pdF9wcm9jZnM6IG5vIG5vZGVc
biIpKTsNCi0JcmVtb3ZlX3Byb2NfZW50cnkoTk5QRlNfUFJPQ19ESVIsIHBy
b2Nfcm9vdF9mcyk7DQorCXJlbW92ZV9wcm9jX2VudHJ5KCJmcy8iIE5OUEZT
X1BST0NfRElSLCBOVUxMKTsNCiAJcmV0dXJuIC1FTk9NRU07DQogICAgIH0N
CiAgICAgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDIsNiwzMCkNCiAgICAgZW50cnktPm93bmVyID0gVEhJU19NT0RVTEU7
DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTAsMCkNCiAgICAgZW50cnktPnByb2NfZm9wcyA9ICZubnBm
c19wcm9jZnNfZm9wczsNCisjZW5kaWYNCiANCiAjaWZkZWYgU1lTQ0FMTENP
TVBBVA0KICAgICBpZiAocmVnaXN0ZXJfaW9jdGwzMl9jb252ZXJzaW9uKEFS
TEFfVklPQ19TWVNDQUxMMzIsIG5ucGZzX3Byb2Nmc19pb2N0bDMyKSkgew0K
QEAgLTgxNSw3ICs5NDQsNyBAQCBzdGF0aWMgdm9pZCBubnBmc19leGl0X3By
b2Nmcyh2b2lkKQ0KICAgICB9DQogI2VuZGlmIC8qIFNZU0NBTExDT01QQVQg
Ki8NCiAgICAgcmVtb3ZlX3Byb2NfZW50cnkoTk5QRlNfUFJPQ19OT0RFLCBu
bnBmc19wcm9jZnNfZGlyKTsNCi0gICAgcmVtb3ZlX3Byb2NfZW50cnkoTk5Q
RlNfUFJPQ19ESVIsIHByb2Nfcm9vdF9mcyk7DQorICAgIHJlbW92ZV9wcm9j
X2VudHJ5KCJmcy8iIE5OUEZTX1BST0NfRElSLCBOVUxMKTsNCiB9DQogDQog
I2lmZGVmIEdST1VQUEFHUw0KQEAgLTgzOSwxNCArOTY4LDYgQEAgaW5zdGFs
bF9zZXRncm91cHModm9pZCkNCiB2b2lkDQogaW5zdGFsbF9hZnNfc3lzY2Fs
bCh2b2lkKQ0KIHsNCi0jaWZkZWYgQ09ORklHX1NFQ1VSSVRZDQotICAgIGlm
IChyZWdpc3Rlcl9zZWN1cml0eSgmbm5wZnNfc2VjX29wcykpDQotCU5OUEZT
REVCKFhERUJTWVMsDQotCQkgKCJpbnN0YWxsX2Fmc19zeXNjYWxsOiBubnBm
c19pbml0X3NlYyBmYWlsZWRcbiIpKTsNCi0gICAgZWxzZQ0KLQlubnBmc19z
ZWNfcmVnaXN0ZXJlZCA9IDE7DQotI2VuZGlmDQotDQogICAgIG5ucGZzX2lu
aXRfcHJvY2ZzKCk7DQogDQogI2lmZGVmIFNZU0NBTExIQUNLDQpAQCAtODg3
LDEyICsxMDA4LDYgQEAgcmVzdG9yZV9hZnNfc3lzY2FsbCAodm9pZCkNCiAj
ZW5kaWYNCiAjZW5kaWYgLyogU1lTQ0FMTEhBQ0sgKi8NCiANCi0jaWZkZWYg
Q09ORklHX1NFQ1VSSVRZDQotICAgIGlmIChubnBmc19zZWNfcmVnaXN0ZXJl
ZCkNCi0JaWYgKHVucmVnaXN0ZXJfc2VjdXJpdHkoJm5ucGZzX3NlY19vcHMp
KQ0KLQkgICAgcHJpbnRrKEtFUk5fRU1FUkcgIm5ucGZzX2V4aXRfc2VjOiBj
b3VsZG4ndCB1bnJlZ2lzdGVyXG4iKTsNCi0jZW5kaWYgLyogIUNPTkZJR19T
RUNVUklUWSAqLw0KLQ0KICNpZmRlZiBHUk9VUFBBR1MNCiAjaWZkZWYgU1lT
Q0FMTEhBQ0sNCiAgICAgaWYgKG9sZF9zZXRncm91cHMpIHsNCmRpZmYgLXVw
ck4gLVhub2RpZmYgYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19z
eXNjYWxscy1sb3NzYWdlLmMgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZz
X3N5c2NhbGxzLWxvc3NhZ2UuYw0KLS0tIGFybGEtMC45MC1vbGQvbm5wZnMv
bGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jCTIwMDYtMTItMTEgMTc6
MzE6NDUuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS0wLjkwL25ucGZzL2xp
bnV4L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYwkyMDE2LTAxLTEzIDIxOjUx
OjQ5LjAwMDAwMDAwMCArMDEwMA0KQEAgLTQ3LDExICs0NywyMCBAQA0KICNp
bmNsdWRlIDxsaW51eC91bmlzdGQuaD4NCiANCiAjaWZkZWYgUkNTSUQNCi1S
Q1NJRCgiJElkOiBubnBmc19zeXNjYWxscy1sb3NzYWdlLmMsdiAxLjE3IDIw
MDYvMTIvMTEgMTY6MzE6NDUgdG9sIEV4cCAkIik7DQorUkNTSUQoIiRJZDog
bm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jLHYgMS4xOSAyMDEwLzA4LzA4IDIw
OjQzOjA1IHRvbCBFeHAgJCIpOw0KKyNlbmRpZg0KKw0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMyw3LDApDQorLyogdGhl
IG1ldGhvZCB0byByZWFkICdsb3dlcl9ib3VuZCcgZG9lcyBub3Qgd29yayBv
biBrZXJuZWwgMy43IGFuZCBsYXRlciAqLw0KKyN1bmRlZiBTWVNDQUxMSEFD
Sw0KICNlbmRpZg0KIA0KICNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5oPg0K
KyNpZmRlZiBTWVNDQUxMSEFDSw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDcsMCkNCiBzdGF0aWMgdm9pZCAqbG93ZXJf
Ym91bmQgPSAma2VybmVsX3RocmVhZDsNCisjZW5kaWYNCisjZW5kaWYNCiAN
CiB2b2lkICogX19hdHRyaWJ1dGVfXygod2VhaykpIHN5c19jYWxsX3RhYmxl
KHZvaWQpOw0KIG5ucGZzX3N5c19jYWxsX2Z1bmN0aW9uICpubnBmc19zeXNf
Y2FsbF90YWJsZSA9DQpAQCAtNjMsNiArNzIsMTEgQEAgY29uc3QgY2hhciAq
IF9fYXR0cmlidXRlX18oKHdlYWspKQ0KIAkJICAgIHVuc2lnbmVkIGxvbmcg
Km9mZnNldCwNCiAJCSAgICBjaGFyICoqbW9kbmFtZSwgY2hhciAqbmFtZWJ1
Zik7DQogDQorI2lmZGVmIF9feDg2XzY0X18NCitleHRlcm4gcndsb2NrX3Qg
dGFza2xpc3RfbG9jayBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSk7DQorI2VuZGlm
DQorDQorI2lmZGVmIFNZU0NBTExIQUNLDQogc3RhdGljIHZvaWQgKioNCiBn
ZXRfc3RhcnRfYWRkcih2b2lkKSB7DQogI2lmZGVmIF9feDg2XzY0X18NCkBA
IC03MSw2ICs4NSw3IEBAIGdldF9zdGFydF9hZGRyKHZvaWQpIHsNCiAgICAg
cmV0dXJuICh2b2lkICoqKSZtdXRleF9sb2NrOw0KICNlbmRpZg0KIH0NCisj
ZW5kaWYNCiANCiBzdGF0aWMgaW5saW5lIGludCANCiBrYWxsc3ltX2lzX2Vx
dWFsKHVuc2lnbmVkIGxvbmcgYWRkciwgY29uc3QgY2hhciAqbmFtZSkNCkBA
IC0xMzksNiArMTU0LDggQEAgdmVyaWZ5KHZvaWQgKipwKSB7DQogICAgIHJl
dHVybiAxOw0KIH0NCiANCisjaWZkZWYgU1lTQ0FMTEhBQ0sNCisNCiBzdGF0
aWMgaW5saW5lIGludCBsb29rc19nb29kKHZvaWQgKipwKQ0KIHsNCiAgICAg
aWYgKCpwIDw9ICh2b2lkKilsb3dlcl9ib3VuZCB8fCAqcCA+PSAodm9pZCop
cCkNCkBAIC0xODgsMyArMjA1LDUgQEAgbm5wZnNfZml4dXBfc3lzY2FsbF9s
b3NzYWdlKHZvaWQpDQogDQogICAgIHJldHVybiAwOw0KIH0NCisNCisjZW5k
aWYNCmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS0wLjkwLW9sZC9ubnBmcy9s
aW51eC9ubnBmc192ZnNvcHMuYyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5w
ZnNfdmZzb3BzLmMNCi0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25u
cGZzX3Zmc29wcy5jCTIwMDYtMTItMTEgMTc6NDM6MzUuMDAwMDAwMDAwICsw
MTAwDQorKysgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX3Zmc29wcy5j
CTIwMTYtMDItMTQgMDE6MzY6MDYuMDAwMDAwMDAwICswMTAwDQpAQCAtNDQs
MzAgKzQ0LDI2IEBADQogI2luY2x1ZGUgPGxpbnV4L21tLmg+DQogDQogI2lm
ZGVmIFJDU0lEDQotUkNTSUQoIiRJZDogbm5wZnNfdmZzb3BzLmMsdiAxLjEw
OSAyMDA2LzEyLzExIDE2OjQzOjM1IHRvbCBFeHAgJCIpOw0KK1JDU0lEKCIk
SWQ6IG5ucGZzX3Zmc29wcy5jLHYgMS4xMTEgMjAxMC8wOC8wOCAyMDo0Mzow
NiB0b2wgRXhwICQiKTsNCiAjZW5kaWYNCiANCiBzdHJ1Y3Qgbm5wZnMgbm5w
ZnNbTk5OUEZTXTsNCiANCi1zdGF0aWMgdm9pZCBubnBmc19yZWFkX2lub2Rl
KHN0cnVjdCBpbm9kZSAqaW5vZGUpOw0KIHN0YXRpYyB2b2lkIG5ucGZzX3B1
dF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsNCi1zdGF0aWMgdm9p
ZCBubnBmc19wdXRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSk7DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0K
IHN0YXRpYyB2b2lkIG5ucGZzX3dyaXRlX3N1cGVyKHN0cnVjdCBzdXBlcl9i
bG9jayAqIHNiKTsNCisjZW5kaWYNCiANCi0jaWYgTElOVVhfVkVSU0lPTl9D
T0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCiBzdGF0aWMgaW50IG5u
cGZzX3N0YXRmcyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBrc3Rh
dGZzICpidWYpOw0KLSNlbHNlDQotc3RhdGljIGludCBubnBmc19zdGF0ZnMo
c3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGtzdGF0ZnMgKmJ1Zik7
DQotI2VuZGlmDQogDQogc3RhdGljIHN0cnVjdCBzdXBlcl9vcGVyYXRpb25z
IG5ucGZzX3NvcHMgPSB7IA0KLSAgICByZWFkX2lub2RlCQk6IG5ucGZzX3Jl
YWRfaW5vZGUsDQotICAgIHB1dF9pbm9kZQkJOiBubnBmc19wdXRfaW5vZGUs
DQogICAgIGFsbG9jX2lub2RlCQk6IG5ucGZzX25vZGVfYWxsb2MsDQogICAg
IGRlc3Ryb3lfaW5vZGUJOiBubnBmc19ub2RlX2ZyZWUsDQogICAgIGRyb3Bf
aW5vZGUJCTogZ2VuZXJpY19kZWxldGVfaW5vZGUsDQogICAgIHB1dF9zdXBl
cgkJOiBubnBmc19wdXRfc3VwZXIsDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICB3cml0ZV9zdXBlcgkJ
OiBubnBmc193cml0ZV9zdXBlciwNCisjZW5kaWYNCiAgICAgc3RhdGZzCQk6
IG5ucGZzX3N0YXRmcywNCiB9Ow0KIA0KQEAgLTk0LDcgKzkwLDExIEBAIG5u
cGZzX2ZldGNoX3Jvb3Qoc3RydWN0IGlub2RlICppKQ0KIAkgKiByb290J3Mg
cHJpdmlsaWdlcyAodXN1YWxseSBub25lLCBhbmQgbm9uZSBpcyBuZWVkZWQp
Lg0KIAkgKi8NCiAJDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMTQsMCkNCiAJbXNnLmNyZWQudWlkID0gMDsNCisjZWxz
ZQ0KKwltc2cuY3JlZC51aWQgPSBLVUlEVF9JTklUKDApOw0KKyNlbmRpZg0K
IAltc2cuY3JlZC5wYWcgPSAwOw0KIAkNCiAJZXJyb3IgPSBubnBmc19tZXNz
YWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7DQpA
QCAtMTI5LDggKzEyOSwxMyBAQCBtYWtlX3Jvb3RfaW5vZGUoc3RydWN0IG5u
cGZzICpubnBmc3ApDQogICAgIFhBX1NFVF9NT0RFKCZub2RlLmF0dHIsIFNf
SUZESVIgfCAwNzc3KTsNCiAgICAgWEFfU0VUX05MSU5LKCZub2RlLmF0dHIs
IDEwMCk7DQogICAgIFhBX1NFVF9TSVpFKCZub2RlLmF0dHIsIDApOw0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDAp
DQogICAgIFhBX1NFVF9VSUQoJm5vZGUuYXR0ciwgMCk7DQogICAgIFhBX1NF
VF9HSUQoJm5vZGUuYXR0ciwgMCk7DQorI2Vsc2UNCisgICAgWEFfU0VUX1VJ
RCgmbm9kZS5hdHRyLCBLVUlEVF9JTklUKDApKTsNCisgICAgWEFfU0VUX0dJ
RCgmbm9kZS5hdHRyLCBLR0lEVF9JTklUKDApKTsNCisjZW5kaWYNCiAgICAg
WEFfU0VUX0FUSU1FKCZub2RlLmF0dHIsIDApOw0KICAgICBYQV9TRVRfTVRJ
TUUoJm5vZGUuYXR0ciwgMCk7DQogICAgIFhBX1NFVF9DVElNRSgmbm9kZS5h
dHRyLCAwKTsNCkBAIC0xNTksNyArMTY0LDExIEBAIG1ha2Vfcm9vdCAoc3Ry
dWN0IHN1cGVyX2Jsb2NrICpzYikNCiAgICAgbm5wZnMtPnJvb3QgPSBpbm9k
ZTsNCiANCiAgICAgLyogWFhYIGVycm9yIGhhbmRsaW5nICovDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNCwwKQ0KICAg
ICBkcCA9IGRfYWxsb2Nfcm9vdChpbm9kZSk7DQorI2Vsc2UNCisgICAgZHAg
PSBkX21ha2Vfcm9vdChpbm9kZSk7DQorI2VuZGlmDQogICAgIG5ucGZzX2Rf
aW5pdChkcCk7DQogICAgIHNiLT5zX3Jvb3QgPSBkcDsNCiAgICAgcmV0dXJu
IDA7DQpAQCAtMTgzLDEzICsxOTIsMjcgQEAgbm5wZnNfcmVhZF9zdXBlciAo
c3RydWN0IHN1cGVyX2Jsb2NrICogcw0KICAgICBOTlBGU0RFQihYREVCVkZP
UFMsICgibm5wZnNfcmVhZF9zdXBlcjogYmVnaW4gc2V0dGluZyB2YXJpYWJs
ZXNcbiIpKTsNCiANCiAgICAgaWYgKGRhdGEgIT0gTlVMTCkgew0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQog
CXN0cnVjdCBuYW1laWRhdGEgbmQ7DQorI2Vsc2UNCisJc3RydWN0IHBhdGgg
cGF0aDsNCisjZW5kaWYNCiAJDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAJZXJyb3IgPSBwYXRoX2xvb2t1
cChkYXRhLCAwLCAmbmQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJZXJyb3IgPSBrZXJuX3BhdGgo
ZGF0YSwgMCwgJm5kLnBhdGgpOw0KKyNlbHNlDQorCWVycm9yID0ga2Vybl9w
YXRoKGRhdGEsIDAsICZwYXRoKTsNCisjZW5kaWYNCiAJaWYgKGVycm9yKQ0K
IAkgICAgZGRldiA9IEVSUl9QVFIoZXJyb3IpOw0KIAllbHNlDQotCSAgICBk
ZGV2ID0gbmQuZGVudHJ5Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDE5LDApDQorCSAgICBkZGV2ID0gbmQucGF0aC5k
ZW50cnk7DQorI2Vsc2UNCisJICAgIGRkZXYgPSBwYXRoLmRlbnRyeTsNCisj
ZW5kaWYNCiANCiAJaWYgKCFJU19FUlIoZGRldikpIHsNCiAJICAgIG1pbm9y
ZGV2aWNlID0gTUlOT1IoZGRldi0+ZF9pbm9kZS0+aV9yZGV2KTsNCkBAIC0y
MzMsNyArMjU2LDcgQEAgbm5wZnNfZmlsbF9zdXBlciAoc3RydWN0IHN1cGVy
X2Jsb2NrICpzYg0KICAgICByZXR1cm4gMDsNCiB9DQogDQotI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTgpDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkN
CiBpbnQNCiBubnBmc19nZXRfc2Ioc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUg
KmZzX3R5cGUsDQogCSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZf
bmFtZSwNCkBAIC0yNDIsMTkgKzI2NSwyMiBAQCBubnBmc19nZXRfc2Ioc3Ry
dWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzDQogICAgIHJldHVybiBnZXRfc2Jf
bm9kZXYoZnNfdHlwZSwgZmxhZ3MsIGRhdGEsIG5ucGZzX2ZpbGxfc3VwZXIs
IG1udCk7DQogfQ0KICNlbHNlDQotc3RydWN0IHN1cGVyX2Jsb2NrICoNCi1u
bnBmc19nZXRfc2IgKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBl
LA0KLQkgICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1lLCB2
b2lkICpkYXRhKSANCitzdHJ1Y3QgZGVudHJ5Kg0KK25ucGZzX21vdW50KHN0
cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBlLA0KKwkgICAgIGludCBm
bGFncywgY29uc3QgY2hhciAqZGV2X25hbWUsDQorCSAgICAgdm9pZCAqZGF0
YSkgDQogew0KLSAgICByZXR1cm4gZ2V0X3NiX25vZGV2KGZzX3R5cGUsIGZs
YWdzLCBkYXRhLCBubnBmc19maWxsX3N1cGVyKTsNCisgICAgcmV0dXJuIG1v
dW50X25vZGV2KGZzX3R5cGUsIGZsYWdzLCBkYXRhLCBubnBmc19maWxsX3N1
cGVyKTsNCiB9DQogI2VuZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyB2b2lkDQogbm5w
ZnNfd3JpdGVfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICogc2IpDQogew0K
ICAgICBzYi0+c19kaXJ0ID0gMDsNCiB9DQorI2VuZGlmDQogDQogLyoNCiAg
KiBYWFggaXMgdGhpcyBnb29kPyANCkBAIC0yNzMsNzMgKzI5OSw2IEBAIG5u
cGZzX3B1dF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQ0KICAgICBO
TlBGU0RFQihYREVCVkZPUFMsICgibm5wZnNfcHV0X3N1cGVyIGV4aXRpbmdc
biIpKTsNCiB9DQogDQotc3RhdGljIHZvaWQNCi1ubnBmc19yZWFkX2lub2Rl
KHN0cnVjdCBpbm9kZSAqaW5vZGUpDQotew0KLSAgICBOTlBGU0RFQihYREVC
VkZPUFMsKCJubnBmc19yZWFkX2lub2RlIHN0YXJ0aW5nIGlub2RlOiAlcFxu
Iixpbm9kZSkpOw0KLSAgICBOTlBGU0RFQihYREVCVkZPUFMsKCJubnBmc19y
ZWFkX2lub2RlIGlub2RlLT5pX2lubzogJWxkXG4iLGlub2RlLT5pX2lubykp
Ow0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMTkpDQotICAgIGlub2RlLT5pX2Jsa3NpemUgPSAxMDI0Ow0KLSNlbmRp
Zg0KLSAgICBpbm9kZS0+aV9tb2RlID0gMDsNCi0gICAgaW5vZGUtPmlfb3Ag
PSBOVUxMOw0KLSAgICBOTlBGU0RFQihYREVCVkZPUFMsKCJubnBmc19yZWFk
X2lub2RlIGV4aXRpbmdcbiIpKTsNCi19DQotIA0KLS8qDQotICogQ2FsbGVk
IHdoZW4gYGlub2RlJyBpcyBkZS1yZWZlcmVuY2VkLCBpZSB3aGVuIGlwdXQg
aXMgY2FsbGVkLg0KLSAqLw0KLQ0KLXN0YXRpYyB2b2lkDQotbm5wZnNfcHV0
X2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQotew0KLSAgICBzdHJ1Y3Qg
bm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQotICAg
IHN0cnVjdCBubnBmcyAqbm5wZnNwID0gTk5QRlNfRlJPTV9WTk9ERShpbm9k
ZSk7DQotICAgIGludCBiYWQ7DQotDQotICAgIE5OUEZTREVCKFhERUJWRk9Q
UywoIm5ucGZzX3B1dF9pbm9kZTogaW5vZGU6ICVwIGNvdW50OiAlZCBhbGlh
c2VzOiIsDQotCQkJaW5vZGUsIG5ucGZzX2ljb3VudChpbm9kZSkpKTsNCi0g
ICAgbm5wZnNfcHJpbnRfYWxpYXNlcyhpbm9kZSk7DQotICAgIA0KLSAgICBk
b3duKCZubnBmc3AtPmluYWN0aXZlX3NlbSk7DQotDQotICAgIGlmICgobm5w
ZnNwLT5zdGF0dXMgJiBOTlBGU19ERVZPUEVOKSA9PSAwKSB7DQotCWlmICgh
aXNfYmFkX2lub2RlKGlub2RlKSkgew0KLQkgICAgaWYgKGlub2RlICE9IG5u
cGZzcC0+cm9vdCkgew0KLQkJbWFrZV9iYWRfaW5vZGUoaW5vZGUpOw0KLQkJ
bm5wZnNfaXJlbGUoaW5vZGUpOyAvKiBzZWUgbm5wZnNfbm9kZV9hZGQoKSAq
Lw0KLQkgICAgfQ0KLQkgICAgeG4tPmZsYWdzIHw9IE5OUEZTX1NUQUxFOw0K
LQl9DQotCWJhZCA9IDE7IC8qIG9yIHJvb3QsIHJlYWxseSAqLw0KLSAgICB9
IGVsc2Ugew0KLQliYWQgPSBpc19iYWRfaW5vZGUoaW5vZGUpOw0KLSAgICB9
DQotDQotICAgIGlmICh4bi0+ZmxhZ3MgJiBOTlBGU19TVEFMRSAmJiAhbm5w
ZnNfbm9kZV91c2Vycyhpbm9kZSkpIHsNCi0JeG4tPmZsYWdzIHw9IE5OUEZT
X05PREVfSVBVVDsgLyogWFhYIGxvY2tpbmcgKi8NCi0gIAlubnBmc19mb3Jj
ZV9pbnZhbGlkX25vZGUoeG4pOw0KLQl4bi0+ZmxhZ3MgJj0gfk5OUEZTX05P
REVfSVBVVDsNCi0gICAgfQ0KLSAgICANCi0gICAgaWYgKGJhZCkgew0KLQlp
ZiAobm5wZnNfaWNvdW50KGlub2RlKSA9PSAxKQ0KLQkgICAgbm5wZnNfbm9k
ZV9jbGVhcih4bik7DQotICAgIH0gZWxzZSBpZiAobm5wZnNfaWNvdW50KGlu
b2RlKSA9PSAyKSB7DQotCS8qIA0KLQkgKiBUaGUgbGFzdCBleHRlcm5hbCBy
ZWZlcmVuY2UgaXMgYmVpbmcgZHJvcHBlZCwgb25seSB0aGUgb25lDQotCSAq
IGZyb20gbm5wZnNfbm9kZV9hZGQoKSBpcyBsZWZ0LiBUaW1lIHRvIGxldCBk
YWVtb24gcmVsZWFzZQ0KLQkgKiB0aGlzIG5vZGUgcHJvcGVybHkuDQotCSAq
Lw0KLQlpZiAoKHhuLT5mbGFncyAmIE5OUEZTX0xJTUJPKSA9PSAwKSB7DQot
CSAgICBubnBmc19ub2RlX2NsZWFyKHhuKTsNCi0JICAgIG5ucGZzX3F1ZXVl
X2luYWN0aXZlKHhuKTsNCi0JfQ0KLSAgICB9DQotDQotICAgIHVwKCZubnBm
c3AtPmluYWN0aXZlX3NlbSk7DQotfQ0KLQ0KIHN0YXRpYyBpbnQNCiBubnBm
c19zdGF0ZnNfaW50KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBr
c3RhdGZzICpidWYpDQogew0KQEAgLTM1MiwyNSArMzExLDI1IEBAIG5ucGZz
X3N0YXRmc19pbnQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwNCiAgICAgdG1w
LmZfYmF2YWlsICA9IDEwMjQqMTAyNCoyLTUwOw0KICAgICB0bXAuZl9maWxl
cyAgID0gMTAyNCoxMDI0Ow0KICAgICB0bXAuZl9mZnJlZSAgID0gMTAyNCox
MDI0LTEwMDsNCisgICAgdG1wLmZfZnNpZC52YWxbMF0gPSAwOw0KKyAgICB0
bXAuZl9mc2lkLnZhbFsxXSA9IDA7DQogICAgIHRtcC5mX25hbWVsZW4gPSBO
QU1FX01BWDsNCisgICAgdG1wLmZfZnJzaXplICA9IDA7DQorICAgIHRtcC5m
X3NwYXJlWzBdID0gMDsNCisgICAgdG1wLmZfc3BhcmVbMV0gPSAwOw0KKyAg
ICB0bXAuZl9zcGFyZVsyXSA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzNdID0g
MDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Miw2LDM2KQ0KKyAgICB0bXAuZl9zcGFyZVs0XSA9IDA7DQorI2Vsc2UNCisg
ICAgdG1wLmZfZmxhZ3MgPSAwOw0KKyNlbmRpZg0KICAgICAqYnVmID0gdG1w
Ow0KICAgICByZXR1cm4gMDsNCiB9DQogDQotI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTgpDQotDQogc3RhdGljIGlu
dA0KIG5ucGZzX3N0YXRmcyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVj
dCBrc3RhdGZzICpidWYpDQogew0KICAgICByZXR1cm4gbm5wZnNfc3RhdGZz
X2ludChkZW50cnktPmRfc2IsIGJ1Zik7DQogfQ0KLQ0KLSNlbHNlDQotDQot
c3RhdGljIGludA0KLW5ucGZzX3N0YXRmcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sg
KnNiLCBzdHJ1Y3Qga3N0YXRmcyAqYnVmKQ0KLXsNCi0gICAgcmV0dXJuIG5u
cGZzX3N0YXRmc19pbnQoc2IsIGJ1Zik7DQotfQ0KLQ0KLSNlbmRpZg0KZGlm
ZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xkL2FybGFkL2ZjYWNoZS5j
IGFybGEtMC45MC9hcmxhZC9mY2FjaGUuYw0KLS0tIGFybGEtMC45MC1vbGQv
YXJsYWQvZmNhY2hlLmMJMjAwNi0xMi0xMSAxNzoyMzoyNC4wMDAwMDAwMDAg
KzAxMDANCisrKyBhcmxhLTAuOTAvYXJsYWQvZmNhY2hlLmMJMjAxNi0wMS0y
MiAxNzowMDo0My4wMDAwMDAwMDAgKzAxMDANCkBAIC03MTMsNyArNzEzLDcg
QEAgZmNhY2hlX2hhdmVfd2FudGVkKEZDYWNoZUVudHJ5ICplbnRyeSwgdQ0K
IGludA0KIGZjYWNoZV9kaXJfbmFtZSAoRkNhY2hlRW50cnkgKmVudHJ5LCBj
aGFyICpzLCBzaXplX3QgbGVuKQ0KIHsNCi0gICAgcmV0dXJuIHNucHJpbnRm
IChzLCBsZW4sICIlMDJYIiwgZW50cnktPmluZGV4IC8gMHgxMDApOw0KKyAg
ICByZXR1cm4gc25wcmludGYgKHMsIGxlbiwgTk5QRlNfQ0FDSEVfRklMRV9E
SVIxLCBlbnRyeS0+aW5kZXggLyAweDEwMCk7DQogfQ0KIA0KIC8qDQpAQCAt
NzIzLDcgKzcyMyw3IEBAIGZjYWNoZV9kaXJfbmFtZSAoRkNhY2hlRW50cnkg
KmVudHJ5LCBjaGENCiBzdGF0aWMgaW50DQogZmNhY2hlX2ZpbGVfbmFtZSAo
RkNhY2hlRW50cnkgKmVudHJ5LCBjaGFyICpzLCBzaXplX3QgbGVuKQ0KIHsN
Ci0gICAgcmV0dXJuIHNucHJpbnRmIChzLCBsZW4sICIlMDJYLyUwMlgiLA0K
KyAgICByZXR1cm4gc25wcmludGYgKHMsIGxlbiwgTk5QRlNfQ0FDSEVfRklM
RV9ESVJfUEFUSCwNCiAJCSAgICAgZW50cnktPmluZGV4IC8gMHgxMDAsIGVu
dHJ5LT5pbmRleCAlIDB4MTAwKTsNCiB9DQogDQpAQCAtODE1LDcgKzgxNSw3
IEBAIGZjYWNoZV9maGdldCAoY2hhciAqZmlsZW5hbWUsIGZjYWNoZV9jYWMN
CiAJaW50IHJldCwgYSwgYjsNCiAJY2hhciBidWZbMTAyNF07DQogDQotCXJl
dCA9IHNzY2FuZihmaWxlbmFtZSwgIiUwMlgvJTAyWCIsICZhLCAmYik7DQor
CXJldCA9IHNzY2FuZihmaWxlbmFtZSwgTk5QRlNfQ0FDSEVfRklMRV9ESVJf
UEFUSCwgJmEsICZiKTsNCiAJaWYgKHJldCAhPSAyKQ0KIAkgICAgcmV0dXJu
IEVJTlZBTDsNCiANCkBAIC04MjQsNyArODI0LDcgQEAgZmNhY2hlX2ZoZ2V0
IChjaGFyICpmaWxlbmFtZSwgZmNhY2hlX2NhYw0KIAkNCiAJcmV0ID0gc25w
cmludGYoKGNoYXIgKiloYW5kbGUtPm5ucGZzX2hhbmRsZSwgDQogCQkgICAg
ICAgc2l6ZW9mKGhhbmRsZS0+bm5wZnNfaGFuZGxlKSwNCi0JCSAgICAgICAi
JXNcXCUwMlhcXCUwMlgiLCBidWYsIGEsIGIpOw0KKwkJICAgICAgICIlc1xc
IiBOTlBGU19DQUNIRV9GSUxFX0RJUl9QQVRILCBidWYsIGEsIGIpOw0KIA0K
IAlpZiAocmV0ID4gMCAmJiByZXQgPCBzaXplb2YoaGFuZGxlLT5ubnBmc19o
YW5kbGUpKQ0KIAkgICAgaGFuZGxlLT52YWxpZCA9IDE7DQo=
---276651502-1709114826-1462551060=:25480
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-1709114826-1462551060=:25480--