[5051] in arla-drinkers
PATCH: Arla 0.90 on Linux 2.6.34 to 3.5
daemon@ATHENA.MIT.EDU (Bo Branten)
Sun Jan 10 21:19:54 2016
From arla-drinkers-bounces@stacken.kth.se Mon Jan 11 02:19:54 2016
Return-Path: <arla-drinkers-bounces@stacken.kth.se>
Delivered-To: arla-drinkers-mtg@bloom-picayune.mit.edu
Received: (qmail 28032 invoked from network); 11 Jan 2016 02:19:53 -0000
Received: from mx7.kth.se (130.237.48.48)
by charon.mit.edu with SMTP; 11 Jan 2016 02:19:53 -0000
Received: from mx7.kth.se (localhost [127.0.0.1])
by mx7.kth.se (Postfix) with ESMTP id 16546140100;
Mon, 11 Jan 2016 03:19:53 +0100 (CET)
X-Virus-Scanned: by amavisd-new at kth.se
Received: from mx7.kth.se ([127.0.0.1])
by mx7.kth.se (mx7.kth.se [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id nhQ0vKVZDndj; Mon, 11 Jan 2016 03:19:34 +0100 (CET)
Received: from vingummi.stacken.kth.se (lists.stacken.kth.se [130.237.234.174])
by mx7.kth.se (Postfix) with ESMTP;
Mon, 11 Jan 2016 03:19:34 +0100 (CET)
Received: from vingummi.stacken.kth.se (localhost [IPv6:::1])
by vingummi.stacken.kth.se (Postfix) with ESMTP id 686D314CA7E;
Mon, 11 Jan 2016 03:19:34 +0100 (CET)
Received: by vingummi.stacken.kth.se (Postfix)
id 25C4E14CA7E; Mon, 11 Jan 2016 03:19:33 +0100 (CET)
Delivered-To: al_stacken_kth_se______________arla-drinkers@vingummi.stacken.kth.se
Received: from mx5.kth.se (mx5.kth.se [130.237.32.10])
by vingummi.stacken.kth.se (Postfix) with ESMTPS id 22EBC14CA7D
for <arla-drinkers@stacken.kth.se>; Mon, 11 Jan 2016 03:19:33 +0100 (CET)
Received: from mx5.kth.se (localhost [127.0.0.1])
by mx5.kth.se (Postfix) with ESMTP id 158F1240111
for <arla-drinkers@stacken.kth.se>; Mon, 11 Jan 2016 03:19:33 +0100 (CET)
X-Virus-Scanned: by amavisd-new at kth.se
X-Amavis-OS-Fingerprint: Windows NT kernel; dist: 9; link: Ethernet or modem;
params: generic fuzzy; raw_mtu: 1500; raw_sig:
6:55+9:0:1440:mss*45,0:mss,nop,ws,nop,nop,sok::0,
[2001:6b0:e:2018::156]:54468
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 sYp79LmYUaaW for <arla-drinkers@stacken.kth.se>;
Mon, 11 Jan 2016 03:19:31 +0100 (CET)
Received: from mail.acc.umu.se (mail.acc.umu.se [IPv6:2001:6b0:e:2018::156])
by mx5.kth.se (Postfix) with ESMTPS
for <arla-drinkers@stacken.kth.se>; Mon, 11 Jan 2016 03:19:31 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
by amavisd-new (Postfix) with ESMTP id B7CAB63
for <arla-drinkers@stacken.kth.se>; Mon, 11 Jan 2016 03:19:30 +0100 (MET)
X-Virus-Scanned: amavisd-new at acc.umu.se
Received: from suiko.acc.umu.se (suiko.acc.umu.se [IPv6:2001:6b0:e:2018::162])
by mail.acc.umu.se (Postfix) with ESMTP id 298B762
for <arla-drinkers@stacken.kth.se>; Mon, 11 Jan 2016 03:19:26 +0100 (MET)
Received: by suiko.acc.umu.se (Postfix, from userid 10005)
id 1CE9E44B8C; Mon, 11 Jan 2016 03:19:26 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
by suiko.acc.umu.se (Postfix) with ESMTP id 16CEF44B8B
for <arla-drinkers@stacken.kth.se>; Mon, 11 Jan 2016 03:19:26 +0100 (CET)
Date: Mon, 11 Jan 2016 03:19:26 +0100 (CET)
From: Bo Branten <bosse@acc.umu.se>
To: arla-drinkers@stacken.kth.se
Subject: PATCH: Arla 0.90 on Linux 2.6.34 to 3.5
Message-ID: <alpine.DEB.2.10.1601110310480.17625@suiko.acc.umu.se>
User-Agent: Alpine 2.10 (DEB 1266 2009-07-14)
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED;
BOUNDARY="-276651502-1678162708-1452478766=:17625"
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-1678162708-1452478766=:17625
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII
Hello,
I have done some work to update arla for Linux, the changes in the kernel
are so big that it must be done stepwise so to begin with I try on Ubuntu
12.04 LTS and I have created an patch for the kernels 2.6.34 (witch is
were we stopped working in 2010!) to 3.5. (Note that if you try arla on
Linux use arlad from the 0.90 distribution and the latest nnpfs)
Bo Branten
---276651502-1678162708-1452478766=:17625
Content-Type: TEXT/plain; name=patch-arla-0.90-for-linux-3.5.txt
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.DEB.2.10.1601110319260.17625@suiko.acc.umu.se>
Content-Description:
Content-Disposition: attachment; filename=patch-arla-0.90-for-linux-3.5.txt
ZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS0wLjkwL25ucGZzL2xpbnV4
L25ucGZzL25ubnBmcy5oIGFybGEtZm9yLWxpbnV4LTMuNS9ubnBmcy9saW51
eC9ubnBmcy9ubm5wZnMuaA0KLS0tIGFybGEtMC45MC9ubnBmcy9saW51eC9u
bnBmcy9ubm5wZnMuaAkyMDAyLTA5LTA3IDEyOjQ3OjE3LjAwMDAwMDAwMCAr
MDIwMA0KKysrIGFybGEtZm9yLWxpbnV4LTMuNS9ubnBmcy9saW51eC9ubnBm
cy9ubm5wZnMuaAkyMDAyLTA5LTA3IDEyOjQ3OjE3LjAwMDAwMDAwMCArMDIw
MA0KQEAgLTEsNCArMSw0IEBADQogLyogJElkOiBubm5wZnMuaCx2IDEuMiAy
MDAyLzA5LzA3IDEwOjQ3OjE3IGxoYSBFeHAgJCAqLw0KLS8qICRTb3VyY2U6
IC9hZnMvc3RhY2tlbi5rdGguc2Uvc3JjL1NvdXJjZVJlcG9zaXRvcnkvYXJs
YS9ubnBmcy9saW51eC9ubnBmcy9ubm5wZnMuaCx2ICQgKi8NCisvKiAkU291
cmNlOiAvVXNlcnMvYm8vdG1wL0FybGFTb3VyY2VSZXBvc2l0b3J5L2FybGEv
bm5wZnMvbGludXgvbm5wZnMvbm5ucGZzLmgsdiAkICovDQogDQogI2RlZmlu
ZSBOTk5QRlMgMg0KZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS0wLjkw
L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wuaCBhcmxhLWZvci1saW51
eC0zLjUvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbG9jbC5oDQotLS0gYXJs
YS0wLjkwL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wuaAkyMDA3LTAx
LTA4IDE0OjUyOjQ5LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtZm9yLWxp
bnV4LTMuNS9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2NsLmgJMjAxNi0w
MS0xMCAyMDozOTo0My43NjY5MjA4MTcgKzAxMDANCkBAIC0zNCw3ICszNCw3
IEBADQogICogU1VDSCBEQU1BR0UuDQogICovDQogDQotLyogJElkOiBubnBm
c19sb2NsLmgsdiAxLjc3IDIwMDcvMDEvMDggMTM6NTI6NDkgdG9sIEV4cCAk
ICovDQorLyogJElkOiBubnBmc19sb2NsLmgsdiAxLjc4IDIwMTAvMDgvMDgg
MjA6NDM6MDYgdG9sIEV4cCAkICovDQogDQogI2lmZGVmIEhBVkVfQ09ORklH
X0gNCiAjaW5jbHVkZSA8Y29uZmlnLmg+DQpAQCAtNTEsNyArNTEsOSBAQA0K
ICNpbmNsdWRlIDxsaW51eC9zdGF0Lmg+DQogI2luY2x1ZGUgPGxpbnV4L3N0
cmluZy5oPg0KICNpbmNsdWRlIDxsaW51eC9uYW1laS5oPg0KKyNpZiAoTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KSkNCiAj
aW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4NCisjZW5kaWYNCiAjaW5jbHVk
ZSA8bGludXgvd2FpdC5oPg0KIA0KIC8qDQpAQCAtMTM4LDE1ICsxNDAsMTYg
QEAgdHlwZWRlZiBfX3UzMiAgdWludDMyX3Q7DQogaW50DQogbm5wZnNfZmV0
Y2hfcm9vdChzdHJ1Y3QgaW5vZGUgKmkpOw0KIA0KLSNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4KQ0KKyNpZiAoTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KSkNCiBp
bnQNCiBubnBmc19nZXRfc2Ioc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZz
X3R5cGUsDQogCSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFt
ZSwNCiAJICAgICB2b2lkICpkYXRhLCBzdHJ1Y3QgdmZzbW91bnQgKm1udCk7
DQogI2Vsc2UNCi1zdHJ1Y3Qgc3VwZXJfYmxvY2sgKg0KLW5ucGZzX2dldF9z
YiAoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsDQotCSAgICAg
IGludCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUsIHZvaWQgKmRhdGEp
Ow0KK3N0cnVjdCBkZW50cnkqDQorbm5wZnNfbW91bnQoc3RydWN0IGZpbGVf
c3lzdGVtX3R5cGUgKmZzX3R5cGUsDQorCSAgICAgaW50IGZsYWdzLCBjb25z
dCBjaGFyICpkZXZfbmFtZSwNCisJICAgICB2b2lkICpkYXRhKTsNCiAjZW5k
aWYNCiANCiBleHRlcm4gc3RydWN0IGRlbnRyeV9vcGVyYXRpb25zIG5ucGZz
X2RlbnRyeV9vcGVyYXRpb25zOw0KQEAgLTIwMCwxNiArMjAzLDI5IEBAIG5u
cGZzX2l3cml0ZWNvdW50IChzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KICAqIEhl
bHAgZnVuY3Rpb24gdG8gcmVhZCB0aGUgZGVudHJ5LT5kX2NvdW50IGEgcG9y
dGFibGUgd2F5DQogICovDQogDQorLyojaWYgKExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkpKi8NCiBzdGF0aWMgaW5saW5l
IGludA0KIG5ucGZzX2Rjb3VudCAoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVu
dHJ5KQ0KKy8qI2Vsc2UNCitzdGF0aWMgaW5saW5lIGludA0KK25ucGZzX2Rj
b3VudCAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZiovDQogew0K
KyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2
LDM4KSkNCiAgICAgcmV0dXJuIGF0b21pY19yZWFkKCZkZW50cnktPmRfY291
bnQpOw0KKyNlbHNlDQorICAgIHJldHVybiBhdG9taWNfcmVhZCgoY29uc3Qg
YXRvbWljX3QqKSZkZW50cnktPmRfY291bnQpOw0KKyAgICAvKiBUT0RPOiB0
aGUgbWV0aG9kIGJlbG93IGlzIG5vdCBjb21wYXRpYmxlIHdpdGggYSBjb25z
dCBkZW50cnkgYXJndW1lbnQgKi8NCisgICAgLyppbnQgcnZhbDsNCisgICAg
c3Bpbl9sb2NrKCZkZW50cnktPmRfbG9jayk7DQorICAgIHJ2YWwgPSBkZW50
cnktPmRfY291bnQ7DQorICAgIHNwaW5fdW5sb2NrKCZkZW50cnktPmRfbG9j
ayk7DQorICAgIHJldHVybiBydmFsOyovDQorI2VuZGlmDQogfQ0KIA0KIGV4
dGVybiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJT
SU9OKDIsNiwxOCkNCiBjb25zdA0KLSNlbmRpZg0KIHN0cnVjdCBhZGRyZXNz
X3NwYWNlX29wZXJhdGlvbnMgbm5wZnNfYW9wczsNCiANCiAjaWZuZGVmIGxp
c3RfZm9yX2VhY2gNCkBAIC0yMzcsNyArMjUzLDEyIEBAIG5ucGZzX2ZpeHVw
X3N5c2NhbGxfbG9zc2FnZSh2b2lkKTsNCiAjZW5kaWYNCiANCiAjZGVmaW5l
IG5ucGZzX2Rldl90IGRldl90DQorDQorI2lmIChMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpKQ0KICNkZWZpbmUgbm5wZnNf
ZF9lbnRyeV91bmhhc2hlZChkKSBobGlzdF91bmhhc2hlZChkKQ0KKyNlbHNl
DQorI2RlZmluZSBubnBmc19kX2VudHJ5X3VuaGFzaGVkKGQpIGhsaXN0X2Js
X3VuaGFzaGVkKGQpDQorI2VuZGlmDQogDQogI2RlZmluZSBOTlBGU19OT09Q
ICAgICAgd2hpbGUoMCl7fQ0KIA0KZGlmZiAtdXByTiAtWG5vZGlmZi50eHQg
YXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX25vZGUuaCBhcmxh
LWZvci1saW51eC0zLjUvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbm9kZS5o
DQotLS0gYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX25vZGUu
aAkyMDA2LTEyLTExIDE3OjI5OjM5LjAwMDAwMDAwMCArMDEwMA0KKysrIGFy
bGEtZm9yLWxpbnV4LTMuNS9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19ub2Rl
LmgJMjAxMC0wOC0wOCAyMjo0MzowNy4wMDAwMDAwMDAgKzAyMDANCkBAIC01
NCw3ICs1NCw3IEBAIGV4dGVybiB1aW50MzJfdCBubnBmc19ibG9ja3NpemVi
aXRzOw0KICAqIGZsYWdzLg0KICAqLw0KIA0KLSNkZWZpbmUgTk5QRlNfTk9E
RV9JUFVUCTB4MDAwMTAwMDAgICAvKiBub2RlIGlzIGluIGlwdXQoKSwgYXZv
aWQgZGVhZGxvY2sgKi8NCisjZGVmaW5lIE5OUEZTX05PREVfSVBVVAkweDAw
MDEwMDAwICAgLyogbm9kZSBpcyBpbiBpcHV0KCksIGF2b2lkIGRlYWRsb2Nr
LiBDYW4gYmUgcmVtb3ZlZD8gKi8NCiANCiAjZGVmaW5lIFhOX0hBU0hTSVpF
IDEwMDkNCiAjZGVmaW5lIFhOX0NMRUFOVVBfSVRFUlMgMTI5DQpkaWZmIC11
cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNf
YmxvY2tzLmMgYXJsYS1mb3ItbGludXgtMy41L25ucGZzL2xpbnV4L25ucGZz
X2Jsb2Nrcy5jDQotLS0gYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX2Js
b2Nrcy5jCTIwMDctMDEtMDggMTQ6MjQ6MjQuMDAwMDAwMDAwICswMTAwDQor
KysgYXJsYS1mb3ItbGludXgtMy41L25ucGZzL2xpbnV4L25ucGZzX2Jsb2Nr
cy5jCTIwMTYtMDEtMTEgMDA6MTg6NTkuMjY3NTYwNzYyICswMTAwDQpAQCAt
MzQsNyArMzQsNyBAQA0KICAqIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
Lg0KICAqLw0KIA0KLS8qICRJZDogbm5wZnNfYmxvY2tzLmMsdiAxLjMgMjAw
Ny8wMS8wOCAxMzoyNDoyNCB0b2wgRXhwICQgKi8NCisvKiAkSWQ6IG5ucGZz
X2Jsb2Nrcy5jLHYgMS42IDIwMTAvMDgvMDggMjA6NDM6MDQgdG9sIEV4cCAk
ICovDQogDQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2xvY2wuaD4NCiAjaW5j
bHVkZSA8bm5wZnMvbm5wZnNfZnMuaD4NCkBAIC0zMjIsNiArMzIyLDEzIEBA
IG5ucGZzX2Jsb2NrX29wZW4oc3RydWN0IG5ucGZzX25vZGUgKm5vZGUNCiAg
ICAgdWlkX3Qgc2F2ZXVpZDsNCiAgICAgZ2lkX3Qgc2F2ZWdpZDsNCiAgICAg
aW50IHJldDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9W
RVJTSU9OKDIsNiwyOSkNCisgICAgY29uc3Qgc3RydWN0IGNyZWQgKm9sZF9j
cmVkOw0KKyAgICBzdHJ1Y3QgY3JlZCAqb3ZlcnJpZGVfY3JlZDsNCisjZW5k
aWYNCisNCisgICAgKHZvaWQpc2F2ZXVpZDsNCisgICAgKHZvaWQpc2F2ZWdp
ZDsNCiANCiAgICAgQlVHX09OKCFubnBmc3ApOw0KICAgICBCVUdfT04oZmxh
Z3MgJiBPX0NSRUFUICYmIGZpbGUgIT0gTlVMTCk7DQpAQCAtMzQ2LDIyICsz
NTMsMzQgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNfbm9kZSAq
bm9kZQ0KICAgICBCVUdfT04oIW5ucGZzcC0+Y2FjaGVkaXIgfHwgIW5ucGZz
cC0+Y2FjaGVyb290KTsNCiAgICAgDQogICAgIC8qIHVzZSB0aGUgbmZzZCB0
cmljayB0byBnaXZlIHVzIGFjY2VzcyAqLw0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBzYXZldWlk
ID0gY3VycmVudC0+ZnN1aWQ7DQogICAgIHNhdmVnaWQgPSBjdXJyZW50LT5m
c2dpZDsNCiAgICAgY3VycmVudC0+ZnN1aWQgPSBubnBmc3AtPnVpZDsNCiAg
ICAgY3VycmVudC0+ZnNnaWQgPSBubnBmc3AtPmdpZDsNCi0NCi0gICAgbmQu
ZGVudHJ5ID0gZGdldChubnBmc3AtPmNhY2hlZGlyKTsNCi0gICAgbmQubW50
ID0gbW50Z2V0KG5ucGZzcC0+Y2FjaGVyb290KTsNCi0gICAgbmQubGFzdF90
eXBlID0gTEFTVF9OT1JNOw0KLSAgICBuZC5kZXB0aCA9IDA7DQotICAgIG5k
LmZsYWdzID0gMDsNCi0gICAgDQotICAgIGlmIChmbGFncyAmIE9fQ1JFQVQp
DQotCW5kLmZsYWdzID0gTE9PS1VQX1BBUkVOVDsNCi0gICAgDQotICAgIHJl
dCA9IHBhdGhfd2FsayhjYWNoZW5hbWUsICZuZCk7DQotICAgIGlmIChyZXQp
IHsNCisjZWxzZQ0KKyAgICBzYXZldWlkID0gY3VycmVudF9mc3VpZCgpOw0K
KyAgICBzYXZlZ2lkID0gY3VycmVudF9mc2dpZCgpOw0KKyAgICBvdmVycmlk
ZV9jcmVkID0gcHJlcGFyZV9jcmVkcygpOw0KKyAgICBpZiAob3ZlcnJpZGVf
Y3JlZCA9PSBOVUxMKQ0KKyAgICAgICAgcmV0dXJuIC1FTk9NRU07DQorICAg
IG92ZXJyaWRlX2NyZWQtPmZzdWlkID0gbm5wZnNwLT51aWQ7DQorICAgIG92
ZXJyaWRlX2NyZWQtPmZzZ2lkID0gbm5wZnNwLT5naWQ7DQorICAgIG9sZF9j
cmVkID0gb3ZlcnJpZGVfY3JlZHMob3ZlcnJpZGVfY3JlZCk7DQorI2VuZGlm
DQorDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDEsMCkpDQorICAgIHJldCA9IHZmc19wYXRoX2xvb2t1cChubnBmc3At
PmNhY2hlZGlyLCBubnBmc3AtPmNhY2hlcm9vdCwNCisJCQkgIGNhY2hlbmFt
ZSwNCisJCQkgIGZsYWdzICYgT19DUkVBVCA/IExPT0tVUF9QQVJFTlQgOiAw
LA0KKwkJCSAgJm5kKTsNCisjZWxzZQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9s
b29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQor
CQkJICBjYWNoZW5hbWUsDQorCQkJICBmbGFncyAmIE9fQ1JFQVQgPyBMT09L
VVBfUEFSRU5UIDogMCwNCisJCQkgICZuZC5wYXRoKTsNCisjZW5kaWYNCisg
ICAgIGlmIChyZXQpIHsNCiAJdWludDMyX3Qgbm1hc2tzID0gbm9kZS0+ZGF0
YS5ubWFza3M7DQogCXVpbnQzMl90IG1hc2s7DQogDQpAQCAtMzg3LDE2ICs0
MDYsMjEgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNfbm9kZSAq
bm9kZQ0KICAgICANCiAgICAgaWYgKGZsYWdzICYgT19DUkVBVCkgew0KIAkv
KiBYWFggbW9kZSBiaXRzIG9uIGNyZWF0ZSAtLSBTX0lSVVNSfFNfSVdVU1Ig
Ki8NCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMSwwKSkNCiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gbG9va3VwX2Ny
ZWF0ZSgmbmQsIDApOwkNCisjZWxzZQ0KKwkvKiBUT0RPOiBjaGVjayB0aGUg
Y2FsbCB0byBrZXJuX3BhdGhfY3JlYXRlKCkgKi8NCisJc3RydWN0IGRlbnRy
eSAqZGVudHJ5ID0ga2Vybl9wYXRoX2NyZWF0ZShBVF9GRENXRCwgTlVMTCwg
Jm5kLnBhdGgsIDApOwkNCisjZW5kaWYNCiAJaWYgKElTX0VSUihkZW50cnkp
KSB7DQogCSAgICByZXQgPSBQVFJfRVJSKGRlbnRyeSk7DQogCX0gZWxzZSB7
DQotCSAgICByZXQgPSB2ZnNfY3JlYXRlKG5kLmRlbnRyeS0+ZF9pbm9kZSwg
ZGVudHJ5LCBTX0lSVVNSfFNfSVdVU1IsICZuZCk7DQorCSAgICByZXQgPSB2
ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5LT5kX2lub2RlLCBkZW50cnksIFNf
SVJVU1J8U19JV1VTUiwgJm5kKTsNCiAJICAgIGRwdXQoZGVudHJ5KTsNCiAJ
fQ0KIA0KLQltdXRleF91bmxvY2soJm5kLmRlbnRyeS0+ZF9pbm9kZS0+aV9t
dXRleCk7DQotCXBhdGhfcmVsZWFzZSgmbmQpOw0KKwltdXRleF91bmxvY2so
Jm5kLnBhdGguZGVudHJ5LT5kX2lub2RlLT5pX211dGV4KTsNCisJcGF0aF9w
dXQoJm5kLnBhdGgpOw0KIA0KIAlpZiAocmV0KSB7DQogCSAgICBwcmludGso
Im5ucGZzX2Jsb2NrX29wZW4oJXMpIGNyZWF0ZSBmYWlsZWQ6ICVkXG4iLCBj
YWNoZW5hbWUsIC1yZXQpOw0KQEAgLTQxMCwxMiArNDM0LDE2IEBAIG5ucGZz
X2Jsb2NrX29wZW4oc3RydWN0IG5ucGZzX25vZGUgKm5vZGUNCiAJICAgIHJl
dCA9IG5ucGZzX2Jsb2NrX2V4dGVuZChub2RlLCBvZmZzZXQpOw0KIAl9DQog
ICAgIH0gZWxzZSB7DQotCXN0cnVjdCBmaWxlICpmID0gZGVudHJ5X29wZW4o
bmQuZGVudHJ5LCBuZC5tbnQsIGZsYWdzKTsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KKwlzdHJ1Y3QgZmls
ZSAqZiA9IGRlbnRyeV9vcGVuKG5kLnBhdGguZGVudHJ5LCBuZC5wYXRoLm1u
dCwgZmxhZ3MpOw0KKyNlbHNlDQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9
IGRlbnRyeV9vcGVuKG5kLnBhdGguZGVudHJ5LCBuZC5wYXRoLm1udCwgZmxh
Z3MsIGN1cnJlbnRfY3JlZCgpKTsNCisjZW5kaWYNCiAJaWYgKElTX0VSUihm
KSkgew0KIAkgICAgcmV0ID0gUFRSX0VSUihmKTsNCiAJICAgIHByaW50aygi
bm5wZnNfYmxvY2tfb3Blbiglcykgb3BlbiBmYWlsZWQ6ICVkXG4iLCBjYWNo
ZW5hbWUsIC1yZXQpOw0KIAkgICAgbm5wZnNfZGVidWdfb29wcygpOw0KLQkg
ICAgcGF0aF9yZWxlYXNlKCZuZCk7DQorCSAgICBwYXRoX3B1dCgmbmQucGF0
aCk7DQogCX0gZWxzZSB7DQogCSAgICAqZmlsZSA9IGY7DQogCX0NCkBAIC00
MjQsOCArNDUyLDEzIEBAIG5ucGZzX2Jsb2NrX29wZW4oc3RydWN0IG5ucGZz
X25vZGUgKm5vZGUNCiAgICAgLyogcGF0aF9yZWxlYXNlKCkgaXMgdXN1YWxs
eSBoYW5kbGVkIG9uIGNsb3NlICovDQogDQogIG91dDoNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAg
Y3VycmVudC0+ZnN1aWQgPSBzYXZldWlkOw0KICAgICBjdXJyZW50LT5mc2dp
ZCA9IHNhdmVnaWQ7DQorI2Vsc2UNCisgICAgcmV2ZXJ0X2NyZWRzKG9sZF9j
cmVkKTsNCisgICAgcHV0X2NyZWQob3ZlcnJpZGVfY3JlZCk7DQorI2VuZGlm
DQogDQogICAgIHJldHVybiByZXQ7DQogfQ0KZGlmZiAtdXByTiAtWG5vZGlm
Zi50eHQgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jIGFybGEt
Zm9yLWxpbnV4LTMuNS9ubnBmcy9saW51eC9ubnBmc19kZXYuYw0KLS0tIGFy
bGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19kZXYuYwkyMDA2LTEwLTI0IDE4
OjMzOjM2LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEtZm9yLWxpbnV4LTMu
NS9ubnBmcy9saW51eC9ubnBmc19kZXYuYwkyMDE2LTAxLTEwIDE2OjUxOjI1
LjQ2MjI1NDQ2OCArMDEwMA0KQEAgLTMwMCw4ICszMDAsMTAgQEAgbm5wZnNf
aW52YWxpZGF0ZV9hbGwoc3RydWN0IG5ucGZzICpubnBmcw0KICAgICBOTlBG
U0RFQihYREVCTk9ERSwgKCJmcmVlX2FsbF9ubnBmc19ub2RlcyBzdGFydGlu
Z1xuIikpOw0KIA0KICAgICBzaHJpbmtfZGNhY2hlX3NiKG5ucGZzLT5zYik7
DQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzcpKQ0KICAgICBpbnZhbGlkYXRlX2lub2RlcyhubnBmcy0+c2IpOw0K
LSAgICANCisjZW5kaWYNCisNCiAgICAgTk5QRlNERUIoWERFQk5PREUsICgi
ZnJlZV9hbGxfbm5wZnNfbm9kZXMgZG9uZVxuIikpOw0KIH0NCiANCkBAIC01
MDUsMTIgKzUwNywyMyBAQCBubnBmc19kZXZ3cml0ZShzdHJ1Y3QgZmlsZSAq
ZmlsZSwgY29uc3QNCiAvKg0KICAqIE5vdCB1c2VkLg0KICAqLw0KKyNpZiAo
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KSkN
CiBzdGF0aWMgaW50DQogbm5wZnNfZGV2aW9jdGwoc3RydWN0IGlub2RlICpp
bm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsDQogCSAgICAgICB1bnNpZ25lZCBp
bnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykNCisjZWxzZQ0KK3N0YXRpYyBs
b25nDQorbm5wZnNfZGV2aW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsDQorCSAg
ICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykNCisj
ZW5kaWYNCiB7DQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigyLDYsMzYpKQ0KICAgICBOTlBGU0RFQihYREVCREVWLCAoIm5u
cGZzX2RldmlvY3RsIGRldiA9ICVkLCBmbGFncyA9ICVkXG4iLA0KIAkJICAg
ICAgIGlub2RlLT5pX3JkZXYsIGZpbGUtPmZfZmxhZ3MpKTsNCisjZWxzZQ0K
KyAgICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2RldmlvY3RsIGRldiA9
ICVkLCBmbGFncyA9ICVkXG4iLA0KKwkJICAgICAgIGZpbGUtPmZfZGVudHJ5
LT5kX2lub2RlLT5pX3JkZXYsIGZpbGUtPmZfZmxhZ3MpKTsNCisjZW5kaWYN
CiAgICAgcmV0dXJuIC1FSU5WQUw7DQogfQ0KIA0KQEAgLTk1Myw3ICs5NjYs
MTEgQEAgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19mb3BzID0gew0K
ICAgICByZWFkOgkJbm5wZnNfZGV2cmVhZCwNCiAgICAgd3JpdGU6CQlubnBm
c19kZXZ3cml0ZSwNCiAgICAgcG9sbDoJCW5ucGZzX2RldnBvbGwsDQorI2lm
IChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYp
KQ0KICAgICBpb2N0bDoJCW5ucGZzX2RldmlvY3RsLA0KKyNlbHNlDQorICAg
IHVubG9ja2VkX2lvY3RsOglubnBmc19kZXZpb2N0bCwNCisjZW5kaWYNCiAg
ICAgcmVsZWFzZToJCW5ucGZzX2RldmNsb3NlLA0KICAgICBvcGVuOgkJbm5w
ZnNfZGV2b3BlbiwNCiB9Ow0KQEAgLTk2OCw4ICs5ODUsMTYgQEAgbm5wZnNf
aW5pdF9kZXZpY2Uodm9pZCkNCiAJaW5pdF93YWl0cXVldWVfaGVhZCgmKG5u
cGZzW2ldLndhaXRfcXVldWUpKTsNCiAJbm5wZnNfaW5pdHEoJm5ucGZzW2ld
Lm1lc3NhZ2VxKTsNCiAJbm5wZnNfaW5pdHEoJm5ucGZzW2ldLnNsZWVwcSk7
DQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzcpKQ0KIAlpbml0X01VVEVYKCZubnBmc1tpXS5pbmFjdGl2ZV9zZW0p
Ow0KKyNlbHNlDQorCXNlbWFfaW5pdCgmbm5wZnNbaV0uaW5hY3RpdmVfc2Vt
LCAxKTsNCisjZW5kaWYNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDIsNiwzNykpDQogCWluaXRfTVVURVgoJm5ucGZzW2ld
LmNoYW5uZWxfc2VtKTsNCisjZWxzZQ0KKwlzZW1hX2luaXQoJm5ucGZzW2ld
LmNoYW5uZWxfc2VtLCAxKTsNCisjZW5kaWYNCiAJSU5JVF9MSVNUX0hFQUQo
Jm5ucGZzW2ldLmluYWN0aXZlX2xpc3QpOw0KIAlubnBmc1tpXS5ubm9kZXMg
PSAwOw0KICAgICB9DQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLTAu
OTAvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYyBhcmxhLWZvci1saW51
eC0zLjUvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYw0KLS0tIGFybGEt
MC45MC9ubnBmcy9saW51eC9ubnBmc19pbm9kZW9wcy5jCTIwMDYtMTItMTEg
MTc6MzU6MjYuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS1mb3ItbGludXgt
My41L25ucGZzL2xpbnV4L25ucGZzX2lub2Rlb3BzLmMJMjAxNi0wMS0xMSAw
MTozODoyMi4zMTU3OTI0NTkgKzAxMDANCkBAIC00OCw3ICs0OCw3IEBADQog
I2luY2x1ZGUgPGFzbS9mY250bC5oPg0KIA0KICNpZmRlZiBSQ1NJRA0KLVJD
U0lEKCIkSWQ6IG5ucGZzX2lub2Rlb3BzLmMsdiAxLjIyMyAyMDA2LzEyLzEx
IDE2OjM1OjI2IHRvbCBFeHAgJCIpOw0KK1JDU0lEKCIkSWQ6IG5ucGZzX2lu
b2Rlb3BzLmMsdiAxLjIyNiAyMDEwLzA4LzA4IDIwOjQzOjA0IHRvbCBFeHAg
JCIpOw0KICNlbmRpZg0KIA0KIHN0YXRpYyBpbnQNCkBAIC01Nyw4ICs1Nywx
NSBAQCBubnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50
DQogc3RhdGljIGludA0KIG5ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5kKTsNCiANCi1zdGF0
aWMgaW50DQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigyLDYsMzgpKQ0KK3N0YXRpYw0KK2ludA0KIG5ucGZzX2RfZGVsZXRl
KHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7DQorI2Vsc2UNCitzdGF0aWMNCitp
bnQNCitubnBmc19kX2RlbGV0ZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50
cnkpOw0KKyNlbmRpZg0KIA0KIHN0YXRpYyB2b2lkDQogbm5wZnNfZF9yZWxl
YXNlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7DQpAQCAtMTA1LDcgKzExMiw3
IEBAIG5ucGZzX3ZtYV9jbG9zZSAoc3RydWN0IHZtX2FyZWFfc3RydWN0ICoN
CiB9DQogDQogc3RhdGljIHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0cnVjdCBu
bnBmc19maWxlX3ZtX29wcyA9IHsNCi0gICAgLm5vcGFnZQk9IGZpbGVtYXBf
bm9wYWdlLA0KKyAgICAuZmF1bHQgICAgICA9IGZpbGVtYXBfZmF1bHQsDQog
ICAgIC5jbG9zZQk9IG5ucGZzX3ZtYV9jbG9zZSwNCiB9Ow0KIA0KQEAgLTEz
NCwxMiArMTQxLDE0IEBAIG5ucGZzX3ByaW50X3BhdGgoc3RydWN0IGRlbnRy
eSAqZGVudHJ5KQ0KICAqDQogICovDQogDQorI2lmIDANCiB2b2lkDQogbm5w
ZnNfcHJpbnRfbG9jayhjaGFyICpzLCBzdHJ1Y3Qgc2VtYXBob3JlICpzZW0p
DQogew0KICAgICBOTlBGU0RFQihYREVCTE9DSywgKCJsb2NrOiAlcyBzZW06
ICVwIGNvdW50OiAlZFxuIiwNCiAJCSAgICAgIHMsIHNlbSwgKGludClhdG9t
aWNfcmVhZCgmc2VtLT5jb3VudCkpKTsNCiB9DQorI2VuZGlmDQogDQogLyoN
CiAgKg0KQEAgLTE4NSw3ICsxOTQsNyBAQCBubnBmc19kX2lwdXQoc3RydWN0
IGRlbnRyeSAqZGVudHJ5LCBzdHJ1DQogICAgIE5OUEZTREVCKFhERUJWTk9Q
UywNCiAJICAgICAoIm5ucGZzX2RfaXB1dDogZGVudHJ5ICVwLCBpbm9kZSAl
cFxuIiwgZGVudHJ5LCBpbm9kZSkpOw0KICAgICANCi0gICAgaWYgKG5vZGUt
PmZsYWdzICYgTk5QRlNfTk9ERV9JUFVUKSAvKiBYWFggbG9ja2luZyAqLw0K
KyAgICBpZiAobm9kZS0+ZmxhZ3MgJiBOTlBGU19OT0RFX0lQVVQpIC8qIFhY
WCBsb2NraW5nLiBuZXZlciBzZXQ/ICovDQogCW5ucGZzX2lyZWxlKGlub2Rl
KTsNCiAgICAgZWxzZQ0KIAlpcHV0KGlub2RlKTsNCkBAIC0yNDAsNyArMjQ5
LDExIEBAIG5ucGZzX2xvb2t1cCAoc3RydWN0IGlub2RlICpkaXIsIHN0cnVj
dA0KIA0KIAltc2cuaGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19HRVROT0RF
Ow0KICAgICAgICAgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJO
RUxfVkVSU0lPTigyLDYsMjgpDQogCW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQt
PnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVu
dF91aWQoKTsNCisjZW5kaWYNCiAJbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0
X3BhZygpOw0KIAltc2cucGFyZW50X2hhbmRsZSA9IGQtPmhhbmRsZTsNCiAg
ICAgICAgIA0KQEAgLTMxMCw3ICszMjMsMTEgQEAgbm5wZnNfb3Blbl92YWxp
ZChzdHJ1Y3QgaW5vZGUgKnZwLCB1X2ludA0KICAgICAgIHsNCiAJc3RydWN0
IG5ucGZzX21lc3NhZ2Vfb3BlbiBtc2c7DQogCW1zZy5oZWFkZXIub3Bjb2Rl
ID0gTk5QRlNfTVNHX09QRU47DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCW1zZy5jcmVkLnVpZCA9IGN1
cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLmNyZWQudWlkID0g
Y3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAJbXNnLmNyZWQucGFnID0gbm5w
ZnNfZ2V0X3BhZygpOw0KIAltc2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAJ
bXNnLnRva2VucyA9IHRvazsNCkBAIC00MjUsNyArNDQyLDExIEBAIG5ucGZz
X2ZzeW5jX2ludChzdHJ1Y3QgZmlsZSAqZmlsZSwgdV9pbnQNCiANCiAJbXNn
LmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfUFVUREFUQTsNCiAJbXNnLmNy
ZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3JlZC51
aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5jcmVk
LnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5oYW5kbGUg
PSB4bi0+aGFuZGxlOw0KIAltc2cuZmxhZyAgID0gZmxhZzsNCiAJbXNnLm9m
ZnNldCA9IG9mZjsNCkBAIC00NjAsMTQgKzQ4MSwyNyBAQCBubnBmc19mc3lu
Y19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50DQogICoNCiAgKi8NCiAN
CisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs
NiwzNSkpDQogc3RhdGljIGludA0KIG5ucGZzX2ZzeW5jKHN0cnVjdCBmaWxl
ICpmaWxlLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGludCBkYXRhc3luYykN
CisjZWxzZWlmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDEsMCkpDQorc3RhdGljIGludA0KK25ucGZzX2ZzeW5jKHN0cnVjdCBm
aWxlICpmaWxlLCBpbnQgZGF0YXN5bmMpDQorI2Vsc2UNCitzdGF0aWMgaW50
DQorbm5wZnNfZnN5bmMoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBzdGFy
dCwgbG9mZl90IGVuZCwgaW50IGRhdGFzeW5jKQ0KKyNlbmRpZg0KIHsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsIDYs
IDM1KQ0KKyAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkgPSBmaWxlLT5mX3Bh
dGguZGVudHJ5Ow0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2Rl
ID0gREVOVFJZX1RPX0lOT0RFKGRlbnRyeSk7DQogICAgIHN0cnVjdCBubnBm
cyAqbm5wZnNwOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQogICAg
IGludCBlcnJvciA9IDA7DQogDQorICAgICh2b2lkKW5ucGZzcDsNCisNCiAg
ICAgZXJyb3IgPSBubnBmc19pbm9kZV92YWxpZChpbm9kZSk7DQogICAgIGlm
IChlcnJvcikNCiAJcmV0dXJuIGVycm9yOw0KQEAgLTUxMSw3ICs1NDUsMTEg
QEAgbm5wZnNfYXR0cl92YWxpZChzdHJ1Y3QgaW5vZGUgKiB2cCwgdV9pbg0K
ICAgICAgICAgICAgIHN0cnVjdCBubnBmc19tZXNzYWdlX2dldGF0dHIgbXNn
Ow0KIA0KICAgICAgICAgICAgIG1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNf
TVNHX0dFVEFUVFI7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJO
RUxfVkVSU0lPTigyLDYsMjgpDQogICAgICAgICAgICAgbXNnLmNyZWQudWlk
ID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICAgICAgbXNnLmNy
ZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAgICAgICAgICAg
ICBtc2cuY3JlZC5wYWcgPSBwYWc7DQogICAgICAgICAgICAgbXNnLmhhbmRs
ZSA9IHhuLT5oYW5kbGU7DQogICAgICAgICAgICAgZXJyb3IgPSBubnBmc19t
ZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7
DQpAQCAtNTUxLDcgKzU4OSwxMSBAQCBubnBmc19yaWdodHNfdmFsaWQoc3Ry
dWN0IGlub2RlICogdnAsIG5uDQogICAgICAgICAgICAgc3RydWN0IG5ucGZz
X21lc3NhZ2VfZ2V0YXR0ciBtc2c7DQogDQogICAgICAgICAgICAgbXNnLmhl
YWRlci5vcGNvZGUgPSBOTlBGU19NU0dfR0VUQVRUUjsNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAg
ICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UN
CisgICAgICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0K
KyNlbmRpZg0KICAgICAgICAgICAgIG1zZy5jcmVkLnBhZyA9IHBhZzsNCiAg
ICAgICAgICAgICBtc2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAgICAgICAg
ICAgICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5o
ZWFkZXIsIHNpemVvZihtc2cpKTsNCkBAIC01OTIsMTEgKzYzNCwyNiBAQCBj
aGVja19yaWdodHMgKG5ucGZzX3JpZ2h0cyByaWdodHMsIGludCBtDQogICog
V2UgZG9uJ3QgaG9sZCBpX211dGV4Lg0KICAqLw0KIA0KKyNpZiAoTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KSB8fCBMSU5V
WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxLDApKQ0KIHN0
YXRpYyBpbnQNCi1ubnBmc19wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5v
ZGUsIGludCBtb2RlLCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCitubnBmc19w
ZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtb2RlKQ0KKyNl
bHNlDQorc3RhdGljIGludA0KK25ucGZzX3Blcm1pc3Npb24oc3RydWN0IGlu
b2RlICppbm9kZSwgaW50IG1vZGUsIHVuc2lnbmVkIGludCBmbGFncykNCisj
ZW5kaWYNCiB7DQogICAgIGludCBlcnJvciA9IDA7DQotICAgIG5ucGZzX3Bh
Z190IHBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCisgICAgbm5wZnNfcGFnX3Qg
cGFnOw0KKyAgICAvKiBUT0RPOiB2ZXJpZnkgdGhpcyAqLw0KKyNpZiAoTElO
VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkgJiYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxLDApKQ0K
KyAgICBpZiAoZmxhZ3MgJiBJUEVSTV9GTEFHX1JDVSkNCisgICAgICAgIHJl
dHVybiAtRUNISUxEOw0KKyNlbHNlDQorICAgIGlmIChtb2RlICYgTUFZX05P
VF9CTE9DSykNCisgICAgICAgIHJldHVybiAtRUNISUxEOw0KKyNlbmRpZg0K
Kw0KKyAgICBwYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAgIA0KICAgICBO
TlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfYWNjZXNzICglcCkgbW9kZSA9
IDAlbyBhbGlhc2VzOiIsIGlub2RlLCBtb2RlKSk7DQogICAgIG5ucGZzX3By
aW50X2FsaWFzZXMoaW5vZGUpOw0KQEAgLTYzNiw3ICs2OTMsMTEgQEAgbm5w
ZnNfZG9fZ2V0ZGF0YShzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4sDQogICAgIGlu
dCBlcnJvcjsNCiANCiAgICAgbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19N
U0dfR0VUREFUQTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5F
TF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgbXNnLmNyZWQudWlkID0gY3VycmVu
dC0+dWlkOw0KKyNlbHNlDQorICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRf
dWlkKCk7DQorI2VuZGlmDQogICAgIG1zZy5jcmVkLnBhZyA9IG5ucGZzX2dl
dF9wYWcoKTsNCiAgICAgbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogICAg
IG1zZy50b2tlbnMgPSB0b2s7DQpAQCAtNzkxLDE4ICs4NTIsMTIgQEAgaW50
IG5ucGZzX2ZpbGVfbW1hcChzdHJ1Y3QgZmlsZSAqIGZpbGUsDQogDQogc3Rh
dGljIHNzaXplX3QNCiBubnBmc19haW9fcmVhZChzdHJ1Y3Qga2lvY2IgKmlv
Y2IsDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lP
TigyLDYsMTkpDQogCSAgICAgICBjb25zdCBzdHJ1Y3QgaW92ZWMgKmlvdiwg
dW5zaWduZWQgbG9uZyBucl9zZWdzLA0KLSNlbHNlDQotCSAgICAgICBjaGFy
IF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsDQotI2VuZGlmDQogCSAgICAg
ICBsb2ZmX3QgcG9zKQ0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCiAgICAg
c3RydWN0IGZpbGUgKmZpbGUgPSBpb2NiLT5raV9maWxwOw0KLSNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE5KQ0KICAg
ICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbGVmdDsNCi0jZW5kaWYNCiAg
ICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lu
b2RlOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19Y
Tk9ERShpbm9kZSk7DQogICAgIA0KQEAgLTgxNiwxMSArODcxLDcgQEAgbm5w
ZnNfYWlvX3JlYWQoc3RydWN0IGtpb2NiICppb2NiLA0KIAlyZXR1cm4gZXJy
b3I7DQogICAgIH0NCiAgICAgDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+
PSBLRVJORUxfVkVSU0lPTigyLDYsMTkpDQogICAgIGVycm9yID0gZ2VuZXJp
Y19maWxlX2Fpb19yZWFkKGlvY2IsIGlvdiwgbnJfc2VncywgcG9zKTsNCi0j
ZWxzZQ0KLSAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV9haW9fcmVhZChpb2Ni
LCBidWYsIGNvdW50LCBwb3MpOw0KLSNlbmRpZg0KICAgICBOTlBGU0RFQihY
REVCVk5PUFMsICgibm5wZnNfcmVhZF9maWxlOiBlcnJvciA9ICVkXG4iLCBl
cnJvcikpOw0KICAgICByZXR1cm4gZXJyb3I7DQogfQ0KQEAgLTgzMSwxOCAr
ODgyLDEyIEBAIG5ucGZzX2Fpb19yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwN
CiANCiBzdGF0aWMgc3NpemVfdA0KIG5ucGZzX2Fpb193cml0ZShzdHJ1Y3Qg
a2lvY2IgKmlvY2IsDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO
RUxfVkVSU0lPTigyLDYsMTkpDQogCQljb25zdCBzdHJ1Y3QgaW92ZWMgKmlv
diwgdW5zaWduZWQgbG9uZyBucl9zZWdzLA0KLSNlbHNlDQotCQljb25zdCBj
aGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsIA0KLSNlbmRpZg0KIAkJ
bG9mZl90IHBvcykNCiB7DQogICAgIGludCBlcnJvciA9IDA7DQogICAgIHN0
cnVjdCBmaWxlICpmaWxlID0gaW9jYi0+a2lfZmlscDsNCi0jaWYgTElOVVhf
VkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCiAgICAg
c3NpemVfdCBjb3VudCA9IGlvY2ItPmtpX2xlZnQ7DQotI2VuZGlmDQogICAg
IHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9k
ZTsNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5P
REUoaW5vZGUpOw0KICAgICBsb2ZmX3QgcmVhbHBvcyA9IHBvczsNCkBAIC04
NTksMTEgKzkwNCw3IEBAIG5ucGZzX2Fpb193cml0ZShzdHJ1Y3Qga2lvY2Ig
KmlvY2IsDQogCXJldHVybiBlcnJvcjsNCiAgICAgfQ0KIA0KLSNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE5KQ0KICAg
ICBlcnJvciA9IGdlbmVyaWNfZmlsZV9haW9fd3JpdGUoaW9jYiwgaW92LCBu
cl9zZWdzLCBwb3MpOw0KLSNlbHNlDQotICAgIGVycm9yID0gZ2VuZXJpY19m
aWxlX2Fpb193cml0ZShpb2NiLCBidWYsIGNvdW50LCBwb3MpOw0KLSNlbmRp
Zg0KICAgICBpZiAoIUlTX0VSUl9WQUxVRShlcnJvcikpDQogCXhuLT5mbGFn
cyB8PSBOTlBGU19EQVRBX0RJUlRZOyAvKiBYWFggcmFjZSAqLw0KIA0KQEAg
LTg3MSw5ICs5MTIsMTUgQEAgbm5wZnNfYWlvX3dyaXRlKHN0cnVjdCBraW9j
YiAqaW9jYiwNCiAgICAgcmV0dXJuIGVycm9yOw0KIH0NCiANCisjaWYgKExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMywwKSkNCiBz
dGF0aWMgaW50DQogbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBz
dHJ1Y3QgZGVudHJ5ICpkZW50cnksDQogCSAgICAgaW50IG1vZGUsIHN0cnVj
dCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNlDQorc3RhdGljIGludA0KK25ucGZz
X2NyZWF0ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVu
dHJ5LA0KKwkgICAgIHVtb2RlX3QgbW9kZSwgc3RydWN0IG5hbWVpZGF0YSAq
bmQpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcDsN
CiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0KQEAgLTkwMyw5ICs5NTAs
MTcgQEAgbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3Qg
ZA0KICAgICBYQV9DTEVBUigmbXNnLmF0dHIpOw0KICAgICBYQV9TRVRfTU9E
RSgmbXNnLmF0dHIsIG1vZGUpOw0KICAgICBYQV9TRVRfVFlQRSgmbXNnLmF0
dHIsIE5OUEZTX0ZJTEVfUkVHKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgWEFfU0VUX0dJRCgm
bXNnLmF0dHIsIGN1cnJlbnQtPmZzZ2lkKTsNCisjZWxzZQ0KKyAgICBYQV9T
RVRfR0lEKCZtc2cuYXR0ciwgY3VycmVudF9mc2dpZCgpKTsNCisjZW5kaWYN
CiAgICAgbXNnLm1vZGUgPSAwOwkJLyogWFhYICovDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIG1z
Zy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBtc2cu
Y3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICBtc2cu
Y3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAgIGVycm9yID0gbm5w
ZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1z
ZykpOw0KICAgICBpZiAoZXJyb3IgPT0gMCkNCkBAIC05NDYsNyArMTAwMSwx
MSBAQCBubnBmc191bmxpbmsgKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0
DQogICAgIGlmIChzdHJsY3B5KG1zZy5uYW1lLCBkZW50cnktPmRfbmFtZS5u
YW1lLCBzaXplb2YobXNnLm5hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkNCiAJ
cmV0dXJuIC1FTkFNRVRPT0xPTkc7DQogDQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIG1zZy5jcmVk
LnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBtc2cuY3JlZC51
aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICBtc2cuY3JlZC5w
YWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAgIGVycm9yID0gbm5wZnNfbWVz
c2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0K
ICAgICBpZiAoZXJyb3IgPT0gMCkNCkBAIC05OTEsNyArMTA1MCwxMSBAQCBu
bnBmc19yZW5hbWUgKHN0cnVjdCBpbm9kZSAqIG9sZF9kaXIsIHN0DQogICAg
IGlmIChzdHJsY3B5KG1zZy5uZXdfbmFtZSwgbmV3X2RlbnRyeS0+ZF9uYW1l
Lm5hbWUsIHNpemVvZihtc2cubmV3X25hbWUpKSA+PSBOTlBGU19NQVhfTkFN
RSkNCiAJcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQogCQ0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBt
c2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgbXNn
LmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAgICAgbXNn
LmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICBlcnJvciA9IG5u
cGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZiht
c2cpKTsNCiAgICAgaWYgKGVycm9yID09IDApDQpAQCAtMTAwOCw4ICsxMDcx
LDEzIEBAIG5ucGZzX3JlbmFtZSAoc3RydWN0IGlub2RlICogb2xkX2Rpciwg
c3QNCiAgICAgcmV0dXJuIGVycm9yOw0KIH0NCiANCisjaWYgKExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMywwKSkNCiBzdGF0aWMg
aW50DQogbm5wZnNfbWtkaXIoc3RydWN0IGlub2RlICogZGlyLCBzdHJ1Y3Qg
ZGVudHJ5ICpkZW50cnksIGludCBtb2RlKQ0KKyNlbHNlDQorc3RhdGljIGlu
dA0KK25ucGZzX21rZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGRl
bnRyeSAqZGVudHJ5LCB1bW9kZV90IG1vZGUpDQorI2VuZGlmDQogew0KICAg
ICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcDsNCiAgICAgc3RydWN0IG5ucGZzX25v
ZGUgKnhuOw0KQEAgLTEwNDAsOSArMTEwOCwxNyBAQCBubnBmc19ta2Rpcihz
dHJ1Y3QgaW5vZGUgKiBkaXIsIHN0cnVjdCBkDQogCVhBX0NMRUFSKCZtc2cu
YXR0cik7DQogCVhBX1NFVF9NT0RFKCZtc2cuYXR0ciwgbW9kZSk7DQogCVhB
X1NFVF9UWVBFKCZtc2cuYXR0ciwgTk5QRlNfRklMRV9ESVIpOw0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0K
IAlYQV9TRVRfR0lEKCZtc2cuYXR0ciwgY3VycmVudC0+ZnNnaWQpOw0KKyNl
bHNlDQorICAgICAgICBYQV9TRVRfR0lEKCZtc2cuYXR0ciwgY3VycmVudF9m
c2dpZCgpKTsNCisjZW5kaWYNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJbXNnLmNyZWQudWlkID0g
Y3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICBtc2cuY3JlZC51aWQg
PSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KIAltc2cuY3JlZC5wYWcgPSBu
bnBmc19nZXRfcGFnKCk7DQogCWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMo
bm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KIAlpZiAoZXJy
b3IgPT0gMCkNCkBAIC0xMDgzLDcgKzExNTksMTEgQEAgbm5wZnNfcm1kaXIo
c3RydWN0IGlub2RlICogZGlyLCBzdHJ1Y3QgZA0KICAgICBtc2cucGFyZW50
X2hhbmRsZSA9IHhuLT5oYW5kbGU7DQogICAgIGlmIChzdHJsY3B5KG1zZy5u
YW1lLCBkZW50cnktPmRfbmFtZS5uYW1lLCBzaXplb2YobXNnLm5hbWUpKSA+
PSBOTlBGU19NQVhfTkFNRSkNCiAJICAgIHJldHVybiAtRU5BTUVUT09MT05H
Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04o
Miw2LDI4KQ0KICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQor
I2Vsc2UNCisgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisj
ZW5kaWYNCiAgICAgbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0K
ICAgICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5o
ZWFkZXIsIHNpemVvZihtc2cpKTsNCiAgICAgaWYgKGVycm9yID09IDApDQpA
QCAtMTEyOCw3ICsxMjA4LDExIEBAIHN0YXRpYyBpbnQgbm5wZnNfbGluayhz
dHJ1Y3QgZGVudHJ5ICpvbGQNCiAJaWYgKHN0cmxjcHkobXNnLm5hbWUsIG5h
bWUsIHNpemVvZihtc2cubmFtZSkpID49IE5OUEZTX01BWF9OQU1FKQ0KIAkg
ICAgcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQogDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCW1zZy5jcmVk
LnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLmNy
ZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAJbXNnLmNyZWQu
cGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KIAllcnJvciA9IG5ucGZzX21lc3Nh
Z2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCiAJ
aWYgKGVycm9yID09IDApDQpAQCAtMTE1NywyOSArMTI0MSw0NyBAQCBzdGF0
aWMgaW50IG5ucGZzX3N5bWxpbmsoc3RydWN0IGlub2RlICpkDQogICAgIHhu
ID0gVk5PREVfVE9fWE5PREUoZGlyKTsNCiANCiAgICAgew0KLQlzdHJ1Y3Qg
bm5wZnNfbWVzc2FnZV9zeW1saW5rIG1zZzsNCisJc3RydWN0IG5ucGZzX21l
c3NhZ2Vfc3ltbGluayAqbXNnID0gTlVMTDsNCiANCi0JbXNnLmhlYWRlci5v
cGNvZGUgPSBOTlBGU19NU0dfU1lNTElOSzsNCi0JbXNnLnBhcmVudF9oYW5k
bGUgPSB4bi0+aGFuZGxlOw0KLQlpZiAoc3RybGNweShtc2cubmFtZSwgbmFt
ZSwgc2l6ZW9mKG1zZy5uYW1lKSkgPj0gTk5QRlNfTUFYX05BTUUpDQotCSAg
ICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCi0JaWYgKHN0cmxjcHkobXNnLmNv
bnRlbnRzLCBzeW1uYW1lLCBzaXplb2YobXNnLmNvbnRlbnRzKSkgPj0gTk5Q
RlNfTUFYX1NZTUxJTktfQ09OVEVOVCkNCi0JICAgIHJldHVybiAtRU5BTUVU
T09MT05HOw0KLQlYQV9DTEVBUigmbXNnLmF0dHIpOw0KLQlYQV9TRVRfTU9E
RSgmbXNnLmF0dHIsIDA3NzcpOw0KLQlYQV9TRVRfVFlQRSgmbXNnLmF0dHIs
IE5OUEZTX0ZJTEVfTE5LKTsNCi0JWEFfU0VUX0dJRCgmbXNnLmF0dHIsIGN1
cnJlbnQtPmZzZ2lkKTsNCisJbXNnID0ga21hbGxvYyhzaXplb2YoKm1zZyks
IEdGUF9LRVJORUwpOw0KIA0KLQltc2cuY3JlZC51aWQgPSBjdXJyZW50LT51
aWQ7DQotCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCi0JZXJy
b3IgPSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBz
aXplb2YobXNnKSk7DQorCWlmIChtc2cgPT0gTlVMTCkNCisJICByZXR1cm4g
LUVOT01FTTsNCisNCisJbXNnLT5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNH
X1NZTUxJTks7DQorCW1zZy0+cGFyZW50X2hhbmRsZSA9IHhuLT5oYW5kbGU7
DQorCWlmIChzdHJsY3B5KG1zZy0+bmFtZSwgbmFtZSwgc2l6ZW9mKG1zZy0+
bmFtZSkpID49IE5OUEZTX01BWF9OQU1FKSB7DQorCSAga2ZyZWUobXNnKTsN
CisJICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCisJfQ0KKwlpZiAoc3RybGNw
eShtc2ctPmNvbnRlbnRzLCBzeW1uYW1lLCBzaXplb2YobXNnLT5jb250ZW50
cykpID49IE5OUEZTX01BWF9TWU1MSU5LX0NPTlRFTlQpIHsNCisJICBrZnJl
ZShtc2cpOw0KKwkgIHJldHVybiAtRU5BTUVUT09MT05HOw0KKwl9DQorCVhB
X0NMRUFSKCZtc2ctPmF0dHIpOw0KKwlYQV9TRVRfTU9ERSgmbXNnLT5hdHRy
LCAwNzc3KTsNCisJWEFfU0VUX1RZUEUoJm1zZy0+YXR0ciwgTk5QRlNfRklM
RV9MTkspOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZF
UlNJT04oMiw2LDI4KQ0KKwlYQV9TRVRfR0lEKCZtc2ctPmF0dHIsIGN1cnJl
bnQtPmZzZ2lkKTsNCisjZWxzZQ0KKyAgICAgICAgWEFfU0VUX0dJRCgmbXNn
LT5hdHRyLCBjdXJyZW50X2ZzZ2lkKCkpOw0KKyNlbmRpZg0KKw0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0K
Kwltc2ctPmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAg
ICAgICBtc2ctPmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYN
CisJbXNnLT5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCisJZXJyb3Ig
PSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2ctPmhlYWRlciwgc2l6
ZW9mKCptc2cpKTsNCiAJaWYgKGVycm9yID09IDApDQotCSAgICBlcnJvciA9
IE5OUEZTX01TR19XQUtFVVBfRVJST1IoJm1zZyk7DQorCSAgICBlcnJvciA9
IE5OUEZTX01TR19XQUtFVVBfRVJST1IobXNnKTsNCiANCiAJLyogWFhYIHNo
b3VsZCB0aGlzIHJlYWxseSBiZSBoZXJlICovDQogCWlmIChERU5UUllfVE9f
WERFTlRSWShkZW50cnkpLT54ZF9mbGFncyA9PSAwKSB7DQogCSAgICBwcmlu
dGsoS0VSTl9FTUVSRyAiTk5QRlMgUGFuaWM6IG5ucGZzX3N5bWxpbms6IGRl
bnRyeSBub3QgdmFsaWRcbiIpOw0KIAl9DQorCWtmcmVlKG1zZyk7DQogICAg
IH0NCiANCiAgICAgcmV0dXJuIGVycm9yOw0KQEAgLTEzOTgsNyArMTUwMCwx
MSBAQCBubnBmc19zZXRhdHRyIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0
DQogICAgICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9wdXRhdHRyIG1zZzsN
CiANCiAgICAgICAgIG1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1BV
VEFUVFI7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVS
U0lPTigyLDYsMjgpDQogCW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsN
CisjZWxzZQ0KKyAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQo
KTsNCisjZW5kaWYNCiAJbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygp
Ow0KICAgICAgICAgbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogICAgICAg
ICBubnBmc19pYXR0cjJhdHRyKHhuLCBhdHRyLCAmbXNnLmF0dHIpOw0KQEAg
LTE0MjIsNiArMTUyOCw4IEBAIG5ucGZzX3JlbGVhc2VfZmlsZSAoc3RydWN0
IGlub2RlICppbm9kZSwNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0K
ICAgICBpbnQgZXJyb3IgPSAwOw0KIA0KKyAgICAodm9pZClubnBmc3A7DQor
DQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19yZWxlYXNlX2Zp
bGVcbiIpKTsNCiANCiAgICAgZXJyb3IgPSBubnBmc19pbm9kZV92YWxpZChp
bm9kZSk7DQpAQCAtMTQ1MCwxMyArMTU1OCw4IEBAIG5ucGZzX3JlbGVhc2Vf
ZmlsZSAoc3RydWN0IGlub2RlICppbm9kZSwNCiAgKg0KICAqLw0KIA0KLSNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4
KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19mbHVzaChzdHJ1Y3QgZmlsZSAqZmls
ZSwgZmxfb3duZXJfdCBpZCkNCi0jZWxzZQ0KLXN0YXRpYyBpbnQNCi1ubnBm
c19mbHVzaChzdHJ1Y3QgZmlsZSAqZmlsZSkNCi0jZW5kaWYNCiB7DQogICAg
IE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19mbHVzaFxuIikpOw0KIA0K
QEAgLTE1MTksOSArMTYyMiwxNSBAQCBubnBmc19kX3JldmFsaWRhdGUoc3Ry
dWN0IGRlbnRyeSAqZGVudHJ5DQogICAgIHJldHVybiAwOw0KIH0NCiANCisj
aWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwz
OCkpDQogc3RhdGljDQogaW50DQogbm5wZnNfZF9kZWxldGUoc3RydWN0IGRl
bnRyeSAqZGVudHJ5KQ0KKyNlbHNlDQorc3RhdGljDQoraW50DQorbm5wZnNf
ZF9kZWxldGUoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRp
Zg0KIHsNCiAgICAgc3RydWN0IGlub2RlICppbm9kZTsNCiAgICAgc3RydWN0
IG5ucGZzX25vZGUgKnhuOw0KQEAgLTE1NDYsOCArMTY1NSw5IEBAIG5ucGZz
X2RfZGVsZXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkNCiB9DQogDQogc3Rh
dGljIHNzaXplX3QNCi1ubnBmc19zZW5kZmlsZShzdHJ1Y3QgZmlsZSAqZmls
ZSwgbG9mZl90ICpwcG9zLCBzaXplX3QgY291bnQsDQotCSAgICAgICByZWFk
X2FjdG9yX3QgYWN0b3IsIHZvaWQgKnRhcmdldCkNCitubnBmc19zcGxpY2Vf
cmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90ICpwcG9zLA0KKwkJICBz
dHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlLCBzaXplX3QgY291bnQsDQor
CQkgIHVuc2lnbmVkIGludCBmbGFncykNCiB7DQogICAgIGludCBlcnJvciA9
IDA7DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRy
eS0+ZF9pbm9kZTsNCkBAIC0xNTYxLDggKzE2NzEsNyBAQCBubnBmc19zZW5k
ZmlsZShzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90DQogCU5OUEZTREVCKFhE
RUJWTk9QUywgKCJubnBmc19zZW5kZmlsZTogZGF0YSBub3QgdmFsaWQgJWRc
biIsIGVycm9yKSk7DQogCXJldHVybiBlcnJvcjsNCiAgICAgfQ0KLQ0KLSAg
ICBlcnJvciA9IGdlbmVyaWNfZmlsZV9zZW5kZmlsZShmaWxlLCBwcG9zLCBj
b3VudCwgYWN0b3IsIHRhcmdldCk7DQorICAgIGVycm9yID0gZmlsZS0+Zl9v
cC0+c3BsaWNlX3JlYWQoZmlsZSwgcHBvcywgcGlwZSwgY291bnQsIGZsYWdz
KTsNCiANCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3NlbmRm
aWxlOiBlcnJvciA9ICVkXG4iLCBlcnJvcikpOw0KICAgICByZXR1cm4gZXJy
b3I7DQpAQCAtMTYzOSwzNCArMTc0OCwzMSBAQCBubnBmc193cml0ZV9iYWNr
cGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwNCiAJc3RydWN0IGFkZHJlc3Nfc3Bh
Y2UgKm1hcHBpbmcgPSBiYWNrZmlsZS0+Zl9tYXBwaW5nOw0KIAl1bnNpZ25l
ZCBsZW4gPSBQQUdFX0NBQ0hFX1NJWkU7DQogCXN0cnVjdCBwYWdlICpiYWNr
cGFnZTsNCisJdm9pZCAqZnNkYXRhOw0KIAl1bnNpZ25lZCBsb25nIG9mZnNl
dDsNCiANCiAJaW50IGVycm9yOw0KLQkNCi0JZG8gew0KLQkJYmFja3BhZ2Ug
PSBncmFiX2NhY2hlX3BhZ2UobWFwcGluZywgbm5wZnNfZ2V0X2JhY2tpbmRl
eChwYWdlKSk7DQotCQlpZiAoIWJhY2twYWdlKSB7DQotCQkJcHJpbnRrKCJu
bnBmc193cml0ZV9iYWNrcGFnZTogbm8gcGFnZVxuIik7DQotCQkJcmV0dXJu
IC1FSU87DQotCQl9DQogDQotCQllcnJvciA9IG1hcHBpbmctPmFfb3BzLT5w
cmVwYXJlX3dyaXRlKGJhY2tmaWxlLCBiYWNrcGFnZSwNCi0JCQkJCQkgICAg
ICAwLCBsZW4pOw0KKwkodm9pZClvZmZzZXQ7DQorDQorCWRvIHsNCisJCWVy
cm9yID0gcGFnZWNhY2hlX3dyaXRlX2JlZ2luKGJhY2tmaWxlLCBtYXBwaW5n
LCAwLCBsZW4sDQorCQkJCQkgICAgICBBT1BfRkxBR19VTklOVEVSUlVQVElC
TEUsDQorCQkJCQkgICAgICAmYmFja3BhZ2UsICZmc2RhdGEpOw0KIAkJaWYg
KCFlcnJvcikgew0KIAkJCWNvcHlfaGlnaHBhZ2UoYmFja3BhZ2UsIHBhZ2Up
Ow0KIAkJCWZsdXNoX2RjYWNoZV9wYWdlKGJhY2twYWdlKTsNCi0JCQllcnJv
ciA9IG1hcHBpbmctPmFfb3BzLT5jb21taXRfd3JpdGUoYmFja2ZpbGUsIGJh
Y2twYWdlLA0KLQkJCQkJCQkgICAgIDAsIGxlbik7DQorCQkJZXJyb3IgPSBw
YWdlY2FjaGVfd3JpdGVfZW5kKGJhY2tmaWxlLCBtYXBwaW5nLCAwLCBsZW4s
DQorCQkJCQlsZW4sIGJhY2twYWdlLCBmc2RhdGEpOw0KKwkJCWlmIChlcnJv
ciA+IDApDQorCQkJCWVycm9yID0gMDsNCiAJCX0NCiAJCWlmIChlcnJvciA9
PSBBT1BfVFJVTkNBVEVEX1BBR0UpIHsNCi0JCQlwYWdlX2NhY2hlX3JlbGVh
c2UoYmFja3BhZ2UpOw0KIAkJCWNvbnRpbnVlOw0KIAkJfQ0KIAl9IHdoaWxl
ICgwKTsNCiANCiAJb2Zmc2V0ID0gcGFnZV9vZmZzZXQoYmFja3BhZ2UpOw0K
LQl1bmxvY2tfcGFnZShiYWNrcGFnZSk7DQotCXBhZ2VfY2FjaGVfcmVsZWFz
ZShiYWNrcGFnZSk7DQogDQogCWlmIChlcnJvcikNCiAJCXByaW50aygibm5w
ZnNfd3JpdGVfYmFja3BhZ2U6IEVJT1xuIik7DQpAQCAtMTY4OSwxMyArMTc5
NSw5IEBAIG5ucGZzX3JlYWRfYmFja3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2Us
IHMNCiAJc3RydWN0IHBhZ2UgKmJhY2twYWdlOw0KIAl1bnNpZ25lZCBsb25n
IG9mZnNldDsNCiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5F
TF9WRVJTSU9OKDIsNiwxOCkNCisJKHZvaWQpb2Zmc2V0Ow0KKw0KIAliYWNr
cGFnZSA9IHJlYWRfbWFwcGluZ19wYWdlKG1hcHBpbmcsIG4sIGJhY2tmaWxl
KTsNCi0jZWxzZQ0KLQliYWNrcGFnZSA9IHJlYWRfY2FjaGVfcGFnZShtYXBw
aW5nLCBuLA0KLQkJCQkgICAoZmlsbGVyX3QgKiltYXBwaW5nLT5hX29wcy0+
cmVhZHBhZ2UsDQotCQkJCSAgIGJhY2tmaWxlKTsNCi0jZW5kaWYNCiAJaWYg
KCFJU19FUlIoYmFja3BhZ2UpKSB7DQogCQl3YWl0X29uX3BhZ2VfbG9ja2Vk
KGJhY2twYWdlKTsNCiANCkBAIC0xODcyLDggKzE5NzQsMzcgQEAgbm5wZnNf
cHJlcGFyZV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgcw0KIAlyZXR1cm4g
cmV0Ow0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5F
TF9WRVJTSU9OKDIsNiwyOCkNCisNCitzdGF0aWMgaW50DQorbm5wZnNfd3Jp
dGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3Nw
YWNlICptYXBwaW5nLCBsb2ZmX3QgcG9zLA0KK3Vuc2lnbmVkIGxlbiwgdW5z
aWduZWQgZmxhZ3MsIHN0cnVjdCBwYWdlICoqcGFnZXAsIHZvaWQgKipmc2Rh
dGEpDQorew0KKwlzdHJ1Y3QgcGFnZSAqcGFnZTsNCisJcGdvZmZfdCBpbmRl
eDsNCisJdW5zaWduZWQgZnJvbTsNCisNCisJaW5kZXggPSBwb3MgPj4gUEFH
RV9DQUNIRV9TSElGVDsNCisJZnJvbSA9IHBvcyAmIChQQUdFX0NBQ0hFX1NJ
WkUgLSAxKTsNCisNCisjaWZkZWYgQU9QX0ZMQUdfTk9GUw0KKwlwYWdlID0g
Z3JhYl9jYWNoZV9wYWdlX3dyaXRlX2JlZ2luKG1hcHBpbmcsIGluZGV4LCBm
bGFncyk7DQorI2Vsc2UNCisJcGFnZSA9IF9fZ3JhYl9jYWNoZV9wYWdlKG1h
cHBpbmcsIGluZGV4KTsNCisjZW5kaWYNCisJaWYgKHBhZ2UgPT0gTlVMTCkN
CisJCXJldHVybiAtRU5PTUVNOw0KKw0KKwkqcGFnZXAgPSBwYWdlOw0KKw0K
KwlyZXR1cm4gbm5wZnNfcHJlcGFyZV93cml0ZShmaWxlLCBwYWdlLCBmcm9t
LCBmcm9tICsgbGVuKTsNCit9DQorDQorI2VuZGlmDQorDQogc3RhdGljIGlu
dA0KLW5ucGZzX2NvbW1pdF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3Ry
dWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvKQ0K
K25ucGZzX2NvbW1pdF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0
IHBhZ2UgKnBhZ2UsDQorCQkgICB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0
bykNCiB7DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBw
aW5nLT5ob3N0Ow0KICAgICBsb2ZmX3QgcG9zID0gKChsb2ZmX3QpcGFnZS0+
aW5kZXggPDwgUEFHRV9DQUNIRV9TSElGVCkgKyB0bzsNCkBAIC0xOTAyLDE0
ICsyMDMzLDQzIEBAIG5ucGZzX2NvbW1pdF93cml0ZShzdHJ1Y3QgZmlsZSAq
ZmlsZSwgc3QNCiAgICAgcmV0dXJuIDA7DQogfQ0KIA0KLSNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4KQ0KLWNvbnN0
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigy
LDYsMjgpDQorDQorc3RhdGljIGludA0KK25ucGZzX3dyaXRlX2VuZChzdHJ1
Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcs
IGxvZmZfdCBwb3MsDQorCQl1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGll
ZCwgc3RydWN0IHBhZ2UgKnBhZ2UsIHZvaWQgKmZzZGF0YSkNCit7DQorCXVu
c2lnbmVkIGZyb20gPSBwb3MgJiAoUEFHRV9DQUNIRV9TSVpFIC0gMSk7DQor
DQorCS8qIHplcm8gdGhlIHN0YWxlIHBhcnQgb2YgdGhlIHBhZ2UgaWYgd2Ug
ZGlkIGEgc2hvcnQgY29weSAqLw0KKwlpZiAoY29waWVkIDwgbGVuKSB7DQor
CQl2b2lkICprYWRkciA9IGttYXBfYXRvbWljKHBhZ2UsIEtNX1VTRVIwKTsN
CisJCW1lbXNldChrYWRkciArIGZyb20gKyBjb3BpZWQsIDAsIGxlbiAtIGNv
cGllZCk7DQorCQlmbHVzaF9kY2FjaGVfcGFnZShwYWdlKTsNCisJCWt1bm1h
cF9hdG9taWMoa2FkZHIsIEtNX1VTRVIwKTsNCisJfQ0KKw0KKwlubnBmc19j
b21taXRfd3JpdGUoZmlsZSwgcGFnZSwgZnJvbSwgZnJvbSArIGNvcGllZCk7
DQorDQorCXVubG9ja19wYWdlKHBhZ2UpOw0KKwlwYWdlX2NhY2hlX3JlbGVh
c2UocGFnZSk7DQorDQorCXJldHVybiBjb3BpZWQ7DQorfQ0KKw0KICNlbmRp
Zg0KKw0KK2NvbnN0DQogc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9u
cyBubnBmc19hb3BzID0gew0KIAkucmVhZHBhZ2UgPSBubnBmc19yZWFkcGFn
ZSwNCiAJLndyaXRlcGFnZSA9IG5ucGZzX3dyaXRlcGFnZSwNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAku
cHJlcGFyZV93cml0ZSA9IG5ucGZzX3ByZXBhcmVfd3JpdGUsDQogCS5jb21t
aXRfd3JpdGUgPSBubnBmc19jb21taXRfd3JpdGUsDQorI2Vsc2UNCisJLndy
aXRlX2JlZ2luID0gbm5wZnNfd3JpdGVfYmVnaW4sDQorCS53cml0ZV9lbmQg
PSBubnBmc193cml0ZV9lbmQsDQorI2VuZGlmDQogfTsNCiANCiAvKg0KQEAg
LTE5MjQsNyArMjA4NCw3IEBAIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5w
ZnNfZmlsZV9vcGVyYXQNCiAgICAgLmZsdXNoCT0gbm5wZnNfZmx1c2gsDQog
ICAgIC5yZWxlYXNlCT0gbm5wZnNfcmVsZWFzZV9maWxlLA0KICAgICAuZnN5
bmMJPSBubnBmc19mc3luYywNCi0gICAgLnNlbmRmaWxlCT0gbm5wZnNfc2Vu
ZGZpbGUsDQorICAgIC5zcGxpY2VfcmVhZCA9IG5ucGZzX3NwbGljZV9yZWFk
LA0KIH07DQogDQogc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19kZWFk
X29wZXJhdGlvbnMgPSB7DQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxh
LTAuOTAvbm5wZnMvbGludXgvbm5wZnNfbG9hZC5jIGFybGEtZm9yLWxpbnV4
LTMuNS9ubnBmcy9saW51eC9ubnBmc19sb2FkLmMNCi0tLSBhcmxhLTAuOTAv
bm5wZnMvbGludXgvbm5wZnNfbG9hZC5jCTIwMDYtMTAtMzEgMTE6MDI6NDEu
MDAwMDAwMDAwICswMTAwDQorKysgYXJsYS1mb3ItbGludXgtMy41L25ucGZz
L2xpbnV4L25ucGZzX2xvYWQuYwkyMDE2LTAxLTEwIDIwOjMzOjE2LjA2Mjkw
MTk1NyArMDEwMA0KQEAgLTU0LDcgKzU0LDExIEBAIGV4dGVybiBzdHJ1Y3Qg
ZmlsZV9vcGVyYXRpb25zIG5ucGZzX2ZvcHMNCiANCiBzdHJ1Y3QgZmlsZV9z
eXN0ZW1fdHlwZSBubnBmc19mc190eXBlID0gew0KICAgICAgICBuYW1lOiAg
ICAgICAgICAgIm5ucGZzIiwNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkpDQogICAgICAgIGdldF9zYjogICAg
ICAgICBubnBmc19nZXRfc2IsDQorI2Vsc2UNCisgICAgICAgbW91bnQ6ICAg
ICAgICAgIG5ucGZzX21vdW50LA0KKyNlbmRpZg0KICAgICAgICBraWxsX3Ni
OiAgICAgICAga2lsbF9saXR0ZXJfc3VwZXIsDQogICAgICAgIG93bmVyOiAg
ICAgICAgICBUSElTX01PRFVMRSwNCiB9Ow0KZGlmZiAtdXByTiAtWG5vZGlm
Zi50eHQgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYyBh
cmxhLWZvci1saW51eC0zLjUvbm5wZnMvbGludXgvbm5wZnNfbWVzc2FnZS5j
DQotLS0gYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYwky
MDA3LTAxLTA5IDE3OjMzOjMxLjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEt
Zm9yLWxpbnV4LTMuNS9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAx
Ni0wMS0xMCAyMTo1MTo0NC4yMzExMzA5ODQgKzAxMDANCkBAIC00NSw3ICs0
NSw3IEBADQogI2luY2x1ZGUgPGxpbnV4L21vdW50Lmg+DQogDQogI2lmZGVm
IFJDU0lEDQotUkNTSUQoIiRJZDogbm5wZnNfbWVzc2FnZS5jLHYgMS4xNDMu
Mi4xIDIwMDcvMDEvMDkgMTY6MzM6MzEgdG9sIEV4cCAkIik7DQorUkNTSUQo
IiRJZDogbm5wZnNfbWVzc2FnZS5jLHYgMS4xNDUgMjAxMC8wOC8wOCAyMDo0
MzowNSB0b2wgRXhwICQiKTsNCiAjZW5kaWYNCiANCiBzdGF0aWMgdm9pZA0K
QEAgLTU1LDkgKzU1LDE1IEBAIHN0YXRpYyB2b2lkDQogbm5wZnNfZF9yZW1v
dmUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KIHsNCiAgICAgTk5QRlNERUIo
WERFQk1TRywgKCJubnBmc19kX3JlbW92ZSAlcFxuIiwgZGVudHJ5KSk7DQor
I2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs
MzgpKQ0KICAgICBzcGluX2xvY2soJmRjYWNoZV9sb2NrKTsNCiAgICAgZGdl
dF9sb2NrZWQoZGVudHJ5KTsNCiAgICAgc3Bpbl91bmxvY2soJmRjYWNoZV9s
b2NrKTsNCisjZWxzZQ0KKyAgICBzcGluX2xvY2soJmRlbnRyeS0+ZF9sb2Nr
KTsNCisgICAgZGdldF9kbG9jayhkZW50cnkpOw0KKyAgICBzcGluX3VubG9j
aygmZGVudHJ5LT5kX2xvY2spOw0KKyNlbmRpZg0KICAgICBkX2Ryb3AoZGVu
dHJ5KTsNCiAgICAgZHB1dChkZW50cnkpOw0KIH0NCkBAIC0xNzksOSArMTg1
LDE1IEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGUoc3RydWN0IG5ucGZz
ICoNCiAgICAgYWxpYXMgPSBkaS0+aV9kZW50cnkubmV4dDsNCiAgICAgd2hp
bGUgKGFsaWFzICE9ICZkaS0+aV9kZW50cnkpIHsNCiAJcGFyZW50ID0gbGlz
dF9lbnRyeShhbGlhcywgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQotCXNw
aW5fbG9jaygmZGNhY2hlX2xvY2spOw0KLQlkZ2V0X2xvY2tlZChwYXJlbnQp
Ow0KLQlzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNpZiAoTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KSkNCisgICAg
c3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQorICAgIGRnZXRfbG9ja2VkKHBh
cmVudCk7DQorICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vs
c2UNCisgICAgc3Bpbl9sb2NrKCZwYXJlbnQtPmRfbG9jayk7DQorICAgIGRn
ZXRfZGxvY2socGFyZW50KTsNCisgICAgc3Bpbl91bmxvY2soJnBhcmVudC0+
ZF9sb2NrKTsNCisjZW5kaWYNCiAJZGVudHJ5ID0gZF9sb29rdXAocGFyZW50
LCAmc3FzdHIpOw0KIAlOTlBGU0RFQihYREVCTVNHLA0KIAkJICgibm5wZnNf
bWVzc2FnZV9pbnN0YWxsbm9kZTogYWxpYXMgJXAsIGxvb2t1cCAlcFxuIiwN
CkBAIC0zOTksNyArNDExLDEyIEBAIGNsZWFyX2FsbF9jaGlsZHJlbiAoc3Ry
dWN0IGlub2RlICppbm9kZSwNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqYWxp
YXM7DQogDQogIGFnYWluOg0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMiw2LDM4KSkNCiAgICAgc3Bpbl9sb2NrKCZkY2Fj
aGVfbG9jayk7DQorI2Vsc2UNCisgICAgLyogVE9ETzogZmluZCB0aGUgZGVu
dHJ5IHRvIGxvY2sgKi8NCisgICAgLypzcGluX2xvY2soJmRlbnRyeS0+ZF9s
b2NrKTsqLw0KKyNlbmRpZg0KICAgICBhbGlhcyA9IGlub2RlLT5pX2RlbnRy
eS5uZXh0Ow0KICAgICB3aGlsZSAoYWxpYXMgIT0gJmlub2RlLT5pX2RlbnRy
eSkgew0KIAlzdHJ1Y3QgZGVudHJ5ICpkZW50cnk7DQpAQCAtNDQyLDE0ICs0
NTksMjQgQEAgY2xlYXJfYWxsX2NoaWxkcmVuIChzdHJ1Y3QgaW5vZGUgKmlu
b2RlLA0KIA0KIAkgICAgLyogVGhyb3cgaW1tZWRpYXRlbHkgKi8NCiAJICAg
IGlmIChubnBmc19kY291bnQoY2hpbGQpID09IDApIHsNCisjaWYgKExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkpDQogCSAg
ICAgICAgc3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKwkJ
LyogVE9ETzogdW5sb2NrIHRoZSBkZW50cnkgKi8NCisJCS8qc3Bpbl91bmxv
Y2soJmRlbnRyeS0+ZF9sb2NrKTsqLw0KKyNlbmRpZg0KIAkJbm5wZnNfZF9y
ZW1vdmUoY2hpbGQpOw0KIAkJZ290byBhZ2FpbjsNCiAJICAgIH0NCiAJfQ0K
IAlhbGlhcyA9IGFsaWFzLT5uZXh0Ow0KICAgICB9DQorI2lmIChMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpKQ0KICAgICBz
cGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorICAgIC8qIFRP
RE86IHVubG9jayB0aGUgZGVudHJ5ICovDQorICAgIC8qc3Bpbl91bmxvY2so
JmRlbnRyeS0+ZF9sb2NrKTsqLw0KKyNlbmRpZg0KIH0NCiANCiBzdGF0aWMg
dm9pZA0KQEAgLTYwNSwxMiArNjMyLDEwIEBAIGdjX2Jsb2NrKHN0cnVjdCBu
bnBmcyAqbm5wZnNwLA0KICAgICB9DQogDQogICAgIGlmICghbm5wZnNfYmxv
Y2tfaGF2ZV9wKHhuLCBvZmZzZXQpKSB7DQotI2lmIDAgICAvKiBoYXBwZW5z
IHdoZW4gZGFlbW9uIHNlbmRzIHNldmVyYWwgbWVzc2FnZXMgZm9yIHNhbWUg
YmxvY2sgKi8NCiAJcHJpbnRrKEtFUk5fRU1FUkcgIk5OUEZTL2djX2Jsb2Nr
OiAiDQogCSAgICAgICAiRU5PRU5UICglZCwlZCwlZCwlZCkgMHglbGx4XG4i
LCANCiAJICAgICAgIHhuLT5oYW5kbGUuYSwgeG4tPmhhbmRsZS5iLCB4bi0+
aGFuZGxlLmMsIHhuLT5oYW5kbGUuZCwgDQogCSAgICAgICAodW5zaWduZWQg
bG9uZyBsb25nKW9mZnNldCk7DQotI2VuZGlmDQogCXJldHVybiAtRU5PRU5U
Ow0KICAgICB9DQogDQpAQCAtNzI2LDcgKzc1MSwxMSBAQCBubnBmc19tZXNz
YWdlX3ZlcnNpb24oc3RydWN0IG5ucGZzICpubnBmDQogDQogCXVpbnQ2NF90
IGJsb2Nrc2l6ZSA9IG1lc3NhZ2UtPmJsb2Nrc2l6ZTsNCiANCisjaWYgKExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkpDQog
CWVycm9yID0gcGF0aF9sb29rdXAoIi4iLCAwLCAmbmQpOw0KKyNlbHNlDQor
CWVycm9yID0ga2Vybl9wYXRoKCIuIiwgMCwgJm5kLnBhdGgpOw0KKyNlbmRp
Zg0KIAlpZiAoZXJyb3IpIHsNCiAJICAgIC8qDQogCSAgICAgKiBCYWQgY2Fj
aGUgcm9vdCwganVzdCByZXR1cm4uDQpAQCAtNzM3LDEyICs3NjYsMTYgQEAg
bm5wZnNfbWVzc2FnZV92ZXJzaW9uKHN0cnVjdCBubnBmcyAqbm5wZg0KIAkJ
ICAgIm5ucGZzX21lc3NhZ2VfdmVyc2lvbiBmYWlsZWQgcGF0aF9sb29rdXAs
ICINCiAJCSAgICJlcnJubzogJWRcbiIsIGVycm9yKTsNCiAJfSBlbHNlIHsN
Ci0JICAgIG5ucGZzcC0+Y2FjaGVyb290ID0gbW50Z2V0KG5kLm1udCk7DQot
CSAgICBubnBmc3AtPmNhY2hlZGlyID0gZGdldChuZC5kZW50cnkpOw0KLQkg
ICAgcGF0aF9yZWxlYXNlKCZuZCk7DQotCSAgICANCisJICAgIG5ucGZzcC0+
Y2FjaGVyb290ID0gbW50Z2V0KG5kLnBhdGgubW50KTsNCisJICAgIG5ucGZz
cC0+Y2FjaGVkaXIgPSBkZ2V0KG5kLnBhdGguZGVudHJ5KTsNCisJICAgIHBh
dGhfcHV0KCZuZC5wYXRoKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9
IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJICAgIG5ucGZzcC0+dWlkID0g
Y3VycmVudC0+ZnN1aWQ7DQogCSAgICBubnBmc3AtPmdpZCA9IGN1cnJlbnQt
PmZzZ2lkOw0KKyNlbHNlDQorICAgICAgICAgICAgbm5wZnNwLT51aWQgPSBj
dXJyZW50X2ZzdWlkKCk7DQorICAgICAgICAgICAgbm5wZnNwLT5naWQgPSBj
dXJyZW50X2ZzZ2lkKCk7DQorI2VuZGlmDQogDQogCSAgICAvKiBYWFggd2Ug
c2hvdWxkIHZhbGlkYXRlIHRoZXNlIHZhbHVlcyAqLw0KIAkgICAgbm5wZnNf
YmxvY2tzaXplID0gYmxvY2tzaXplOw0KZGlmZiAtdXByTiAtWG5vZGlmZi50
eHQgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX25vZGUuYyBhcmxhLWZv
ci1saW51eC0zLjUvbm5wZnMvbGludXgvbm5wZnNfbm9kZS5jDQotLS0gYXJs
YS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX25vZGUuYwkyMDA3LTAxLTAzIDE0
OjUyOjAyLjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtZm9yLWxpbnV4LTMu
NS9ubnBmcy9saW51eC9ubnBmc19ub2RlLmMJMjAxNi0wMS0xMSAwMToxMzox
Ny40Nzk3MTkyNTYgKzAxMDANCkBAIC0xNTIsNyArMTUyLDExIEBAIG5ucGZz
X2F0dHIyaW5vZGUoY29uc3Qgc3RydWN0IG5ucGZzX2F0dHINCiAJaW5vZGUt
PmlfbW9kZSAgID0gMDsNCiAJaW5vZGUtPmlfdWlkICAgID0gMDsNCiAJaW5v
ZGUtPmlfZ2lkICAgID0gMDsNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMiwwKSkNCiAJaW5vZGUtPmlfbmxpbmsgID0g
MTsNCisjZWxzZQ0KKwlzZXRfbmxpbmsoaW5vZGUsIDEpOw0KKyNlbmRpZg0K
IAlpbm9kZS0+aV9hdGltZSAgPSBub3RpbWU7DQogCWlub2RlLT5pX210aW1l
ICA9IG5vdGltZTsNCiAJaW5vZGUtPmlfY3RpbWUgID0gbm90aW1lOw0KQEAg
LTE2OSw3ICsxNzMsMTEgQEAgbm5wZnNfYXR0cjJpbm9kZShjb25zdCBzdHJ1
Y3Qgbm5wZnNfYXR0cg0KICAgICBpZiAoWEFfVkFMSURfR0lEKGF0dHIpKQ0K
IAlpbm9kZS0+aV9naWQgICAgPSBhdHRyLT54YV9naWQ7DQogICAgIGlmIChY
QV9WQUxJRF9OTElOSyhhdHRyKSkNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMiwwKSkNCiAJaW5vZGUtPmlfbmxpbmsg
ID0gYXR0ci0+eGFfbmxpbms7DQorI2Vsc2UNCisJc2V0X25saW5rKGlub2Rl
LCBhdHRyLT54YV9ubGluayk7DQorI2VuZGlmDQogICAgIA0KICAgICBpZiAo
WEFfVkFMSURfU0laRShhdHRyKSkgew0KIAlubnBmc19zZXRzaXplKGlub2Rl
LCBhdHRyLT54YV9zaXplKTsNCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFy
bGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy5jIGFybGEtZm9y
LWxpbnV4LTMuNS9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy5jDQotLS0g
YXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMJMjAwNy0w
MS0wMyAxNToyNjoyNy4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLWZvci1s
aW51eC0zLjUvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMuYwkyMDE2LTAx
LTEwIDIxOjUyOjQ3LjM3MTEzNDA1NiArMDEwMA0KQEAgLTQyLDcgKzQyLDkg
QEANCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfc3lzY2FsbHMuaD4NCiAjaW5j
bHVkZSA8bm5wZnMvbm5wZnNfY29tbW9uLmg+DQogI2luY2x1ZGUgPGxpbnV4
L2ZpbGUuaD4NCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDIsNiwzOSkpDQogI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+
DQorI2VuZGlmDQogI2luY2x1ZGUgPGxpbnV4L3NtcC5oPg0KICNpbmNsdWRl
IDxsaW51eC9wcm9jX2ZzLmg+DQogDQpAQCAtNjQsNyArNjYsNyBAQA0KICN1
bmRlZiBORUVEX1ZJQ0VJT0NUTDMyDQogDQogI2lmZGVmIFJDU0lEDQotUkNT
SUQoIiRJZDogbm5wZnNfc3lzY2FsbHMuYyx2IDEuMTIyIDIwMDcvMDEvMDMg
MTQ6MjY6MjcgdG9sIEV4cCAkIik7DQorUkNTSUQoIiRJZDogbm5wZnNfc3lz
Y2FsbHMuYyx2IDEuMTI1IDIwMTAvMDgvMDggMjA6NDM6MDYgdG9sIEV4cCAk
Iik7DQogI2VuZGlmDQogDQogc3RhdGljIHN0cnVjdCBwcm9jX2Rpcl9lbnRy
eSAqbm5wZnNfcHJvY2ZzX2RpcjsNCkBAIC04MiwxMiArODQsMjIgQEAgdHlw
ZWRlZiBzdHJ1Y3QgYWZzcHJvY2RhdGEgew0KICAgICB1bnNpZ25lZCBsb25n
IHN5c2NhbGw7DQogfSBhZnNwcm9jZGF0YTsNCiANCisjaWYgKExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikpDQogc3RhdGlj
IGludA0KIG5ucGZzX3Byb2Nmc19pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2Rl
LCBzdHJ1Y3QgZmlsZSAqZmlsZSwNCiAJCSAgIHVuc2lnbmVkIGludCBjbWQs
IHVuc2lnbmVkIGxvbmcgYXJnKTsNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQor
bm5wZnNfcHJvY2ZzX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0KKwkJICAg
dW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOw0KKyNlbmRp
Zg0KIA0KIHN0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX3By
b2Nmc19mb3BzID0gew0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMiw2LDM2KSkNCiAgICAgLmlvY3RsID0gbm5wZnNfcHJv
Y2ZzX2lvY3RsLA0KKyNlbHNlDQorICAgIC51bmxvY2tlZF9pb2N0bCA9IG5u
cGZzX3Byb2Nmc19pb2N0bCwNCisjZW5kaWYNCiB9Ow0KIA0KIA0KQEAgLTE0
Nyw1MyArMTU5LDQ2IEBAIHN0YXRpYyBpbnQgbm5wZnNfc2VjX3JlZ2lzdGVy
ZWQgPSAwOw0KICNkZWZpbmUgU0VDMlBBRyhzKSAobm5wZnNfcGFnX3QpKHVu
c2lnbmVkIGxvbmcpKHMpDQogI2RlZmluZSBQQUcyU0VDKHApICh2b2lkICop
KHVuc2lnbmVkIGxvbmcpKHApDQogDQotc3RhdGljIGludA0KLW5ucGZzX3Nl
Y190YXNrX2FsbG9jKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkNCi17DQotICAg
IG5ucGZzX3BhZ190IHBhZyA9IFNFQzJQQUcoY3VycmVudC0+c2VjdXJpdHkp
Ow0KLSAgICBpZiAocGFnKQ0KLQlwLT5zZWN1cml0eSA9IFBBRzJTRUMocGFn
KTsNCi0gICAgcmV0dXJuIDA7DQotfQ0KLQ0KLXN0YXRpYyB2b2lkDQotbm5w
ZnNfc2VjX3Rhc2tfZnJlZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApDQotew0K
LSAgICBubnBmc19wYWdfdCBwYWcgPSBTRUMyUEFHKHAtPnNlY3VyaXR5KTsN
Ci0gICAgaWYgKHBhZykNCi0JcC0+c2VjdXJpdHkgPSBOVUxMOw0KLX0NCi0N
CiBzdGF0aWMgbm5wZnNfcGFnX3QNCiBubnBmc19nZXRfcGFnX3NlYyh2b2lk
KQ0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJT
SU9OKDIsNiwyOCkNCiAgICAgbm5wZnNfcGFnX3QgcGFnID0gU0VDMlBBRyhj
dXJyZW50LT5zZWN1cml0eSk7DQorI2Vsc2UNCisgICAgbm5wZnNfcGFnX3Qg
cGFnID0gU0VDMlBBRyhjdXJyZW50X3NlY3VyaXR5KCkpOw0KKyNlbmRpZg0K
ICAgICBpZiAocGFnKQ0KIAlyZXR1cm4gcGFnOw0KIA0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBy
ZXR1cm4gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgIHJldHVybiBjdXJy
ZW50X3VpZCgpOw0KKyNlbmRpZg0KIH0NCiANCiBzdGF0aWMgaW50DQogbm5w
ZnNfc2V0X3BhZ19zZWModm9pZCkNCiB7DQogICAgIHN0YXRpYyBubnBmc19w
YWdfdCBwYWdudW0gPSBOTlBGU19QQUdfTExJTTsNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOSkNCisgICAgc3Ry
dWN0IGNyZWQgKmNyZWQ7DQorI2VuZGlmDQogDQogICAgIGlmIChwYWdudW0g
PT0gTk5QRlNfUEFHX1VMSU0pDQogCXJldHVybiAtRU5PTUVNOw0KICAgICAv
KiBwYWdudW0gPSBOTlBGU19QQUdfTExJTTsgKi8NCiAgICAgDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQog
ICAgIGN1cnJlbnQtPnNlY3VyaXR5ID0gUEFHMlNFQyhwYWdudW0pOw0KKyNl
bHNlDQorICAgIGNyZWQgPSAoc3RydWN0IGNyZWQgKikgY3VycmVudC0+Y3Jl
ZDsNCisgICAgY3JlZC0+c2VjdXJpdHkgPSBQQUcyU0VDKHBhZ251bSk7DQor
I2VuZGlmDQogICAgIHBhZ251bSsrOw0KICAgICByZXR1cm4gMDsNCiB9DQog
DQotc3RhdGljIHN0cnVjdCBzZWN1cml0eV9vcGVyYXRpb25zIG5ucGZzX3Nl
Y19vcHMgPSB7DQotICAgIC50YXNrX2FsbG9jX3NlY3VyaXR5ID0gbm5wZnNf
c2VjX3Rhc2tfYWxsb2MsDQotICAgIC50YXNrX2ZyZWVfc2VjdXJpdHkgPSBu
bnBmc19zZWNfdGFza19mcmVlLA0KLS8vICAgIC50YXNrX3JlcGFyZW50X3Rv
X2luaXQgPSBubnBmc19zZWNfcmVwYXJlbnRfdG9faW5pdCwNCi19Ow0KLQ0K
ICNlbmRpZiAvKiBDT05GSUdfU0VDVVJJVFkgKi8NCiANCiAjaWZkZWYgR1JP
VVBQQUdTDQpAQCAtMjIyLDExICsyMjcsMTggQEAgZmluZF9wYWcoc3RydWN0
IGdyb3VwX2luZm8gKmdpKQ0KIHN0YXRpYyBubnBmc19wYWdfdA0KIG5ucGZz
X2dldF9wYWdfZ3JvdXAodm9pZCkNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIHN0cnVjdCBn
cm91cF9pbmZvICpnaSA9IGN1cnJlbnQtPmdyb3VwX2luZm87DQogICAgIG5u
cGZzX3BhZ190IHJldCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBz
dHJ1Y3QgZ3JvdXBfaW5mbyAqZ2kgPSBnZXRfY3VycmVudF9ncm91cHMoKTsN
CisgICAgbm5wZnNfcGFnX3QgcmV0ID0gY3VycmVudF91aWQoKTsNCisjZW5k
aWYNCiAgICAgaW50IGk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIGdldF9ncm91cF9pbmZv
KGdpKTsNCisjZW5kaWYNCiANCiAgICAgaSA9IGZpbmRfcGFnKGdpKTsNCiAg
ICAgaWYgKGkgIT0gTk5QRlNfUEFHX05PVEZPVU5EKQ0KQEAgLTI0MiwxMyAr
MjU0LDE5IEBAIG5ucGZzX2dldF9wYWdfZ3JvdXAodm9pZCkNCiBzdGF0aWMg
aW50DQogc3RvcmVfcGFnKG5ucGZzX3BhZ190IHBhZ251bSkNCiB7DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgp
DQogICAgIHN0cnVjdCBncm91cF9pbmZvICpvbGRfZ2kgPSBjdXJyZW50LT5n
cm91cF9pbmZvOw0KKyNlbHNlDQorICAgc3RydWN0IGdyb3VwX2luZm8gKm9s
ZF9naSA9IGdldF9jdXJyZW50X2dyb3VwcygpOw0KKyNlbmRpZg0KICAgICBz
dHJ1Y3QgZ3JvdXBfaW5mbyAqbmV3X2dpOw0KLSAgICBpbnQgbmJsb2Nrcywg
Y291bnQ7DQorICAgIHVuc2lnbmVkIGludCBuYmxvY2tzLCBjb3VudDsNCiAg
ICAgaW50IGZvdW5kID0gMDsNCiAgICAgaW50IGksIGs7DQogICAgIA0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4
KSAgICANCiAgICAgZ2V0X2dyb3VwX2luZm8ob2xkX2dpKTsNCisjZW5kaWYN
CiANCiAgICAgaSA9IGZpbmRfcGFnKG9sZF9naSk7DQogICAgIGlmIChpICE9
IE5OUEZTX1BBR19OT1RGT1VORCkNCkBAIC0zMTcsNyArMzM1LDExIEBAIG5u
cGZzX2dldF9wYWcoKQ0KICAgICByZXR1cm4gbm5wZnNfZ2V0X3BhZ19ncm91
cCgpOw0KICNlbmRpZiAvKiBHUk9VUFBBR1MgKi8NCiANCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAg
cmV0dXJuIGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICByZXR1cm4gY3Vy
cmVudF91aWQoKTsNCisjZW5kaWYNCiB9DQogDQogc3RhdGljIGlubGluZSBp
bnQNCkBAIC00MjIsNyArNDQ0LDcgQEAgbm5wZnNfc2V0Z3JvdXBzMTYgKGlu
dCBnaWRzZXRzaXplLCBvbGRfZw0KICNlbmRpZiAvKiBTWVNDQUxMSEFDSyAq
Lw0KICNlbmRpZiAvKiBHUk9VUFBBR1MgKi8NCiANCi1zdHJ1Y3QgZmlsZV9o
YW5kbGUgew0KK3N0cnVjdCBubnBmc19maWxlX2hhbmRsZSB7DQogICAgIG5u
cGZzX2Rldl90IGRldjsNCiAgICAgaW5vX3QgaW5vZGU7DQogICAgIF9fdTMy
IGdlbjsNCkBAIC01MjQsMTEgKzU0NiwxNSBAQCB1c2VyX3BhdGgyZGVudHJ5
IChzdHJ1Y3QgbmFtZWlkYXRhICpuZCwNCiANCiAgICAgTk5QRlNERUIoWERF
Qk1TRywgKCJubnBmc19zeXNjYWxsOiBsb29raW5nIHVwOiAlc1xuIiwga25h
bWUpKTsNCiANCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDIsNiwzOSkpDQogICAgIGVycm9yID0gcGF0aF9sb29rdXAoa25h
bWUsIGZsYWdzLCBuZCk7DQorI2Vsc2UNCisgICAgZXJyb3IgPSBrZXJuX3Bh
dGgoa25hbWUsIGZsYWdzLCAmKG5kLT5wYXRoKSk7DQorI2VuZGlmDQogICAg
IHB1dG5hbWUoa25hbWUpOw0KICAgICBpZiAoZXJyb3IpDQogCXJldHVybiBF
UlJfUFRSKGVycm9yKTsNCi0gICAgcmV0dXJuIG5kLT5kZW50cnk7DQorICAg
IHJldHVybiBuZC0+cGF0aC5kZW50cnk7DQogfQ0KIA0KIGFzbWxpbmthZ2Ug
bG9uZw0KQEAgLTU0MCwxMiArNTY2LDIwIEBAIHN5c19hZnNfaW50IChpbnQg
b3BlcmF0aW9uLA0KIHsNCiAgICAgbG9uZyBlcnJvciA9IDA7DQogICAgIHN0
cnVjdCBhcmxhVmljZUlvY3RsIHZpY2VfaW9jdGw7IA0KLSAgICBzdHJ1Y3Qg
bm5wZnNfbWVzc2FnZV9waW9jdGwgbXNnOw0KKyAgICBzdHJ1Y3Qgbm5wZnNf
bWVzc2FnZV9waW9jdGwgKm1zZyA9IE5VTEw7DQogICAgIHN0cnVjdCBubnBm
c19tZXNzYWdlX3dha2V1cCAqbXNnMjsNCiAgICAgc3RydWN0IGRlbnRyeSAq
ZGVudHJ5ID0gTlVMTDsNCiAgICAgc3RydWN0IG5hbWVpZGF0YSBuZDsNCiAg
ICAgDQorICAgIG1zZyA9IGttYWxsb2Moc2l6ZW9mKCptc2cpLCBHRlBfS0VS
TkVMKTsNCisgICAgaWYgKG1zZyA9PSBOVUxMKQ0KKyAgICAgIHJldHVybiAt
RU5PTUVNOw0KKw0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMiw2LDM5KSkNCiAgICAgbG9ja19rZXJuZWwoKTsNCisjZWxz
ZQ0KKyAgICAvKiBUT0RPOiBsb2NrIHNvbWV0aGluZyAqLw0KKyNlbmRpZg0K
IA0KICAgICBOTlBGU0RFQihYREVCU1lTLCAoInN5c19hZnMga2VybmVsIGxv
Y2tlZFxuIikpOw0KIA0KQEAgLTU3NSw3ICs2MDksNyBAQCBzeXNfYWZzX2lu
dCAoaW50IG9wZXJhdGlvbiwNCiAJICAgIGdvdG8gdW5sb2NrOw0KIAl9DQog
CWlmICh2aWNlX2lvY3RsLmluX3NpemUgIT0gMCkgew0KLQkgICAgaWYoY29w
eV9mcm9tX3VzZXIoJm1zZy5tc2csDQorCSAgICBpZihjb3B5X2Zyb21fdXNl
cigmbXNnLT5tc2csDQogCQkJICAgICAgdmljZV9pb2N0bC5pbiwNCiAJCQkg
ICAgICB2aWNlX2lvY3RsLmluX3NpemUpICE9IDApIHsNCiAJCWVycm9yID0g
LUVGQVVMVDsNCkBAIC02MjgsMTkgKzY2MiwyMyBAQCBzeXNfYWZzX2ludCAo
aW50IG9wZXJhdGlvbiwNCiAJCWVycm9yID0gLUVJTlZBTDsNCiAJCWdvdG8g
dW5sb2NrOw0KIAkgICAgfQ0KLQkgICAgbXNnLmhhbmRsZSA9IHhuLT5oYW5k
bGU7DQorCSAgICBtc2ctPmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogCX0NCiAN
Ci0JbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfUElPQ1RMOw0KLQlt
c2cub3Bjb2RlID0gYV9vcGNvZGU7DQorCW1zZy0+aGVhZGVyLm9wY29kZSA9
IE5OUEZTX01TR19QSU9DVEw7DQorCW1zZy0+b3Bjb2RlID0gYV9vcGNvZGU7
DQogCQ0KLQltc2cuaW5zaXplICAgPSB2aWNlX2lvY3RsLmluX3NpemU7DQot
CW1zZy5vdXRzaXplICA9IHZpY2VfaW9jdGwub3V0X3NpemU7DQotCW1zZy5j
cmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCi0JbXNnLmNyZWQucGFnID0gbm5w
ZnNfZ2V0X3BhZygpOw0KKwltc2ctPmluc2l6ZSAgID0gdmljZV9pb2N0bC5p
bl9zaXplOw0KKwltc2ctPm91dHNpemUgID0gdmljZV9pb2N0bC5vdXRfc2l6
ZTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9O
KDIsNiwyOCkNCisJbXNnLT5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisj
ZWxzZQ0KKyAgICAgICAgbXNnLT5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7
DQorI2VuZGlmDQorCW1zZy0+Y3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7
DQogCQ0KLQllcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKCZubnBmc1swXSwg
Jm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsgLyogWFhYICovDQotCW1zZzIg
PSAoc3RydWN0IG5ucGZzX21lc3NhZ2Vfd2FrZXVwICopICZtc2c7DQorCWVy
cm9yID0gbm5wZnNfbWVzc2FnZV9ycGMoJm5ucGZzWzBdLCAmbXNnLT5oZWFk
ZXIsIHNpemVvZigqbXNnKSk7IC8qIFhYWCAqLw0KKwltc2cyID0gKHN0cnVj
dCBubnBmc19tZXNzYWdlX3dha2V1cCAqKSBtc2c7DQogCWlmIChlcnJvciA9
PSAwKQ0KIAkgICAgZXJyb3IgPSBtc2cyLT5lcnJvcjsNCiANCkBAIC02NzUs
MTIgKzcxMywxNyBAQCBzeXNfYWZzX2ludCAoaW50IG9wZXJhdGlvbiwNCiAg
ICAgDQogIHVubG9jazoNCiAgICAgaWYgKGRlbnRyeSkNCi0JcGF0aF9yZWxl
YXNlKCZuZCk7DQorCXBhdGhfcHV0KCZuZC5wYXRoKTsNCiANCiAgICAgTk5Q
RlNERUIoWERFQlNZUywgKCJubnBmc19zeXNjYWxsIHJldHVybnMgZXJyb3I6
ICVsZFxuIiwgZXJyb3IpKTsNCiANCiAgICAgTk5QRlNERUIoWERFQlNZUywg
KCJzeXNfYWZzIGtlcm5lbCB1bmxvY2tcbiIpKTsNCisgICAga2ZyZWUobXNn
KTsNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDIsNiwzOSkpDQogICAgIHVubG9ja19rZXJuZWwoKTsNCisjZWxzZQ0KKyAg
ICAvKiBUT0RPOiB1bmxvY2sgdGhlIHRoaW5nIGxvY2tlZCBhYm92ZSAqLw0K
KyNlbmRpZg0KIA0KICAgICByZXR1cm4gZXJyb3I7DQogfQ0KQEAgLTcyOSw5
ICs3NzIsMTUgQEAgc3lzX2FmcyAoaW50IG9wZXJhdGlvbiwNCiAJCSAgICAg
ICBhX2ZvbGxvd1N5bWxpbmtzKTsNCiB9DQogDQorI2lmIChMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpKQ0KIHN0YXRpYyBp
bnQNCiBubnBmc19wcm9jZnNfaW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwg
c3RydWN0IGZpbGUgKmZpbGUsDQogCQkgICB1bnNpZ25lZCBpbnQgY21kLCB1
bnNpZ25lZCBsb25nIGFyZykNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5w
ZnNfcHJvY2ZzX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0KKwkJICAgdW5z
aWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQorI2VuZGlmDQog
ew0KICAgICBhZnNwcm9jZGF0YSBhcmdzOw0KICAgICBsb25nIHJldDsNCkBA
IC03ODAsMjAgKzgyOSwyNCBAQCBzdGF0aWMgaW50IG5ucGZzX2luaXRfcHJv
Y2ZzKHZvaWQpDQogew0KICAgICBzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKmVu
dHJ5Ow0KICAgICANCi0gICAgbm5wZnNfcHJvY2ZzX2RpciA9IHByb2NfbWtk
aXIoTk5QRlNfUFJPQ19ESVIsIHByb2Nfcm9vdF9mcyk7DQorICAgIG5ucGZz
X3Byb2Nmc19kaXIgPSBwcm9jX21rZGlyKCJmcy8iIE5OUEZTX1BST0NfRElS
LCBOVUxMKTsNCiAgICAgaWYgKG5ucGZzX3Byb2Nmc19kaXIgPT0gTlVMTCkN
CiAJcmV0dXJuIC1FTk9NRU07DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzApDQogICAgIG5ucGZzX3By
b2Nmc19kaXItPm93bmVyID0gVEhJU19NT0RVTEU7DQorI2VuZGlmDQogICAg
IA0KICAgICBlbnRyeSA9IGNyZWF0ZV9wcm9jX2VudHJ5KE5OUEZTX1BST0Nf
Tk9ERSwgMDY2Niwgbm5wZnNfcHJvY2ZzX2Rpcik7DQogICAgIGlmIChlbnRy
eSA9PSBOVUxMKSB7DQogCU5OUEZTREVCKFhERUJTWVMsICgibm5wZnNfaW5p
dF9wcm9jZnM6IG5vIG5vZGVcbiIpKTsNCi0JcmVtb3ZlX3Byb2NfZW50cnko
Tk5QRlNfUFJPQ19ESVIsIHByb2Nfcm9vdF9mcyk7DQorCXJlbW92ZV9wcm9j
X2VudHJ5KCJmcy8iIE5OUEZTX1BST0NfRElSLCBOVUxMKTsNCiAJcmV0dXJu
IC1FTk9NRU07DQogICAgIH0NCiAgICAgDQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzMCkNCiAgICAgZW50cnktPm93
bmVyID0gVEhJU19NT0RVTEU7DQorI2VuZGlmDQogICAgIGVudHJ5LT5wcm9j
X2ZvcHMgPSAmbm5wZnNfcHJvY2ZzX2ZvcHM7DQogDQogI2lmZGVmIFNZU0NB
TExDT01QQVQNCkBAIC04MTUsNyArODY4LDcgQEAgc3RhdGljIHZvaWQgbm5w
ZnNfZXhpdF9wcm9jZnModm9pZCkNCiAgICAgfQ0KICNlbmRpZiAvKiBTWVND
QUxMQ09NUEFUICovDQogICAgIHJlbW92ZV9wcm9jX2VudHJ5KE5OUEZTX1BS
T0NfTk9ERSwgbm5wZnNfcHJvY2ZzX2Rpcik7DQotICAgIHJlbW92ZV9wcm9j
X2VudHJ5KE5OUEZTX1BST0NfRElSLCBwcm9jX3Jvb3RfZnMpOw0KKyAgICBy
ZW1vdmVfcHJvY19lbnRyeSgiZnMvIiBOTlBGU19QUk9DX0RJUiwgTlVMTCk7
DQogfQ0KIA0KICNpZmRlZiBHUk9VUFBBR1MNCkBAIC04MzksMTQgKzg5Miw2
IEBAIGluc3RhbGxfc2V0Z3JvdXBzKHZvaWQpDQogdm9pZA0KIGluc3RhbGxf
YWZzX3N5c2NhbGwodm9pZCkNCiB7DQotI2lmZGVmIENPTkZJR19TRUNVUklU
WQ0KLSAgICBpZiAocmVnaXN0ZXJfc2VjdXJpdHkoJm5ucGZzX3NlY19vcHMp
KQ0KLQlOTlBGU0RFQihYREVCU1lTLA0KLQkJICgiaW5zdGFsbF9hZnNfc3lz
Y2FsbDogbm5wZnNfaW5pdF9zZWMgZmFpbGVkXG4iKSk7DQotICAgIGVsc2UN
Ci0Jbm5wZnNfc2VjX3JlZ2lzdGVyZWQgPSAxOw0KLSNlbmRpZg0KLQ0KICAg
ICBubnBmc19pbml0X3Byb2NmcygpOw0KIA0KICNpZmRlZiBTWVNDQUxMSEFD
Sw0KQEAgLTg4NywxMiArOTMyLDYgQEAgcmVzdG9yZV9hZnNfc3lzY2FsbCAo
dm9pZCkNCiAjZW5kaWYNCiAjZW5kaWYgLyogU1lTQ0FMTEhBQ0sgKi8NCiAN
Ci0jaWZkZWYgQ09ORklHX1NFQ1VSSVRZDQotICAgIGlmIChubnBmc19zZWNf
cmVnaXN0ZXJlZCkNCi0JaWYgKHVucmVnaXN0ZXJfc2VjdXJpdHkoJm5ucGZz
X3NlY19vcHMpKQ0KLQkgICAgcHJpbnRrKEtFUk5fRU1FUkcgIm5ucGZzX2V4
aXRfc2VjOiBjb3VsZG4ndCB1bnJlZ2lzdGVyXG4iKTsNCi0jZW5kaWYgLyog
IUNPTkZJR19TRUNVUklUWSAqLw0KLQ0KICNpZmRlZiBHUk9VUFBBR1MNCiAj
aWZkZWYgU1lTQ0FMTEhBQ0sNCiAgICAgaWYgKG9sZF9zZXRncm91cHMpIHsN
CmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEtMC45MC9ubnBmcy9saW51
eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMgYXJsYS1mb3ItbGludXgtMy41
L25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYw0KLS0tIGFy
bGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMJ
MjAwNi0xMi0xMSAxNzozMTo0NS4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxh
LWZvci1saW51eC0zLjUvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9z
c2FnZS5jCTIwMTAtMDgtMDggMjI6NDM6MDUuMDAwMDAwMDAwICswMjAwDQpA
QCAtNDcsNyArNDcsNyBAQA0KICNpbmNsdWRlIDxsaW51eC91bmlzdGQuaD4N
CiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgiJElkOiBubnBmc19zeXNjYWxs
cy1sb3NzYWdlLmMsdiAxLjE3IDIwMDYvMTIvMTEgMTY6MzE6NDUgdG9sIEV4
cCAkIik7DQorUkNTSUQoIiRJZDogbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5j
LHYgMS4xOSAyMDEwLzA4LzA4IDIwOjQzOjA1IHRvbCBFeHAgJCIpOw0KICNl
bmRpZg0KIA0KICNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5oPg0KQEAgLTYz
LDYgKzYzLDkgQEAgY29uc3QgY2hhciAqIF9fYXR0cmlidXRlX18oKHdlYWsp
KQ0KIAkJICAgIHVuc2lnbmVkIGxvbmcgKm9mZnNldCwNCiAJCSAgICBjaGFy
ICoqbW9kbmFtZSwgY2hhciAqbmFtZWJ1Zik7DQogDQorI2lmZGVmIF9feDg2
XzY0X18NCitleHRlcm4gcndsb2NrX3QgdGFza2xpc3RfbG9jayBfX2F0dHJp
YnV0ZV9fKCh3ZWFrKSk7DQorI2VuZGlmDQogc3RhdGljIHZvaWQgKioNCiBn
ZXRfc3RhcnRfYWRkcih2b2lkKSB7DQogI2lmZGVmIF9feDg2XzY0X18NCmRp
ZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEtMC45MC9ubnBmcy9saW51eC9u
bnBmc192ZnNvcHMuYyBhcmxhLWZvci1saW51eC0zLjUvbm5wZnMvbGludXgv
bm5wZnNfdmZzb3BzLmMNCi0tLSBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5w
ZnNfdmZzb3BzLmMJMjAwNi0xMi0xMSAxNzo0MzozNS4wMDAwMDAwMDAgKzAx
MDANCisrKyBhcmxhLWZvci1saW51eC0zLjUvbm5wZnMvbGludXgvbm5wZnNf
dmZzb3BzLmMJMjAxNi0wMS0xMSAwMTo0NjowMC45MTE4MTQ3NjcgKzAxMDAN
CkBAIC00NCwyNSArNDQsMTcgQEANCiAjaW5jbHVkZSA8bGludXgvbW0uaD4N
CiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgiJElkOiBubnBmc192ZnNvcHMu
Yyx2IDEuMTA5IDIwMDYvMTIvMTEgMTY6NDM6MzUgdG9sIEV4cCAkIik7DQor
UkNTSUQoIiRJZDogbm5wZnNfdmZzb3BzLmMsdiAxLjExMSAyMDEwLzA4LzA4
IDIwOjQzOjA2IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0KIA0KIHN0cnVjdCBu
bnBmcyBubnBmc1tOTk5QRlNdOw0KIA0KLXN0YXRpYyB2b2lkIG5ucGZzX3Jl
YWRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSk7DQogc3RhdGljIHZvaWQg
bm5wZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOw0KLXN0
YXRpYyB2b2lkIG5ucGZzX3B1dF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2Rl
KTsNCiBzdGF0aWMgdm9pZCBubnBmc193cml0ZV9zdXBlcihzdHJ1Y3Qgc3Vw
ZXJfYmxvY2sgKiBzYik7DQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+
PSBLRVJORUxfVkVSU0lPTigyLDYsMTgpDQogc3RhdGljIGludCBubnBmc19z
dGF0ZnMoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3Qga3N0YXRmcyAq
YnVmKTsNCi0jZWxzZQ0KLXN0YXRpYyBpbnQgbm5wZnNfc3RhdGZzKHN0cnVj
dCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBrc3RhdGZzICpidWYpOw0KLSNl
bmRpZg0KIA0KIHN0YXRpYyBzdHJ1Y3Qgc3VwZXJfb3BlcmF0aW9ucyBubnBm
c19zb3BzID0geyANCi0gICAgcmVhZF9pbm9kZQkJOiBubnBmc19yZWFkX2lu
b2RlLA0KLSAgICBwdXRfaW5vZGUJCTogbm5wZnNfcHV0X2lub2RlLA0KICAg
ICBhbGxvY19pbm9kZQkJOiBubnBmc19ub2RlX2FsbG9jLA0KICAgICBkZXN0
cm95X2lub2RlCTogbm5wZnNfbm9kZV9mcmVlLA0KICAgICBkcm9wX2lub2Rl
CQk6IGdlbmVyaWNfZGVsZXRlX2lub2RlLA0KQEAgLTE1OSw3ICsxNTEsMTEg
QEAgbWFrZV9yb290IChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQ0KICAgICBu
bnBmcy0+cm9vdCA9IGlub2RlOw0KIA0KICAgICAvKiBYWFggZXJyb3IgaGFu
ZGxpbmcgKi8NCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsNCwwKSkNCiAgICAgZHAgPSBkX2FsbG9jX3Jvb3QoaW5vZGUp
Ow0KKyNlbHNlDQorICAgIGRwID0gZF9tYWtlX3Jvb3QoaW5vZGUpOw0KKyNl
bmRpZg0KICAgICBubnBmc19kX2luaXQoZHApOw0KICAgICBzYi0+c19yb290
ID0gZHA7DQogICAgIHJldHVybiAwOw0KQEAgLTE4NSwxMSArMTgxLDE1IEBA
IG5ucGZzX3JlYWRfc3VwZXIgKHN0cnVjdCBzdXBlcl9ibG9jayAqIHMNCiAg
ICAgaWYgKGRhdGEgIT0gTlVMTCkgew0KIAlzdHJ1Y3QgbmFtZWlkYXRhIG5k
Ow0KIAkNCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDIsNiwzOSkpDQogCWVycm9yID0gcGF0aF9sb29rdXAoZGF0YSwgMCwg
Jm5kKTsNCisjZWxzZQ0KKwllcnJvciA9IGtlcm5fcGF0aChkYXRhLCAwLCAm
bmQucGF0aCk7DQorI2VuZGlmDQogCWlmIChlcnJvcikNCiAJICAgIGRkZXYg
PSBFUlJfUFRSKGVycm9yKTsNCiAJZWxzZQ0KLQkgICAgZGRldiA9IG5kLmRl
bnRyeTsNCisJICAgIGRkZXYgPSBuZC5wYXRoLmRlbnRyeTsNCiANCiAJaWYg
KCFJU19FUlIoZGRldikpIHsNCiAJICAgIG1pbm9yZGV2aWNlID0gTUlOT1Io
ZGRldi0+ZF9pbm9kZS0+aV9yZGV2KTsNCkBAIC0yMzMsNyArMjMzLDcgQEAg
bm5wZnNfZmlsbF9zdXBlciAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYg0KICAg
ICByZXR1cm4gMDsNCiB9DQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+
PSBLRVJORUxfVkVSU0lPTigyLDYsMTgpDQorI2lmIChMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpKQ0KIGludA0KIG5ucGZz
X2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCiAJ
ICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1lLA0KQEAgLTI0
MiwxMSArMjQyLDEyIEBAIG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0
ZW1fdHlwZSAqZnMNCiAgICAgcmV0dXJuIGdldF9zYl9ub2Rldihmc190eXBl
LCBmbGFncywgZGF0YSwgbm5wZnNfZmlsbF9zdXBlciwgbW50KTsNCiB9DQog
I2Vsc2UNCi1zdHJ1Y3Qgc3VwZXJfYmxvY2sgKg0KLW5ucGZzX2dldF9zYiAo
c3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsDQotCSAgICAgIGlu
dCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUsIHZvaWQgKmRhdGEpIA0K
K3N0cnVjdCBkZW50cnkqDQorbm5wZnNfbW91bnQoc3RydWN0IGZpbGVfc3lz
dGVtX3R5cGUgKmZzX3R5cGUsDQorCSAgICAgaW50IGZsYWdzLCBjb25zdCBj
aGFyICpkZXZfbmFtZSwNCisJICAgICB2b2lkICpkYXRhKSANCiB7DQotICAg
IHJldHVybiBnZXRfc2Jfbm9kZXYoZnNfdHlwZSwgZmxhZ3MsIGRhdGEsIG5u
cGZzX2ZpbGxfc3VwZXIpOw0KKyAgICByZXR1cm4gbW91bnRfbm9kZXYoZnNf
dHlwZSwgZmxhZ3MsIGRhdGEsIG5ucGZzX2ZpbGxfc3VwZXIpOw0KIH0NCiAj
ZW5kaWYNCiANCkBAIC0yNzMsNzMgKzI3NCw2IEBAIG5ucGZzX3B1dF9zdXBl
cihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQ0KICAgICBOTlBGU0RFQihYREVC
VkZPUFMsICgibm5wZnNfcHV0X3N1cGVyIGV4aXRpbmdcbiIpKTsNCiB9DQog
DQotc3RhdGljIHZvaWQNCi1ubnBmc19yZWFkX2lub2RlKHN0cnVjdCBpbm9k
ZSAqaW5vZGUpDQotew0KLSAgICBOTlBGU0RFQihYREVCVkZPUFMsKCJubnBm
c19yZWFkX2lub2RlIHN0YXJ0aW5nIGlub2RlOiAlcFxuIixpbm9kZSkpOw0K
LSAgICBOTlBGU0RFQihYREVCVkZPUFMsKCJubnBmc19yZWFkX2lub2RlIGlu
b2RlLT5pX2lubzogJWxkXG4iLGlub2RlLT5pX2lubykpOw0KLSNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMTkpDQotICAg
IGlub2RlLT5pX2Jsa3NpemUgPSAxMDI0Ow0KLSNlbmRpZg0KLSAgICBpbm9k
ZS0+aV9tb2RlID0gMDsNCi0gICAgaW5vZGUtPmlfb3AgPSBOVUxMOw0KLSAg
ICBOTlBGU0RFQihYREVCVkZPUFMsKCJubnBmc19yZWFkX2lub2RlIGV4aXRp
bmdcbiIpKTsNCi19DQotIA0KLS8qDQotICogQ2FsbGVkIHdoZW4gYGlub2Rl
JyBpcyBkZS1yZWZlcmVuY2VkLCBpZSB3aGVuIGlwdXQgaXMgY2FsbGVkLg0K
LSAqLw0KLQ0KLXN0YXRpYyB2b2lkDQotbm5wZnNfcHV0X2lub2RlKHN0cnVj
dCBpbm9kZSAqaW5vZGUpDQotew0KLSAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAq
eG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQotICAgIHN0cnVjdCBubnBm
cyAqbm5wZnNwID0gTk5QRlNfRlJPTV9WTk9ERShpbm9kZSk7DQotICAgIGlu
dCBiYWQ7DQotDQotICAgIE5OUEZTREVCKFhERUJWRk9QUywoIm5ucGZzX3B1
dF9pbm9kZTogaW5vZGU6ICVwIGNvdW50OiAlZCBhbGlhc2VzOiIsDQotCQkJ
aW5vZGUsIG5ucGZzX2ljb3VudChpbm9kZSkpKTsNCi0gICAgbm5wZnNfcHJp
bnRfYWxpYXNlcyhpbm9kZSk7DQotICAgIA0KLSAgICBkb3duKCZubnBmc3At
PmluYWN0aXZlX3NlbSk7DQotDQotICAgIGlmICgobm5wZnNwLT5zdGF0dXMg
JiBOTlBGU19ERVZPUEVOKSA9PSAwKSB7DQotCWlmICghaXNfYmFkX2lub2Rl
KGlub2RlKSkgew0KLQkgICAgaWYgKGlub2RlICE9IG5ucGZzcC0+cm9vdCkg
ew0KLQkJbWFrZV9iYWRfaW5vZGUoaW5vZGUpOw0KLQkJbm5wZnNfaXJlbGUo
aW5vZGUpOyAvKiBzZWUgbm5wZnNfbm9kZV9hZGQoKSAqLw0KLQkgICAgfQ0K
LQkgICAgeG4tPmZsYWdzIHw9IE5OUEZTX1NUQUxFOw0KLQl9DQotCWJhZCA9
IDE7IC8qIG9yIHJvb3QsIHJlYWxseSAqLw0KLSAgICB9IGVsc2Ugew0KLQli
YWQgPSBpc19iYWRfaW5vZGUoaW5vZGUpOw0KLSAgICB9DQotDQotICAgIGlm
ICh4bi0+ZmxhZ3MgJiBOTlBGU19TVEFMRSAmJiAhbm5wZnNfbm9kZV91c2Vy
cyhpbm9kZSkpIHsNCi0JeG4tPmZsYWdzIHw9IE5OUEZTX05PREVfSVBVVDsg
LyogWFhYIGxvY2tpbmcgKi8NCi0gIAlubnBmc19mb3JjZV9pbnZhbGlkX25v
ZGUoeG4pOw0KLQl4bi0+ZmxhZ3MgJj0gfk5OUEZTX05PREVfSVBVVDsNCi0g
ICAgfQ0KLSAgICANCi0gICAgaWYgKGJhZCkgew0KLQlpZiAobm5wZnNfaWNv
dW50KGlub2RlKSA9PSAxKQ0KLQkgICAgbm5wZnNfbm9kZV9jbGVhcih4bik7
DQotICAgIH0gZWxzZSBpZiAobm5wZnNfaWNvdW50KGlub2RlKSA9PSAyKSB7
DQotCS8qIA0KLQkgKiBUaGUgbGFzdCBleHRlcm5hbCByZWZlcmVuY2UgaXMg
YmVpbmcgZHJvcHBlZCwgb25seSB0aGUgb25lDQotCSAqIGZyb20gbm5wZnNf
bm9kZV9hZGQoKSBpcyBsZWZ0LiBUaW1lIHRvIGxldCBkYWVtb24gcmVsZWFz
ZQ0KLQkgKiB0aGlzIG5vZGUgcHJvcGVybHkuDQotCSAqLw0KLQlpZiAoKHhu
LT5mbGFncyAmIE5OUEZTX0xJTUJPKSA9PSAwKSB7DQotCSAgICBubnBmc19u
b2RlX2NsZWFyKHhuKTsNCi0JICAgIG5ucGZzX3F1ZXVlX2luYWN0aXZlKHhu
KTsNCi0JfQ0KLSAgICB9DQotDQotICAgIHVwKCZubnBmc3AtPmluYWN0aXZl
X3NlbSk7DQotfQ0KLQ0KIHN0YXRpYyBpbnQNCiBubnBmc19zdGF0ZnNfaW50
KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBrc3RhdGZzICpidWYp
DQogew0KQEAgLTM1MiwyNSArMjg2LDIxIEBAIG5ucGZzX3N0YXRmc19pbnQo
c3RydWN0IHN1cGVyX2Jsb2NrICpzYiwNCiAgICAgdG1wLmZfYmF2YWlsICA9
IDEwMjQqMTAyNCoyLTUwOw0KICAgICB0bXAuZl9maWxlcyAgID0gMTAyNCox
MDI0Ow0KICAgICB0bXAuZl9mZnJlZSAgID0gMTAyNCoxMDI0LTEwMDsNCisg
ICAgdG1wLmZfZnNpZC52YWxbMF0gPSAwOw0KKyAgICB0bXAuZl9mc2lkLnZh
bFsxXSA9IDA7DQogICAgIHRtcC5mX25hbWVsZW4gPSBOQU1FX01BWDsNCisg
ICAgdG1wLmZfZnJzaXplICA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzBdID0g
MDsNCisgICAgdG1wLmZfc3BhcmVbMV0gPSAwOw0KKyAgICB0bXAuZl9zcGFy
ZVsyXSA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzNdID0gMDsNCisgICAgdG1w
LmZfc3BhcmVbNF0gPSAwOw0KICAgICAqYnVmID0gdG1wOw0KICAgICByZXR1
cm4gMDsNCiB9DQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO
RUxfVkVSU0lPTigyLDYsMTgpDQotDQogc3RhdGljIGludA0KIG5ucGZzX3N0
YXRmcyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBrc3RhdGZzICpi
dWYpDQogew0KICAgICByZXR1cm4gbm5wZnNfc3RhdGZzX2ludChkZW50cnkt
PmRfc2IsIGJ1Zik7DQogfQ0KLQ0KLSNlbHNlDQotDQotc3RhdGljIGludA0K
LW5ucGZzX3N0YXRmcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3Qg
a3N0YXRmcyAqYnVmKQ0KLXsNCi0gICAgcmV0dXJuIG5ucGZzX3N0YXRmc19p
bnQoc2IsIGJ1Zik7DQotfQ0KLQ0KLSNlbmRpZg0K
---276651502-1678162708-1452478766=:17625
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-1678162708-1452478766=:17625--