[5089] in arla-drinkers

home help back first fref pref prev next nref lref last post

Re: PATCH v14: Arla 0.90 on Linux 2.6.3x to 4.6

daemon@ATHENA.MIT.EDU (Bo Branten)
Thu May 19 11:37:04 2016

From arla-drinkers-bounces@stacken.kth.se Thu May 19 15:37:04 2016
Return-Path: <arla-drinkers-bounces@stacken.kth.se>
Delivered-To: arla-drinkers-mtg@bloom-picayune.mit.edu
Received: (qmail 12480 invoked from network); 19 May 2016 15:37:03 -0000
Received: from mx6.kth.se (130.237.48.70)
  by charon.mit.edu with SMTP; 19 May 2016 15:37:03 -0000
Received: from mx6.kth.se (localhost [127.0.0.1])
	by mx6.kth.se (Postfix) with ESMTP id 771B71C02D5;
	Thu, 19 May 2016 17:37:02 +0200 (CEST)
X-Virus-Scanned: by amavisd-new at kth.se
Received: from mx6.kth.se ([127.0.0.1])
	by mx6.kth.se (mx6.kth.se [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id DlbfgJZwS0SQ; Thu, 19 May 2016 17:36:47 +0200 (CEST)
Received: from vingummi.stacken.kth.se (unknown [IPv6:2001:6b0:1:ea:211:43ff:fe35:104c])
	by mx6.kth.se (Postfix) with ESMTP;
	Thu, 19 May 2016 17:36:47 +0200 (CEST)
Received: from vingummi.stacken.kth.se (localhost [IPv6:::1])
	by vingummi.stacken.kth.se (Postfix) with ESMTP id 6FCFE14CBCA;
	Thu, 19 May 2016 17:36:47 +0200 (CEST)
Received: by vingummi.stacken.kth.se (Postfix)
 id DD93214CD7D; Thu, 19 May 2016 17:36:45 +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 D62DA14CD6B
 for <arla-drinkers@stacken.kth.se>; Thu, 19 May 2016 17:36:45 +0200 (CEST)
Received: from mx6.kth.se (localhost [127.0.0.1])
 by mx6.kth.se (Postfix) with ESMTP id C43B01C02D5
 for <arla-drinkers@stacken.kth.se>; Thu, 19 May 2016 17:36:45 +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]:49122
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 IS8zUSE3xMpL for <arla-drinkers@stacken.kth.se>;
 Thu, 19 May 2016 17:36:43 +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>; Thu, 19 May 2016 17:36:43 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
 by amavisd-new (Postfix) with ESMTP id B27C6E9C
 for <arla-drinkers@stacken.kth.se>; Thu, 19 May 2016 17:36:42 +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 C3CB6E99
 for <arla-drinkers@stacken.kth.se>; Thu, 19 May 2016 17:36:35 +0200 (MEST)
Received: by suiko.acc.umu.se (Postfix, from userid 10005)
 id B823044B8C; Thu, 19 May 2016 17:36:35 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
 by suiko.acc.umu.se (Postfix) with ESMTP id B2D0044B8B
 for <arla-drinkers@stacken.kth.se>; Thu, 19 May 2016 17:36:35 +0200 (CEST)
Date: Thu, 19 May 2016 17:36:35 +0200 (CEST)
From: Bo Branten <bosse@acc.umu.se>
To: arla-drinkers@stacken.kth.se
Subject: Re: PATCH v14: Arla 0.90 on Linux 2.6.3x to 4.6
In-Reply-To: <alpine.DEB.2.10.1601150307590.11672@suiko.acc.umu.se>
Message-ID: <alpine.DEB.2.10.1605191734160.15876@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-947803959-1463672195=:15876"
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-947803959-1463672195=:15876
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII

PATCH v14: Arla 0.90 on Linux 2.6.3x to 4.6

Updated for the Linux kernel v4.6.

Bo Branten
---276651502-947803959-1463672195=:15876
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-v14-arla-0.90-for-linux-2.6.3x-to-4.6
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.DEB.2.10.1605191736350.15876@suiko.acc.umu.se>
Content-Description: 
Content-Disposition: attachment; filename=patch-v14-arla-0.90-for-linux-2.6.3x-to-4.6

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
MTYtMDUtMDkgMTc6MTM6MDMuMDAwMDAwMDAwICswMjAwDQpAQCAtNDAsMjUg
KzQwLDQ4IEBADQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2Rldi5oPg0KICNp
bmNsdWRlIDxubnBmcy9ubnBmc19kaXJlbnQuaD4NCiAjaW5jbHVkZSA8bm5w
ZnMvbm5wZnNfc3lzY2FsbHMuaD4NCisjaW5jbHVkZSA8bGludXgvYWlvLmg+
DQogI2luY2x1ZGUgPGxpbnV4L2JpbmZtdHMuaD4NCiAjaW5jbHVkZSA8bGlu
dXgvZmlsZS5oPg0KICNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+DQogI2lu
Y2x1ZGUgPGxpbnV4L3BhZ2UtZmxhZ3MuaD4NCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDQsMSwwKQ0KKyNpbmNsdWRlIDxs
aW51eC91aW8uaD4NCisjZW5kaWYNCiAjaW5jbHVkZSA8bGludXgvd3JpdGVi
YWNrLmg+DQogI2luY2x1ZGUgPGFzbS9mY250bC5oPg0KIA0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oNCw2LDApDQorI2Rl
ZmluZSBQQUdFX0NBQ0hFX1NJWkUJCQlQQUdFX1NJWkUNCisjZGVmaW5lIFBB
R0VfQ0FDSEVfU0hJRlQJCVBBR0VfU0hJRlQNCisjZGVmaW5lIHBhZ2VfY2Fj
aGVfZ2V0KHBhZ2UpCQlnZXRfcGFnZShwYWdlKQ0KKyNkZWZpbmUgcGFnZV9j
YWNoZV9yZWxlYXNlKHBhZ2UpCXB1dF9wYWdlKHBhZ2UpDQorI2VuZGlmDQor
DQogI2lmZGVmIFJDU0lEDQotUkNTSUQoIiRJZDogbm5wZnNfaW5vZGVvcHMu
Yyx2IDEuMjIzIDIwMDYvMTIvMTEgMTY6MzU6MjYgdG9sIEV4cCAkIik7DQor
UkNTSUQoIiRJZDogbm5wZnNfaW5vZGVvcHMuYyx2IDEuMjI2IDIwMTAvMDgv
MDggMjA6NDM6MDQgdG9sIEV4cCAkIik7DQogI2VuZGlmDQogDQogc3RhdGlj
IGludA0KIG5ucGZzX2ZzeW5jX2ludChzdHJ1Y3QgZmlsZSAqZmlsZSwgdV9p
bnQgZmxhZyk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19kX3JldmFs
aWRhdGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRh
ICpuZCk7DQotDQorI2Vsc2UNCiBzdGF0aWMgaW50DQorbm5wZnNfZF9yZXZh
bGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW5zaWduZWQgaW50IGZs
YWdzKTsNCisjZW5kaWYNCisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KK3N0YXRpYw0KK2ludA0KIG5ucGZz
X2RfZGVsZXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7DQorI2Vsc2UNCitz
dGF0aWMNCitpbnQNCitubnBmc19kX2RlbGV0ZShjb25zdCBzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnkpOw0KKyNlbmRpZg0KIA0KIHN0YXRpYyB2b2lkDQogbm5w
ZnNfZF9yZWxlYXNlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7DQpAQCAtMTA1
LDcgKzEyOCw3IEBAIG5ucGZzX3ZtYV9jbG9zZSAoc3RydWN0IHZtX2FyZWFf
c3RydWN0ICoNCiB9DQogDQogc3RhdGljIHN0cnVjdCB2bV9vcGVyYXRpb25z
X3N0cnVjdCBubnBmc19maWxlX3ZtX29wcyA9IHsNCi0gICAgLm5vcGFnZQk9
IGZpbGVtYXBfbm9wYWdlLA0KKyAgICAuZmF1bHQgICAgICA9IGZpbGVtYXBf
ZmF1bHQsDQogICAgIC5jbG9zZQk9IG5ucGZzX3ZtYV9jbG9zZSwNCiB9Ow0K
IA0KQEAgLTEzNCwxMiArMTU3LDE0IEBAIG5ucGZzX3ByaW50X3BhdGgoc3Ry
dWN0IGRlbnRyeSAqZGVudHJ5KQ0KICAqDQogICovDQogDQorI2lmIDANCiB2
b2lkDQogbm5wZnNfcHJpbnRfbG9jayhjaGFyICpzLCBzdHJ1Y3Qgc2VtYXBo
b3JlICpzZW0pDQogew0KICAgICBOTlBGU0RFQihYREVCTE9DSywgKCJsb2Nr
OiAlcyBzZW06ICVwIGNvdW50OiAlZFxuIiwNCiAJCSAgICAgIHMsIHNlbSwg
KGludClhdG9taWNfcmVhZCgmc2VtLT5jb3VudCkpKTsNCiB9DQorI2VuZGlm
DQogDQogLyoNCiAgKg0KQEAgLTE4NSw3ICsyMTAsNyBAQCBubnBmc19kX2lw
dXQoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1DQogICAgIE5OUEZTREVC
KFhERUJWTk9QUywNCiAJICAgICAoIm5ucGZzX2RfaXB1dDogZGVudHJ5ICVw
LCBpbm9kZSAlcFxuIiwgZGVudHJ5LCBpbm9kZSkpOw0KICAgICANCi0gICAg
aWYgKG5vZGUtPmZsYWdzICYgTk5QRlNfTk9ERV9JUFVUKSAvKiBYWFggbG9j
a2luZyAqLw0KKyAgICBpZiAobm9kZS0+ZmxhZ3MgJiBOTlBGU19OT0RFX0lQ
VVQpIC8qIFhYWCBsb2NraW5nLiBuZXZlciBzZXQ/ICovDQogCW5ucGZzX2ly
ZWxlKGlub2RlKTsNCiAgICAgZWxzZQ0KIAlpcHV0KGlub2RlKTsNCkBAIC0y
MTIsOCArMjM3LDEzIEBAIG5ucGZzX2lub2RlX3ZhbGlkKHN0cnVjdCBpbm9k
ZSAqaW5vZGUpDQogICogbm5wZnNfbG9va3VwIG5vdyByZXR1cm5zIGEgZGVu
dHJ5Lg0KICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDYsMCkNCiBzdGF0aWMgc3RydWN0IGRlbnRyeSAqDQog
bm5wZnNfbG9va3VwIChzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRy
eSAqZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxzZQ0KK3N0
YXRpYyBzdHJ1Y3QgZGVudHJ5ICoNCitubnBmc19sb29rdXAgKHN0cnVjdCBp
bm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVuc2lnbmVkIGlu
dCBmbGFncykNCisjZW5kaWYNCiB7DQogICAgIHN0cnVjdCBubnBmc19tZXNz
YWdlX2dldG5vZGUgbXNnOw0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcDsN
CkBAIC0yNDAsNyArMjcwLDExIEBAIG5ucGZzX2xvb2t1cCAoc3RydWN0IGlu
b2RlICpkaXIsIHN0cnVjdCANCiANCiAJbXNnLmhlYWRlci5vcGNvZGUgPSBO
TlBGU19NU0dfR0VUTk9ERTsNCiAgICAgICAgIA0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3Jl
ZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5j
cmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVk
LnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAJbXNnLnBhcmVudF9oYW5kbGUg
PSBkLT5oYW5kbGU7DQogICAgICAgICANCkBAIC0zMTAsNyArMzQ0LDExIEBA
IG5ucGZzX29wZW5fdmFsaWQoc3RydWN0IGlub2RlICp2cCwgdV9pbnQNCiAg
ICAgICB7DQogCXN0cnVjdCBubnBmc19tZXNzYWdlX29wZW4gbXNnOw0KIAlt
c2cuaGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19PUEVOOw0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAlt
c2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAg
IG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1z
Zy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAJbXNnLmhhbmRsZSA9
IHhuLT5oYW5kbGU7DQogCW1zZy50b2tlbnMgPSB0b2s7DQpAQCAtMzk3LDcg
KzQzNSwxMSBAQCBmaW5kX2ZpcnN0X2Jsb2NrKHN0cnVjdCBubnBmc19ub2Rl
ICpub2RlDQogc3RhdGljIGludA0KIG5ucGZzX2ZzeW5jX2ludChzdHJ1Y3Qg
ZmlsZSAqZmlsZSwgdV9pbnQgZmxhZykNCiB7DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0
IGlub2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNl
bHNlDQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGgu
ZGVudHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnMg
Km5ucGZzcCA9IE5OUEZTX0ZST01fVk5PREUoaW5vZGUpOw0KICAgICBzdHJ1
Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQog
ICAgIGxvZmZfdCBsZW4gPSBpX3NpemVfcmVhZChpbm9kZSk7DQpAQCAtNDI1
LDcgKzQ2NywxMSBAQCBubnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZp
bGUsIHVfaW50DQogDQogCW1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNH
X1BVVERBVEE7DQogCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIs
NiwyOCkNCiAJbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNl
DQorICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNl
bmRpZg0KIAltc2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAJbXNnLmZsYWcg
ICA9IGZsYWc7DQogCW1zZy5vZmZzZXQgPSBvZmY7DQpAQCAtNDYwLDE0ICs1
MDYsMjcgQEAgbm5wZnNfZnN5bmNfaW50KHN0cnVjdCBmaWxlICpmaWxlLCB1
X2ludA0KICAqDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDIsNiwzNSkNCiBzdGF0aWMgaW50DQogbm5wZnNf
ZnN5bmMoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBkZW50cnkgKmRlbnRy
eSwgaW50IGRhdGFzeW5jKQ0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMSwwKQ0KK3N0YXRpYyBpbnQNCitubnBmc19m
c3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IGRhdGFzeW5jKQ0KKyNlbHNl
DQorc3RhdGljIGludA0KK25ucGZzX2ZzeW5jKHN0cnVjdCBmaWxlICpmaWxl
LCBsb2ZmX3Qgc3RhcnQsIGxvZmZfdCBlbmQsIGludCBkYXRhc3luYykNCisj
ZW5kaWYNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxf
VkVSU0lPTigyLDYsMzUpDQorICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeSA9
IGZpbGUtPmZfcGF0aC5kZW50cnk7DQorI2VuZGlmDQogICAgIHN0cnVjdCBp
bm9kZSAqaW5vZGUgPSBERU5UUllfVE9fSU5PREUoZGVudHJ5KTsNCiAgICAg
c3RydWN0IG5ucGZzICpubnBmc3A7DQogICAgIHN0cnVjdCBubnBmc19ub2Rl
ICp4bjsNCiAgICAgaW50IGVycm9yID0gMDsNCiANCisgICAgKHZvaWQpbm5w
ZnNwOw0KKw0KICAgICBlcnJvciA9IG5ucGZzX2lub2RlX3ZhbGlkKGlub2Rl
KTsNCiAgICAgaWYgKGVycm9yKQ0KIAlyZXR1cm4gZXJyb3I7DQpAQCAtNTEx
LDcgKzU3MCwxMSBAQCBubnBmc19hdHRyX3ZhbGlkKHN0cnVjdCBpbm9kZSAq
IHZwLCB1X2luDQogICAgICAgICAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2Vf
Z2V0YXR0ciBtc2c7DQogDQogICAgICAgICAgICAgbXNnLmhlYWRlci5vcGNv
ZGUgPSBOTlBGU19NU0dfR0VUQVRUUjsNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgICAgICAgICBt
c2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAg
ICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0K
ICAgICAgICAgICAgIG1zZy5jcmVkLnBhZyA9IHBhZzsNCiAgICAgICAgICAg
ICBtc2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAgICAgICAgICAgICBlcnJv
ciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNp
emVvZihtc2cpKTsNCkBAIC01NTEsNyArNjE0LDExIEBAIG5ucGZzX3JpZ2h0
c192YWxpZChzdHJ1Y3QgaW5vZGUgKiB2cCwgbm4NCiAgICAgICAgICAgICBz
dHJ1Y3Qgbm5wZnNfbWVzc2FnZV9nZXRhdHRyIG1zZzsNCiANCiAgICAgICAg
ICAgICBtc2cuaGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19HRVRBVFRSOw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2
LDI4KQ0KICAgICAgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVp
ZDsNCisjZWxzZQ0KKyAgICAgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJl
bnRfdWlkKCk7DQorI2VuZGlmDQogICAgICAgICAgICAgbXNnLmNyZWQucGFn
ID0gcGFnOw0KICAgICAgICAgICAgIG1zZy5oYW5kbGUgPSB4bi0+aGFuZGxl
Ow0KICAgICAgICAgICAgIGVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5w
ZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KQEAgLTU5MiwxMSAr
NjU5LDI1IEBAIGNoZWNrX3JpZ2h0cyAobm5wZnNfcmlnaHRzIHJpZ2h0cywg
aW50IG0NCiAgKiBXZSBkb24ndCBob2xkIGlfbXV0ZXguDQogICovDQogDQor
I2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs
MzgpIHx8IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigz
LDEsMCkpDQogc3RhdGljIGludA0KLW5ucGZzX3Blcm1pc3Npb24oc3RydWN0
IGlub2RlICppbm9kZSwgaW50IG1vZGUsIHN0cnVjdCBuYW1laWRhdGEgKm5k
KQ0KK25ucGZzX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50
IG1vZGUpDQorI2Vsc2UNCitzdGF0aWMgaW50DQorbm5wZnNfcGVybWlzc2lv
bihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9kZSwgdW5zaWduZWQgaW50
IGZsYWdzKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCi0g
ICAgbm5wZnNfcGFnX3QgcGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KKyAgICBu
bnBmc19wYWdfdCBwYWc7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBL
RVJORUxfVkVSU0lPTigzLDEsMCkNCisgICAgaWYgKG1vZGUgJiBNQVlfTk9U
X0JMT0NLKQ0KKyAgICAgICAgcmV0dXJuIC1FQ0hJTEQ7DQorI2VsaWYgTElO
VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCisg
ICAgaWYgKGZsYWdzICYgSVBFUk1fRkxBR19SQ1UpDQorICAgICAgICByZXR1
cm4gLUVDSElMRDsNCisjZW5kaWYNCisNCisgICAgcGFnID0gbm5wZnNfZ2V0
X3BhZygpOw0KICAgICANCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5u
cGZzX2FjY2VzcyAoJXApIG1vZGUgPSAwJW8gYWxpYXNlczoiLCBpbm9kZSwg
bW9kZSkpOw0KICAgICBubnBmc19wcmludF9hbGlhc2VzKGlub2RlKTsNCkBA
IC02MzYsNyArNzE3LDExIEBAIG5ucGZzX2RvX2dldGRhdGEoc3RydWN0IG5u
cGZzX25vZGUgKnhuLCANCiAgICAgaW50IGVycm9yOw0KIA0KICAgICBtc2cu
aGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19HRVREQVRBOw0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAg
ICBtc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAg
bXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAgICAg
bXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICBtc2cuaGFu
ZGxlID0geG4tPmhhbmRsZTsNCiAgICAgbXNnLnRva2VucyA9IHRvazsNCkBA
IC03NTAsMTEgKzgzNSwxOSBAQCBubnBmc19kYXRhX3ZhbGlkKHN0cnVjdCBp
bm9kZSAqaW5vZGUsIHVfDQogaW50IG5ucGZzX2ZpbGVfbW1hcChzdHJ1Y3Qg
ZmlsZSAqIGZpbGUsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqIHZtYSkNCiB7
DQogICAgIGludCBmbGFncywgZXJyb3IgPSAwOw0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVj
dCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisj
ZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRo
LmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0IGFkZHJl
c3Nfc3BhY2UgKm1hcHBpbmcgPSBmaWxlLT5mX21hcHBpbmc7DQogDQogICAg
IE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19tbWFwIGlub2RlOiAlcFxu
IiwgaW5vZGUpKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxOSwwKQ0KICAgICBubnBmc19wcmludF9wYXRoKGZpbGUt
PmZfZGVudHJ5KTsNCisjZWxzZQ0KKyAgICBubnBmc19wcmludF9wYXRoKGZp
bGUtPmZfcGF0aC5kZW50cnkpOw0KKyNlbmRpZg0KICAgICBOTlBGU0RFQihY
REVCVk5PUFMsICgibm5wZnNfbW1hcCBhbGlhc2VzOiIpKTsNCiAgICAgbm5w
ZnNfcHJpbnRfYWxpYXNlcyhpbm9kZSk7DQogICAgIA0KQEAgLTc4OSwzNyAr
ODgyLDUwIEBAIGludCBubnBmc19maWxlX21tYXAoc3RydWN0IGZpbGUgKiBm
aWxlLCANCiAgKg0KICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQogc3RhdGljIHNzaXplX3QNCiBu
bnBmc19haW9fcmVhZChzdHJ1Y3Qga2lvY2IgKmlvY2IsDQotI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTkpDQogCSAg
ICAgICBjb25zdCBzdHJ1Y3QgaW92ZWMgKmlvdiwgdW5zaWduZWQgbG9uZyBu
cl9zZWdzLA0KKwkgICAgICAgbG9mZl90IHBvcykNCiAjZWxzZQ0KLQkgICAg
ICAgY2hhciBfX3VzZXIgKmJ1Ziwgc2l6ZV90IGNvdW50LA0KK3N0YXRpYyBz
c2l6ZV90DQorbm5wZnNfcmVhZF9pdGVyKHN0cnVjdCBraW9jYiAqaW9jYiwg
c3RydWN0IGlvdl9pdGVyICp0bykNCiAjZW5kaWYNCi0JICAgICAgIGxvZmZf
dCBwb3MpDQogew0KICAgICBpbnQgZXJyb3IgPSAwOw0KICAgICBzdHJ1Y3Qg
ZmlsZSAqZmlsZSA9IGlvY2ItPmtpX2ZpbHA7DQotI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTkpDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkNCiAgICAg
c3NpemVfdCBjb3VudCA9IGlvY2ItPmtpX2xlZnQ7DQorI2VsaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oNCwxLDApDQorICAgIHNz
aXplX3QgY291bnQgPSBpb2NiLT5raV9uYnl0ZXM7DQorI2Vsc2UNCisgICAg
c3NpemVfdCBjb3VudCA9IGlvdl9pdGVyX2NvdW50KHRvKTsNCiAjZW5kaWYN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx
OSwwKQ0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9kZW50
cnktPmRfaW5vZGU7DQorI2Vsc2UNCisgICAgc3RydWN0IGlub2RlICppbm9k
ZSA9IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGU7DQorI2VuZGlmDQog
ICAgIHN0cnVjdCBubnBmc19ub2RlICp4biA9IFZOT0RFX1RPX1hOT0RFKGlu
b2RlKTsNCiAgICAgDQogICAgIGlmICh4biAhPSBOVUxMKQ0KIAlOTlBGU0RF
QihYREVCVk5PUFMsICgibm5wZnNfcmVhZF9maWxlKCVwKTogdG9rZW5zOiAw
eCV4XG4iLA0KIAkJCSAgICAgaW5vZGUsIHhuLT50b2tlbnMpKTsNCiANCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiww
KQ0KICAgICBlcnJvciA9IG5ucGZzX2RhdGFfdmFsaWQoaW5vZGUsIE5OUEZT
X0RBVEFfUiwgcG9zLCBwb3MgKyBjb3VudCk7DQorI2Vsc2UNCisgICAgZXJy
b3IgPSBubnBmc19kYXRhX3ZhbGlkKGlub2RlLCBOTlBGU19EQVRBX1IsIGlv
Y2ItPmtpX3BvcywgaW9jYi0+a2lfcG9zICsgY291bnQpOw0KKyNlbmRpZg0K
ICAgICBpZiAoZXJyb3IpIHsNCiAJTk5QRlNERUIoWERFQlZOT1BTLCAoIm5u
cGZzX3JlYWRfZmlsZTogZGF0YSBub3QgdmFsaWQgJWRcbiIsIGVycm9yKSk7
DQogCXJldHVybiBlcnJvcjsNCiAgICAgfQ0KICAgICANCi0jaWYgTElOVVhf
VkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0K
ICAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV9haW9fcmVhZChpb2NiLCBpb3Ys
IG5yX3NlZ3MsIHBvcyk7DQogI2Vsc2UNCi0gICAgZXJyb3IgPSBnZW5lcmlj
X2ZpbGVfYWlvX3JlYWQoaW9jYiwgYnVmLCBjb3VudCwgcG9zKTsNCisgICAg
ZXJyb3IgPSBnZW5lcmljX2ZpbGVfcmVhZF9pdGVyKGlvY2IsIHRvKTsNCiAj
ZW5kaWYNCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3JlYWRf
ZmlsZTogZXJyb3IgPSAlZFxuIiwgZXJyb3IpKTsNCiAgICAgcmV0dXJuIGVy
cm9yOw0KQEAgLTgyOSwyMyArOTM1LDM2IEBAIG5ucGZzX2Fpb19yZWFkKHN0
cnVjdCBraW9jYiAqaW9jYiwNCiAgKg0KICAqLw0KIA0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQogc3RhdGlj
IHNzaXplX3QNCiBubnBmc19haW9fd3JpdGUoc3RydWN0IGtpb2NiICppb2Ni
LA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04o
Miw2LDE5KQ0KIAkJY29uc3Qgc3RydWN0IGlvdmVjICppb3YsIHVuc2lnbmVk
IGxvbmcgbnJfc2VncywNCisJCWxvZmZfdCBwb3MpDQogI2Vsc2UNCi0JCWNv
bnN0IGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCwgDQorc3RhdGlj
IHNzaXplX3QNCitubnBmc193cml0ZV9pdGVyKHN0cnVjdCBraW9jYiAqaW9j
Yiwgc3RydWN0IGlvdl9pdGVyICpmcm9tKQ0KICNlbmRpZg0KLQkJbG9mZl90
IHBvcykNCiB7DQogICAgIGludCBlcnJvciA9IDA7DQogICAgIHN0cnVjdCBm
aWxlICpmaWxlID0gaW9jYi0+a2lfZmlscDsNCi0jaWYgTElOVVhfVkVSU0lP
Tl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMiwwKQ0KICAgICBz
c2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbGVmdDsNCisjZWxpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDEsMCkNCisgICAgc3Np
emVfdCBjb3VudCA9IGlvY2ItPmtpX25ieXRlczsNCisjZWxzZQ0KKyAgICBz
c2l6ZV90IGNvdW50ID0gaW92X2l0ZXJfY291bnQoZnJvbSk7DQogI2VuZGlm
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfZGVu
dHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBpbm9kZSAqaW5v
ZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0K
ICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShp
bm9kZSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsMTYsMCkNCiAgICAgbG9mZl90IHJlYWxwb3MgPSBwb3M7DQorI2Vs
c2UNCisgICAgbG9mZl90IHJlYWxwb3MgPSBpb2NiLT5raV9wb3M7DQorI2Vu
ZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNf
YWlvX3dyaXRlKCVwKTogdG9rZW5zOiAweCV4XG4iLA0KIAkJCSBpbm9kZSwg
eG4tPnRva2VucykpOw0KQEAgLTg1OSwxMCArOTc4LDEwIEBAIG5ucGZzX2Fp
b193cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogCXJldHVybiBlcnJvcjsN
CiAgICAgfQ0KIA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVM
X1ZFUlNJT04oMiw2LDE5KQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDE2LDApDQogICAgIGVycm9yID0gZ2VuZXJpY19m
aWxlX2Fpb193cml0ZShpb2NiLCBpb3YsIG5yX3NlZ3MsIHBvcyk7DQogI2Vs
c2UNCi0gICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVfYWlvX3dyaXRlKGlvY2Is
IGJ1ZiwgY291bnQsIHBvcyk7DQorICAgIGVycm9yID0gZ2VuZXJpY19maWxl
X3dyaXRlX2l0ZXIoaW9jYiwgZnJvbSk7DQogI2VuZGlmDQogICAgIGlmICgh
SVNfRVJSX1ZBTFVFKGVycm9yKSkNCiAJeG4tPmZsYWdzIHw9IE5OUEZTX0RB
VEFfRElSVFk7IC8qIFhYWCByYWNlICovDQpAQCAtODcxLDkgKzk5MCwxOSBA
QCBubnBmc19haW9fd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLA0KICAgICBy
ZXR1cm4gZXJyb3I7DQogfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDMsMCkNCiBzdGF0aWMgaW50DQogbm5wZnNf
Y3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50
cnksDQogCSAgICAgaW50IG1vZGUsIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0K
KyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
NiwwKQ0KK3N0YXRpYyBpbnQNCitubnBmc19jcmVhdGUoc3RydWN0IGlub2Rl
ICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwNCisJICAgICB1bW9kZV90
IG1vZGUsIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNlDQorc3RhdGlj
IGludA0KK25ucGZzX2NyZWF0ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0
IGRlbnRyeSAqZGVudHJ5LA0KKwkgICAgIHVtb2RlX3QgbW9kZSwgYm9vbCBl
eGNsKQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7
DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCkBAIC05MDMsOSArMTAz
MiwxNyBAQCBubnBmc19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVj
dCBkDQogICAgIFhBX0NMRUFSKCZtc2cuYXR0cik7DQogICAgIFhBX1NFVF9N
T0RFKCZtc2cuYXR0ciwgbW9kZSk7DQogICAgIFhBX1NFVF9UWVBFKCZtc2cu
YXR0ciwgTk5QRlNfRklMRV9SRUcpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBYQV9TRVRfR0lE
KCZtc2cuYXR0ciwgY3VycmVudC0+ZnNnaWQpOw0KKyNlbHNlDQorICAgIFhB
X1NFVF9HSUQoJm1zZy5hdHRyLCBjdXJyZW50X2ZzZ2lkKCkpOw0KKyNlbmRp
Zg0KICAgICBtc2cubW9kZSA9IDA7CQkvKiBYWFggKi8NCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAg
bXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgIG1z
Zy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogICAgIG1z
Zy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgZXJyb3IgPSBu
bnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2Yo
bXNnKSk7DQogICAgIGlmIChlcnJvciA9PSAwKQ0KQEAgLTk0Niw3ICsxMDgz
LDExIEBAIG5ucGZzX3VubGluayAoc3RydWN0IGlub2RlICogZGlyLCBzdHJ1
Y3QNCiAgICAgaWYgKHN0cmxjcHkobXNnLm5hbWUsIGRlbnRyeS0+ZF9uYW1l
Lm5hbWUsIHNpemVvZihtc2cubmFtZSkpID49IE5OUEZTX01BWF9OQU1FKQ0K
IAlyZXR1cm4gLUVOQU1FVE9PTE9ORzsNCiANCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgbXNnLmNy
ZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgIG1zZy5jcmVk
LnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogICAgIG1zZy5jcmVk
LnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgZXJyb3IgPSBubnBmc19t
ZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7
DQogICAgIGlmIChlcnJvciA9PSAwKQ0KQEAgLTk5MSw3ICsxMTMyLDExIEBA
IG5ucGZzX3JlbmFtZSAoc3RydWN0IGlub2RlICogb2xkX2Rpciwgc3QNCiAg
ICAgaWYgKHN0cmxjcHkobXNnLm5ld19uYW1lLCBuZXdfZGVudHJ5LT5kX25h
bWUubmFtZSwgc2l6ZW9mKG1zZy5uZXdfbmFtZSkpID49IE5OUEZTX01BWF9O
QU1FKQ0KIAlyZXR1cm4gLUVOQU1FVE9PTE9ORzsNCiAJDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAg
IG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBt
c2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICBt
c2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAgIGVycm9yID0g
bm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9m
KG1zZykpOw0KICAgICBpZiAoZXJyb3IgPT0gMCkNCkBAIC0xMDA4LDggKzEx
NTMsMTMgQEAgbm5wZnNfcmVuYW1lIChzdHJ1Y3QgaW5vZGUgKiBvbGRfZGly
LCBzdA0KICAgICByZXR1cm4gZXJyb3I7DQogfQ0KIA0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDMsMCkNCiBzdGF0aWMg
aW50DQogbm5wZnNfbWtkaXIoc3RydWN0IGlub2RlICogZGlyLCBzdHJ1Y3Qg
ZGVudHJ5ICpkZW50cnksIGludCBtb2RlKQ0KKyNlbHNlDQorc3RhdGljIGlu
dA0KK25ucGZzX21rZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGRl
bnRyeSAqZGVudHJ5LCB1bW9kZV90IG1vZGUpDQorI2VuZGlmDQogew0KICAg
ICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcDsNCiAgICAgc3RydWN0IG5ucGZzX25v
ZGUgKnhuOw0KQEAgLTEwNDAsOSArMTE5MCwxNyBAQCBubnBmc19ta2Rpcihz
dHJ1Y3QgaW5vZGUgKiBkaXIsIHN0cnVjdCBkDQogCVhBX0NMRUFSKCZtc2cu
YXR0cik7DQogCVhBX1NFVF9NT0RFKCZtc2cuYXR0ciwgbW9kZSk7DQogCVhB
X1NFVF9UWVBFKCZtc2cuYXR0ciwgTk5QRlNfRklMRV9ESVIpOw0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0K
IAlYQV9TRVRfR0lEKCZtc2cuYXR0ciwgY3VycmVudC0+ZnNnaWQpOw0KKyNl
bHNlDQorICAgICAgICBYQV9TRVRfR0lEKCZtc2cuYXR0ciwgY3VycmVudF9m
c2dpZCgpKTsNCisjZW5kaWYNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJbXNnLmNyZWQudWlkID0g
Y3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICBtc2cuY3JlZC51aWQg
PSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KIAltc2cuY3JlZC5wYWcgPSBu
bnBmc19nZXRfcGFnKCk7DQogCWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMo
bm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KIAlpZiAoZXJy
b3IgPT0gMCkNCkBAIC0xMDgzLDcgKzEyNDEsMTEgQEAgbm5wZnNfcm1kaXIo
c3RydWN0IGlub2RlICogZGlyLCBzdHJ1Y3QgZA0KICAgICBtc2cucGFyZW50
X2hhbmRsZSA9IHhuLT5oYW5kbGU7DQogICAgIGlmIChzdHJsY3B5KG1zZy5u
YW1lLCBkZW50cnktPmRfbmFtZS5uYW1lLCBzaXplb2YobXNnLm5hbWUpKSA+
PSBOTlBGU19NQVhfTkFNRSkNCiAJICAgIHJldHVybiAtRU5BTUVUT09MT05H
Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04o
Miw2LDI4KQ0KICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQor
I2Vsc2UNCisgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisj
ZW5kaWYNCiAgICAgbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0K
ICAgICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5o
ZWFkZXIsIHNpemVvZihtc2cpKTsNCiAgICAgaWYgKGVycm9yID09IDApDQpA
QCAtMTEyOCw3ICsxMjkwLDExIEBAIHN0YXRpYyBpbnQgbm5wZnNfbGluayhz
dHJ1Y3QgZGVudHJ5ICpvbGQNCiAJaWYgKHN0cmxjcHkobXNnLm5hbWUsIG5h
bWUsIHNpemVvZihtc2cubmFtZSkpID49IE5OUEZTX01BWF9OQU1FKQ0KIAkg
ICAgcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQogDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCW1zZy5jcmVk
LnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLmNy
ZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAJbXNnLmNyZWQu
cGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KIAllcnJvciA9IG5ucGZzX21lc3Nh
Z2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCiAJ
aWYgKGVycm9yID09IDApDQpAQCAtMTE1NywyOSArMTMyMyw0NyBAQCBzdGF0
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
IH0NCiANCiAgICAgcmV0dXJuIGVycm9yOw0KQEAgLTExODgsMTIgKzEzNzIs
MjEgQEAgc3RhdGljIGludCBubnBmc19zeW1saW5rKHN0cnVjdCBpbm9kZSAq
ZA0KIC8qDQogICogV2UgaG9sZCBpX211dGV4Lg0KICAqLw0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDExLDApDQogc3Rh
dGljIGludA0KIG5ucGZzX3JlYWRkaXIoc3RydWN0IGZpbGUgKiBmaWxlLCB2
b2lkICogZGlyZW50LCBmaWxsZGlyX3QgZmlsbGRpcikNCisjZWxzZQ0KK3N0
YXRpYyBpbnQNCitubnBmc19pdGVyYXRlKHN0cnVjdCBmaWxlICogZmlsZSwg
c3RydWN0IGRpcl9jb250ZXh0ICpjdHgpDQorI2VuZGlmDQogew0KICAgICBp
bnQgZXJyb3I7DQogICAgIGxvZmZfdCBvZmZzZXQsIGJlZ2luX29mZnNldDsN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx
OSwwKQ0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9kZW50
cnktPmRfaW5vZGU7DQorI2Vsc2UNCisgICAgc3RydWN0IGlub2RlICppbm9k
ZSA9IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGU7DQorI2VuZGlmDQog
ICAgIHN0cnVjdCBpbm9kZSAqY2FjaGVfaW5vZGU7DQogICAgIHN0cnVjdCBu
bnBmc19ub2RlICp4biA9IFZOT0RFX1RPX1hOT0RFKGlub2RlKTsNCiAgICAg
Y2hhciAqYnVmOw0KQEAgLTEyMTcsNiArMTQxMCw3IEBAIG5ucGZzX3JlYWRk
aXIoc3RydWN0IGZpbGUgKiBmaWxlLCB2b2lkICoNCiANCiAgICAgY2FjaGVf
aW5vZGUgPSBiYWNrZmlsZS0+Zl9tYXBwaW5nLT5ob3N0Ow0KIA0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDExLDApDQog
ICAgIHdoaWxlIChmaWxlLT5mX3BvcyA8IGlfc2l6ZV9yZWFkKGNhY2hlX2lu
b2RlKSkgew0KIAlOTlBGU0RFQihYREVCUkVBRERJUiwNCiAJICAgICAgICgi
bm5wZnNfcmVhZGRpciBmaWxlLT5mX3BvczogJWQgaV9zaXplOiAlZFxuIiwN
CkBAIC0xMjI5LDYgKzE0MjMsMjAgQEAgbm5wZnNfcmVhZGRpcihzdHJ1Y3Qg
ZmlsZSAqIGZpbGUsIHZvaWQgKg0KIAltYXBwaW5nID0gYmFja2ZpbGUtPmZf
bWFwcGluZzsNCiAJaW5wYWdlID0gZmlsZS0+Zl9wb3MgJiAoUEFHRV9DQUNI
RV9TSVpFLTEpOw0KIAlwYWdlX251bSA9IGZpbGUtPmZfcG9zID4+IFBBR0Vf
Q0FDSEVfU0hJRlQ7DQorI2Vsc2UNCisgICAgd2hpbGUgKGN0eC0+cG9zIDwg
aV9zaXplX3JlYWQoY2FjaGVfaW5vZGUpKSB7DQorCU5OUEZTREVCKFhERUJS
RUFERElSLA0KKwkgICAgICAgKCJubnBmc19yZWFkZGlyIGZpbGUtPmZfcG9z
OiAlZCBpX3NpemU6ICVkXG4iLA0KKwkJKGludCkgY3R4LT5wb3MsIChpbnQp
IGNhY2hlX2lub2RlLT5pX3NpemUpKTsNCisJYmVnaW5fb2Zmc2V0ID0gY3R4
LT5wb3MgJn4gKE5OUEZTX0RJUkVOVF9CTE9DS1NJWkUgLSAxKTsNCisJb2Zm
c2V0ID0gY3R4LT5wb3MgJiAoTk5QRlNfRElSRU5UX0JMT0NLU0laRSAtIDEp
Ow0KKwljdHgtPnBvcyA9IGJlZ2luX29mZnNldDsNCisJTk5QRlNERUIoWERF
QlJFQURESVIsICgibm5wZnNfcmVhZGRpciBiZWdpbl9vZmZzZXQ6ICVkIG9m
ZnNldDogJWRcbiIsDQorCQkJICAgICAoaW50KWJlZ2luX29mZnNldCwgKGlu
dClvZmZzZXQpKTsNCisJbWFwcGluZyA9IGJhY2tmaWxlLT5mX21hcHBpbmc7
DQorCWlucGFnZSA9IGN0eC0+cG9zICYgKFBBR0VfQ0FDSEVfU0laRS0xKTsN
CisJcGFnZV9udW0gPSBjdHgtPnBvcyA+PiBQQUdFX0NBQ0hFX1NISUZUOw0K
KyNlbmRpZg0KIA0KIAlOTlBGU0RFQihYREVCUkVBRERJUiwNCiAJICAgICAg
ICgibm5wZnNfcmVhZGRpciBpbnBhZ2U6ICVkIHBhZ2VfbnVtOiAlbHVcbiIs
DQpAQCAtMTI2NCw2ICsxNDcyLDcgQEAgbm5wZnNfcmVhZGRpcihzdHJ1Y3Qg
ZmlsZSAqIGZpbGUsIHZvaWQgKg0KIAkJICAgIChpbnQpIHhkaXJlbnQtPmRf
bmFtbGVuLA0KIAkJICAgIChpbnQpIChvZmZzZXQrYmVnaW5fb2Zmc2V0KSkp
Ow0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDExLDApDQogCSAgICBpZiAoeGRpcmVudC0+ZF9maWxlbm8gIT0gMA0K
IAkJJiYgKGZpbGxkaXJfZXJyb3IgPSBmaWxsZGlyIChkaXJlbnQsDQogCQkJ
CSAgICAgeGRpcmVudC0+ZF9uYW1lLA0KQEAgLTEyNzUsMTIgKzE0ODQsMjgg
QEAgbm5wZnNfcmVhZGRpcihzdHJ1Y3QgZmlsZSAqIGZpbGUsIHZvaWQgKg0K
IAkJCSAoIm5ucGZzX3JlYWRkaXIgZmlsbGRpcjogJWRcbiIsIGZpbGxkaXJf
ZXJyb3IpKTsNCiAJCWJyZWFrOw0KIAkgICAgfQ0KKyNlbHNlDQorCSAgICBp
ZiAoeGRpcmVudC0+ZF9maWxlbm8gIT0gMA0KKwkJJiYgKGZpbGxkaXJfZXJy
b3IgPSBkaXJfZW1pdCAoY3R4LA0KKwkJCQkgICAgIHhkaXJlbnQtPmRfbmFt
ZSwNCisJCQkJICAgICB4ZGlyZW50LT5kX25hbWxlbiwNCisJCQkJICAgICB4
ZGlyZW50LT5kX2ZpbGVubywNCisJCQkJICAgICBEVF9VTktOT1dOKSkgPCAw
KSB7DQorCQlOTlBGU0RFQihYREVCUkVBRERJUiwNCisJCQkgKCJubnBmc19y
ZWFkZGlyIGZpbGxkaXI6ICVkXG4iLCBmaWxsZGlyX2Vycm9yKSk7DQorCQli
cmVhazsNCisJICAgIH0NCisjZW5kaWYNCiAJICAgIG9mZnNldCArPSB4ZGly
ZW50LT5kX3JlY2xlbjsNCiANCiAJICAgIGlmICh4ZGlyZW50LT5kX3JlY2xl
biA9PSAwKSB7DQogCQlwcmludGsoS0VSTl9FTUVSRyAiTk5QRlMgUGFuaWM6
ICINCiAJCSAgICAgICAiZW1wdHkgZGlyZW50IGF0ICVsbGQgaW4gbm5wZnNf
cmVhZGRpciwgcG9zICVkIHNpemUgJWRcbiIsDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEsMCkNCiAJCSAgICAgICAo
bG9uZyBsb25nKW9mZnNldCwgKGludClmaWxlLT5mX3BvcywNCisjZWxzZQ0K
KwkJICAgICAgIChsb25nIGxvbmcpb2Zmc2V0LCAoaW50KWN0eC0+cG9zLA0K
KyNlbmRpZg0KIAkJICAgICAgIChpbnQpY2FjaGVfaW5vZGUtPmlfc2l6ZSk7
DQogCQlOTlBGU0RFQihYREVCVk5PUFMsICgiaW5vZGU6ICVwIGFsaWFzZXM6
IiwgaW5vZGUpKTsNCiAJCW5ucGZzX3ByaW50X2FsaWFzZXMoaW5vZGUpOw0K
QEAgLTEyOTgsNyArMTUyMywxMSBAQCBubnBmc19yZWFkZGlyKHN0cnVjdCBm
aWxlICogZmlsZSwgdm9pZCAqDQogCWlmIChvZmZzZXQgPiBOTlBGU19ESVJF
TlRfQkxPQ0tTSVpFKQ0KIAkgICAgb2Zmc2V0ID0gTk5QRlNfRElSRU5UX0JM
T0NLU0laRTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxMSwwKQ0KIAlmaWxlLT5mX3BvcyA9IGJlZ2luX29mZnNl
dCArIG9mZnNldDsNCisjZWxzZQ0KKwljdHgtPnBvcyA9IGJlZ2luX29mZnNl
dCArIG9mZnNldDsNCisjZW5kaWYNCiANCiAJaWYgKGVycm9yIHx8IG9mZnNl
dCA8IE5OUEZTX0RJUkVOVF9CTE9DS1NJWkUpDQogCSAgICBicmVhazsNCkBA
IC0xMzMxLDEyICsxNTYwLDI1IEBAIG5ucGZzX3JlYWRsaW5rIChzdHJ1Y3Qg
ZGVudHJ5ICpkZW50cnksIGMNCiAgKiBXZSBkb24ndCBob2xkIGlfbXV0ZXgu
DQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDQsMiwwKQ0KIHN0YXRpYyB2b2lkICoNCiBubnBmc19mb2xsb3df
bGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KIAkJIHN0cnVjdCBuYW1l
aWRhdGEgKm5kKQ0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDQsNSwwKQ0KK3N0YXRpYyBjb25zdCBjaGFyICoNCitubnBm
c19mb2xsb3dfbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KKwkJIHZv
aWQgKipwYWdlKQ0KKyNlbHNlDQorc3RhdGljIGNvbnN0IGNoYXIgKg0KK25u
cGZzX2dldF9saW5rIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksDQorCQkgc3Ry
dWN0IGlub2RlICppbm9kZSwNCisJCSBzdHJ1Y3QgZGVsYXllZF9jYWxsICpk
b25lKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oNCw1LDApDQog
ICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBERU5UUllfVE9fSU5PREUoZGVu
dHJ5KTsNCisjZW5kaWYNCiANCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAo
Im5ucGZzX2ZvbGxvd19saW5rXG4iKSk7DQogICAgIA0KQEAgLTEzNDQsNyAr
MTU4NiwxMyBAQCBubnBmc19mb2xsb3dfbGluayAoc3RydWN0IGRlbnRyeSAq
ZGVudHJ5DQogICAgIGlmIChlcnJvcikNCiAgICAgICAgcmV0dXJuIEVSUl9Q
VFIoZXJyb3IpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTig0LDIsMCkNCiAgICAgcmV0dXJuIHBhZ2VfZm9sbG93X2xp
bmtfbGlnaHQoZGVudHJ5LCBuZCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oNCw1LDApDQorICAgIHJldHVybiBwYWdl
X2ZvbGxvd19saW5rX2xpZ2h0KGRlbnRyeSwgcGFnZSk7DQorI2Vsc2UNCisg
ICAgcmV0dXJuIHBhZ2VfZ2V0X2xpbmsoZGVudHJ5LCBpbm9kZSwgZG9uZSk7
DQorI2VuZGlmDQogfQ0KIA0KIC8qDQpAQCAtMTM5OCw3ICsxNjQ2LDExIEBA
IG5ucGZzX3NldGF0dHIgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3QNCiAg
ICAgICAgIHN0cnVjdCBubnBmc19tZXNzYWdlX3B1dGF0dHIgbXNnOw0KIA0K
ICAgICAgICAgbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfUFVUQVRU
UjsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9O
KDIsNiwyOCkNCiAJbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNl
bHNlDQorICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0K
KyNlbmRpZg0KIAltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQog
ICAgICAgICBtc2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAgICAgICAgIG5u
cGZzX2lhdHRyMmF0dHIoeG4sIGF0dHIsICZtc2cuYXR0cik7DQpAQCAtMTQy
Miw2ICsxNjc0LDggQEAgbm5wZnNfcmVsZWFzZV9maWxlIChzdHJ1Y3QgaW5v
ZGUgKmlub2RlLA0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQogICAg
IGludCBlcnJvciA9IDA7DQogDQorICAgICh2b2lkKW5ucGZzcDsNCisNCiAg
ICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3JlbGVhc2VfZmlsZVxu
IikpOw0KIA0KICAgICBlcnJvciA9IG5ucGZzX2lub2RlX3ZhbGlkKGlub2Rl
KTsNCkBAIC0xNDUwLDE4ICsxNzA0LDE4IEBAIG5ucGZzX3JlbGVhc2VfZmls
ZSAoc3RydWN0IGlub2RlICppbm9kZSwNCiAgKg0KICAqLw0KIA0KLSNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4KQ0K
IHN0YXRpYyBpbnQNCiBubnBmc19mbHVzaChzdHJ1Y3QgZmlsZSAqZmlsZSwg
Zmxfb3duZXJfdCBpZCkNCi0jZWxzZQ0KLXN0YXRpYyBpbnQNCi1ubnBmc19m
bHVzaChzdHJ1Y3QgZmlsZSAqZmlsZSkNCi0jZW5kaWYNCiB7DQogICAgIE5O
UEZTREVCKFhERUJWTk9QUywgKCJubnBmc19mbHVzaFxuIikpOw0KIA0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp
DQogICAgIGlmIChmaWxlICYmIGZpbGUtPmZfZGVudHJ5ICYmIGZpbGUtPmZf
ZGVudHJ5LT5kX2lub2RlKQ0KIAlyZXR1cm4gbm5wZnNfcmVsZWFzZV9maWxl
KGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlLCBmaWxlKTsNCisjZWxzZQ0KKyAg
ICBpZiAoZmlsZSAmJiBmaWxlLT5mX3BhdGguZGVudHJ5ICYmIGZpbGUtPmZf
cGF0aC5kZW50cnktPmRfaW5vZGUpDQorCXJldHVybiBubnBmc19yZWxlYXNl
X2ZpbGUoZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSwgZmlsZSk7DQor
I2VuZGlmDQogICAgIGVsc2UNCiAJcmV0dXJuIDA7DQogfQ0KQEAgLTE0NzAs
MTAgKzE3MjQsMjQgQEAgbm5wZnNfZmx1c2goc3RydWN0IGZpbGUgKmZpbGUp
DQogICogUmV0dXJuIDEgaWYgYGRlbnRyeScgaXMgc3RpbGwgdmFsaWQsIG90
aGVyd2lzZSAwLg0KICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCitzdGF0aWMgaW50DQorbm5wZnNf
ZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5h
bWVpZGF0YSAqbmQpDQorI2Vsc2UNCiBzdGF0aWMgaW50DQotbm5wZnNfZF9y
ZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5hbWVp
ZGF0YSAqbmQpIA0KK25ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5
ICpkZW50cnksIHVuc2lnbmVkIGludCBmbGFncykNCisjZW5kaWYNCiB7DQog
ICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBERU5UUllfVE9fSU5PREUoZGVu
dHJ5KTsNCisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9W
RVJTSU9OKDMsNiwwKQ0KKyAgICBpZiAoZmxhZ3MgJiBMT09LVVBfUkNVKQ0K
KyAgICAgICAgcmV0dXJuIC1FQ0hJTEQ7DQorI2VsaWYgTElOVVhfVkVSU0lP
Tl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCisgICAgaWYgKG5k
ICYmIG5kLT5mbGFncyAmIExPT0tVUF9SQ1UpDQorICAgICAgICByZXR1cm4g
LUVDSElMRDsNCisjZW5kaWYNCisNCiAgICAgTk5QRlNERUIoWERFQlZOT1BT
LCAoIm5ucGZzX2RfcmV2YWxpZGF0ZSAlcCBcIiUuKnNcIiAoaW5vZGUgJXAp
XG4iLA0KIAkJICAgICAgIGRlbnRyeSwNCiAJCSAgICAgICAoaW50KWRlbnRy
eS0+ZF9uYW1lLmxlbiwNCkBAIC0xNTE5LDkgKzE3ODcsMTUgQEAgbm5wZnNf
ZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeQ0KICAgICByZXR1
cm4gMDsNCiB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDIsNiwzOCkNCiBzdGF0aWMNCiBpbnQNCiBubnBmc19kX2Rl
bGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQorI2Vsc2UNCitzdGF0aWMN
CitpbnQNCitubnBmc19kX2RlbGV0ZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpk
ZW50cnkpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2Rl
Ow0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAtMTU0NiwxMSAr
MTgyMCwxNiBAQCBubnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50
cnkpDQogfQ0KIA0KIHN0YXRpYyBzc2l6ZV90DQotbm5wZnNfc2VuZGZpbGUo
c3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCAqcHBvcywgc2l6ZV90IGNvdW50
LA0KLQkgICAgICAgcmVhZF9hY3Rvcl90IGFjdG9yLCB2b2lkICp0YXJnZXQp
DQorbm5wZnNfc3BsaWNlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZf
dCAqcHBvcywNCisJCSAgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSwg
c2l6ZV90IGNvdW50LA0KKwkJICB1bnNpZ25lZCBpbnQgZmxhZ3MpDQogew0K
ICAgICBpbnQgZXJyb3IgPSAwOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBpbm9kZSAq
aW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAg
ICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+
ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhu
ID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KICAgICANCiAgICAgaWYgKHhu
ICE9IE5VTEwpDQpAQCAtMTU2MSw4ICsxODQwLDcgQEAgbm5wZnNfc2VuZGZp
bGUoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdA0KIAlOTlBGU0RFQihYREVC
Vk5PUFMsICgibm5wZnNfc2VuZGZpbGU6IGRhdGEgbm90IHZhbGlkICVkXG4i
LCBlcnJvcikpOw0KIAlyZXR1cm4gZXJyb3I7DQogICAgIH0NCi0NCi0gICAg
ZXJyb3IgPSBnZW5lcmljX2ZpbGVfc2VuZGZpbGUoZmlsZSwgcHBvcywgY291
bnQsIGFjdG9yLCB0YXJnZXQpOw0KKyAgICBlcnJvciA9IGZpbGUtPmZfb3At
PnNwbGljZV9yZWFkKGZpbGUsIHBwb3MsIHBpcGUsIGNvdW50LCBmbGFncyk7
DQogDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19zZW5kZmls
ZTogZXJyb3IgPSAlZFxuIiwgZXJyb3IpKTsNCiAgICAgcmV0dXJuIGVycm9y
Ow0KQEAgLTE2MzksNDAgKzE5MTcsNDEgQEAgbm5wZnNfd3JpdGVfYmFja3Bh
Z2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIA0KIAlzdHJ1Y3QgYWRkcmVzc19zcGFj
ZSAqbWFwcGluZyA9IGJhY2tmaWxlLT5mX21hcHBpbmc7DQogCXVuc2lnbmVk
IGxlbiA9IFBBR0VfQ0FDSEVfU0laRTsNCiAJc3RydWN0IHBhZ2UgKmJhY2tw
YWdlOw0KKwl2b2lkICpmc2RhdGE7DQogCXVuc2lnbmVkIGxvbmcgb2Zmc2V0
Ow0KIA0KIAlpbnQgZXJyb3I7DQogCQ0KLQlkbyB7DQotCQliYWNrcGFnZSA9
IGdyYWJfY2FjaGVfcGFnZShtYXBwaW5nLCBubnBmc19nZXRfYmFja2luZGV4
KHBhZ2UpKTsNCi0JCWlmICghYmFja3BhZ2UpIHsNCi0JCQlwcmludGsoIm5u
cGZzX3dyaXRlX2JhY2twYWdlOiBubyBwYWdlXG4iKTsNCi0JCQlyZXR1cm4g
LUVJTzsNCi0JCX0NCisJKHZvaWQpb2Zmc2V0Ow0KIA0KLQkJZXJyb3IgPSBt
YXBwaW5nLT5hX29wcy0+cHJlcGFyZV93cml0ZShiYWNrZmlsZSwgYmFja3Bh
Z2UsDQotCQkJCQkJICAgICAgMCwgbGVuKTsNCisJZG8gew0KKwkJZXJyb3Ig
PSBwYWdlY2FjaGVfd3JpdGVfYmVnaW4oYmFja2ZpbGUsIG1hcHBpbmcsIDAs
IGxlbiwNCisJCQkJCSAgICAgIEFPUF9GTEFHX1VOSU5URVJSVVBUSUJMRSwN
CisJCQkJCSAgICAgICZiYWNrcGFnZSwgJmZzZGF0YSk7DQogCQlpZiAoIWVy
cm9yKSB7DQogCQkJY29weV9oaWdocGFnZShiYWNrcGFnZSwgcGFnZSk7DQog
CQkJZmx1c2hfZGNhY2hlX3BhZ2UoYmFja3BhZ2UpOw0KLQkJCWVycm9yID0g
bWFwcGluZy0+YV9vcHMtPmNvbW1pdF93cml0ZShiYWNrZmlsZSwgYmFja3Bh
Z2UsDQotCQkJCQkJCSAgICAgMCwgbGVuKTsNCisJCQllcnJvciA9IHBhZ2Vj
YWNoZV93cml0ZV9lbmQoYmFja2ZpbGUsIG1hcHBpbmcsIDAsIGxlbiwNCisJ
CQkJCWxlbiwgYmFja3BhZ2UsIGZzZGF0YSk7DQorCQkJaWYgKGVycm9yID4g
MCkNCisJCQkJZXJyb3IgPSAwOw0KIAkJfQ0KIAkJaWYgKGVycm9yID09IEFP
UF9UUlVOQ0FURURfUEFHRSkgew0KLQkJCXBhZ2VfY2FjaGVfcmVsZWFzZShi
YWNrcGFnZSk7DQogCQkJY29udGludWU7DQogCQl9DQogCX0gd2hpbGUgKDAp
Ow0KIA0KIAlvZmZzZXQgPSBwYWdlX29mZnNldChiYWNrcGFnZSk7DQotCXVu
bG9ja19wYWdlKGJhY2twYWdlKTsNCi0JcGFnZV9jYWNoZV9yZWxlYXNlKGJh
Y2twYWdlKTsNCiANCiAJaWYgKGVycm9yKQ0KIAkJcHJpbnRrKCJubnBmc193
cml0ZV9iYWNrcGFnZTogRUlPXG4iKTsNCiAjaWZkZWYgTk5QRlNfU0FGRV9T
WU5DDQogCWVsc2UNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMiw2LDMyKQ0KIAkJKHZvaWQpc3luY19wYWdlX3JhbmdlKG1h
cHBpbmctPmhvc3QsIG1hcHBpbmcsIG9mZnNldCwgbGVuKTsNCisjZWxzZQ0K
KwkJKHZvaWQpZmlsZW1hcF93cml0ZV9hbmRfd2FpdF9yYW5nZShtYXBwaW5n
LCBvZmZzZXQsIG9mZnNldCArIGxlbiAtIDEpOw0KKyNlbmRpZg0KICNlbmRp
Zg0KIAkNCiAJcmV0dXJuIGVycm9yOw0KQEAgLTE2ODksMTMgKzE5NjgsOSBA
QCBubnBmc19yZWFkX2JhY2twYWdlKHN0cnVjdCBwYWdlICpwYWdlLCBzDQog
CXN0cnVjdCBwYWdlICpiYWNrcGFnZTsNCiAJdW5zaWduZWQgbG9uZyBvZmZz
ZXQ7DQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVS
U0lPTigyLDYsMTgpDQorCSh2b2lkKW9mZnNldDsNCisNCiAJYmFja3BhZ2Ug
PSByZWFkX21hcHBpbmdfcGFnZShtYXBwaW5nLCBuLCBiYWNrZmlsZSk7DQot
I2Vsc2UNCi0JYmFja3BhZ2UgPSByZWFkX2NhY2hlX3BhZ2UobWFwcGluZywg
biwNCi0JCQkJICAgKGZpbGxlcl90ICopbWFwcGluZy0+YV9vcHMtPnJlYWRw
YWdlLA0KLQkJCQkgICBiYWNrZmlsZSk7DQotI2VuZGlmDQogCWlmICghSVNf
RVJSKGJhY2twYWdlKSkgew0KIAkJd2FpdF9vbl9wYWdlX2xvY2tlZChiYWNr
cGFnZSk7DQogDQpAQCAtMTg0MiwxMSArMjExNywxNyBAQCBubnBmc19wcmVw
YXJlX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBzDQogDQogCWlmIChtb2Rz
aXplID4gaV9zaXplX3JlYWQoaW5vZGUpKSB7DQogCQlpbnQgZXJyb3I7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOCww
KQ0KIAkJZXJyb3IgPSB2bXRydW5jYXRlKGlub2RlLCBtb2RzaXplKTsNCisj
ZWxzZQ0KKwkJZXJyb3IgPSBpbm9kZV9uZXdzaXplX29rKGlub2RlLCBtb2Rz
aXplKTsNCisJCWlmKCFlcnJvcikNCisJCQl0cnVuY2F0ZV9zZXRzaXplKGlu
b2RlLCBtb2RzaXplKTsNCisjZW5kaWYNCiAJCWlmIChlcnJvcikgew0KIAkJ
CXByaW50aygibm5wZnNfcHJlcGFyZV93cml0ZTogdHJ1bmNhdGUoJWxsdSkg
LT4gJWRcbiIsDQogCQkJICAgICAgIG1vZHNpemUsIC1lcnJvcik7DQotCQkJ
QlVHKCk7IC8qIFhYWCBub3QgY29ycmVjdCAqLw0KKwkJCS8qQlVHKCk7Ki8g
LyogWFhYIG5vdCBjb3JyZWN0ICovDQogCQl9DQogCX0NCiANCkBAIC0xODcy
LDQ0ICsyMTUzLDExOCBAQCBubnBmc19wcmVwYXJlX3dyaXRlKHN0cnVjdCBm
aWxlICpmaWxlLCBzDQogCXJldHVybiByZXQ7DQogfQ0KIA0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIHN0
YXRpYyBpbnQNCi1ubnBmc19jb21taXRfd3JpdGUoc3RydWN0IGZpbGUgKmZp
bGUsIHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25l
ZCB0bykNCitubnBmc193cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwg
c3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBwb3MsDQor
dW5zaWduZWQgbGVuLCB1bnNpZ25lZCBmbGFncywgc3RydWN0IHBhZ2UgKipw
YWdlcCwgdm9pZCAqKmZzZGF0YSkNCiB7DQotICAgIHN0cnVjdCBpbm9kZSAq
aW5vZGUgPSBwYWdlLT5tYXBwaW5nLT5ob3N0Ow0KLSAgICBsb2ZmX3QgcG9z
ID0gKChsb2ZmX3QpcGFnZS0+aW5kZXggPDwgUEFHRV9DQUNIRV9TSElGVCkg
KyB0bzsNCisJc3RydWN0IHBhZ2UgKnBhZ2U7DQorCXBnb2ZmX3QgaW5kZXg7
DQorCXVuc2lnbmVkIGZyb207DQorCWludCByZXQgPSAwOw0KIA0KLSAgICBp
ZiAocG9zID4gaW5vZGUtPmlfc2l6ZSkgew0KLQlpX3NpemVfd3JpdGUoaW5v
ZGUsIHBvcyk7DQorCWluZGV4ID0gcG9zID4+IFBBR0VfQ0FDSEVfU0hJRlQ7
DQorCWZyb20gPSBwb3MgJiAoUEFHRV9DQUNIRV9TSVpFIC0gMSk7DQogDQot
CXNwaW5fbG9jaygmaW5vZGUtPmlfbG9jayk7DQotCWlub2RlLT5pX2Jsb2Nr
cyA9IChwb3MgKyBJX0JMT0NLU19VTklUIC0gMSkgPj4gSV9CTE9DS1NfQklU
UzsNCi0Jc3Bpbl91bmxvY2soJmlub2RlLT5pX2xvY2spOw0KLSAgICB9DQot
ICAgIHNldF9wYWdlX2RpcnR5KHBhZ2UpOw0KKwlwYWdlID0gZ3JhYl9jYWNo
ZV9wYWdlX3dyaXRlX2JlZ2luKG1hcHBpbmcsIGluZGV4LCBmbGFncyk7DQor
CWlmICghcGFnZSkNCisJCXJldHVybiAtRU5PTUVNOw0KKw0KKwkqcGFnZXAg
PSBwYWdlOw0KKw0KKwlyZXQgPSBubnBmc19wcmVwYXJlX3dyaXRlKGZpbGUs
IHBhZ2UsIGZyb20sIGZyb20gKyBsZW4pOw0KKwlpZiAocmV0KSB7DQorCQl1
bmxvY2tfcGFnZShwYWdlKTsNCisJCXBhZ2VfY2FjaGVfcmVsZWFzZShwYWdl
KTsNCisJfQ0KIA0KKwlyZXR1cm4gcmV0Ow0KK30NCisjZW5kaWYNCisNCisv
KiBYWFggd2UgdXNlIHRoZSBzeXN0ZW0gcHJvdmlkZWQgc2ltcGxlX2NvbW1p
dF93cml0ZSBpbnN0ZWFkIHNvIHRoaXMgZnVuY3Rpb24gaXMgdW51c2VkIGZv
ciBub3cgKi8NCiAjaWYgMA0KLSAgICB7DQotCWNoYXIgKmFkZHI7DQotCWtt
YXAocGFnZSk7DQotCWFkZHIgPSBwYWdlX2FkZHJlc3MocGFnZSk7DQotCU5O
UEZTREVCKFhERUJWTk9QUywgKCJubnBmc19jb21taXRfd3JpdGUoJXApOiAl
eCV4JXgleFxuIiwNCitzdGF0aWMgaW50DQorbm5wZnNfY29tbWl0X3dyaXRl
KHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgcGFnZSAqcGFnZSwNCisJCSAg
IHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvKQ0KK3sNCisJc3RydWN0IGlu
b2RlICppbm9kZSA9IHBhZ2UtPm1hcHBpbmctPmhvc3Q7DQorCWxvZmZfdCBw
b3MgPSAoKGxvZmZfdClwYWdlLT5pbmRleCA8PCBQQUdFX0NBQ0hFX1NISUZU
KSArIHRvOw0KKw0KKwlpZiAoIVBhZ2VVcHRvZGF0ZShwYWdlKSkNCisJCVNl
dFBhZ2VVcHRvZGF0ZShwYWdlKTsNCisNCisJaWYgKHBvcyA+IGlub2RlLT5p
X3NpemUpIHsNCisJCWlfc2l6ZV93cml0ZShpbm9kZSwgcG9zKTsNCisNCisJ
CXNwaW5fbG9jaygmaW5vZGUtPmlfbG9jayk7DQorCQlpbm9kZS0+aV9ibG9j
a3MgPSAocG9zICsgSV9CTE9DS1NfVU5JVCAtIDEpID4+IElfQkxPQ0tTX0JJ
VFM7DQorCQlzcGluX3VubG9jaygmaW5vZGUtPmlfbG9jayk7DQorCX0NCisJ
c2V0X3BhZ2VfZGlydHkocGFnZSk7DQorDQorI2lmIDANCisJew0KKwkgICAg
Y2hhciAqYWRkcjsNCisJICAgIGttYXAocGFnZSk7DQorCSAgICBhZGRyID0g
cGFnZV9hZGRyZXNzKHBhZ2UpOw0KKwkgICAgTk5QRlNERUIoWERFQlZOT1BT
LCAoIm5ucGZzX2NvbW1pdF93cml0ZSglcCk6ICV4JXgleCV4XG4iLA0KIAkJ
CSAgICAgZmlsZS0+Zl9tYXBwaW5nLT5ob3N0LCANCiAJCQkgICAgIGFkZHJb
MF0sIGFkZHJbMV0sIGFkZHJbMl0sIGFkZHJbM10pKTsNCi0Ja3VubWFwKHBh
Z2UpOw0KLSAgICB9DQorCSAgICBrdW5tYXAocGFnZSk7DQorCX0NCiAjZW5k
aWYNCi0gICAgDQotICAgIHJldHVybiAwOw0KKyANCisJcmV0dXJuIDA7DQog
fQ0KKyNlbmRpZg0KIA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VS
TkVMX1ZFUlNJT04oMiw2LDE4KQ0KLWNvbnN0DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQorLyogWFhYIHdl
IHVzZSB0aGUgc3lzdGVtIHByb3ZpZGVkIHNpbXBsZV93cml0ZV9lbmQgaW5z
dGVhZCBzbyB0aGlzIGZ1bmN0aW9uIGlzIHVudXNlZCBmb3Igbm93ICovDQor
I2lmIDANCitzdGF0aWMgaW50DQorbm5wZnNfd3JpdGVfZW5kKHN0cnVjdCBm
aWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgbG9m
Zl90IHBvcywNCisJCXVuc2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVkLCBz
dHJ1Y3QgcGFnZSAqcGFnZSwgdm9pZCAqZnNkYXRhKQ0KK3sNCisJdW5zaWdu
ZWQgZnJvbSA9IHBvcyAmIChQQUdFX0NBQ0hFX1NJWkUgLSAxKTsNCisNCisJ
LyogemVybyB0aGUgc3RhbGUgcGFydCBvZiB0aGUgcGFnZSBpZiB3ZSBkaWQg
YSBzaG9ydCBjb3B5ICovDQorCWlmIChjb3BpZWQgPCBsZW4pIHsNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQor
CQl2b2lkICprYWRkciA9IGttYXBfYXRvbWljKHBhZ2UsIEtNX1VTRVIwKTsN
CisjZWxzZQ0KKwkJdm9pZCAqa2FkZHIgPSBrbWFwX2F0b21pYyhwYWdlKTsN
CisjZW5kaWYNCisJCW1lbXNldChrYWRkciArIGZyb20gKyBjb3BpZWQsIDAs
IGxlbiAtIGNvcGllZCk7DQorCQlmbHVzaF9kY2FjaGVfcGFnZShwYWdlKTsN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2
LDApDQorCQlrdW5tYXBfYXRvbWljKGthZGRyLCBLTV9VU0VSMCk7DQorI2Vs
c2UNCisJCWt1bm1hcF9hdG9taWMoa2FkZHIpOw0KKyNlbmRpZg0KKwl9DQor
DQorCW5ucGZzX2NvbW1pdF93cml0ZShmaWxlLCBwYWdlLCBmcm9tLCBmcm9t
ICsgY29waWVkKTsNCisNCisJdW5sb2NrX3BhZ2UocGFnZSk7DQorCXBhZ2Vf
Y2FjaGVfcmVsZWFzZShwYWdlKTsNCisNCisJcmV0dXJuIGNvcGllZDsNCit9
DQorI2VuZGlmDQogI2VuZGlmDQorDQorY29uc3QNCiBzdHJ1Y3QgYWRkcmVz
c19zcGFjZV9vcGVyYXRpb25zIG5ucGZzX2FvcHMgPSB7DQogCS5yZWFkcGFn
ZSA9IG5ucGZzX3JlYWRwYWdlLA0KIAkud3JpdGVwYWdlID0gbm5wZnNfd3Jp
dGVwYWdlLA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigyLDYsMjgpDQogCS5wcmVwYXJlX3dyaXRlID0gbm5wZnNfcHJlcGFy
ZV93cml0ZSwNCi0JLmNvbW1pdF93cml0ZSA9IG5ucGZzX2NvbW1pdF93cml0
ZSwNCisJLmNvbW1pdF93cml0ZSA9IHNpbXBsZV9jb21taXRfd3JpdGUsDQor
I2Vsc2UNCisJLndyaXRlX2JlZ2luID0gbm5wZnNfd3JpdGVfYmVnaW4sDQor
CS53cml0ZV9lbmQgPSBzaW1wbGVfd3JpdGVfZW5kLA0KKyNlbmRpZg0KIH07
DQogDQogLyoNCkBAIC0xOTE3LDIxICsyMjcyLDMwIEBAIHN0cnVjdCBhZGRy
ZXNzX3NwYWNlX29wZXJhdGlvbnMgbm5wZnNfYW8NCiAgKi8NCiANCiBzdHJ1
Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2ZpbGVfb3BlcmF0aW9ucyA9IHsN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx
NiwwKQ0KICAgICAuYWlvX3JlYWQJPSBubnBmc19haW9fcmVhZCwNCiAgICAg
LmFpb193cml0ZQk9IG5ucGZzX2Fpb193cml0ZSwNCisjZWxzZQ0KKyAgICAu
cmVhZF9pdGVyCT0gbm5wZnNfcmVhZF9pdGVyLA0KKyAgICAud3JpdGVfaXRl
cgk9IG5ucGZzX3dyaXRlX2l0ZXIsDQorI2VuZGlmDQogICAgIC5tbWFwCT0g
bm5wZnNfZmlsZV9tbWFwLA0KICAgICAub3Blbgk9IG5ucGZzX29wZW4sDQog
ICAgIC5mbHVzaAk9IG5ucGZzX2ZsdXNoLA0KICAgICAucmVsZWFzZQk9IG5u
cGZzX3JlbGVhc2VfZmlsZSwNCiAgICAgLmZzeW5jCT0gbm5wZnNfZnN5bmMs
DQotICAgIC5zZW5kZmlsZQk9IG5ucGZzX3NlbmRmaWxlLA0KKyAgICAuc3Bs
aWNlX3JlYWQgPSBubnBmc19zcGxpY2VfcmVhZCwNCiB9Ow0KIA0KIHN0cnVj
dCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZGVhZF9vcGVyYXRpb25zID0gew0K
IH07DQogDQogc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19kaXJfb3Bl
cmF0aW9ucyA9IHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxMSwwKQ0KICAgICAucmVhZGRpcgk9IG5ucGZzX3JlYWRk
aXIsDQorI2Vsc2UNCisgICAgLml0ZXJhdGUgICAgPSBubnBmc19pdGVyYXRl
LA0KKyNlbmRpZg0KICAgICAuZmx1c2gJPSBubnBmc19mbHVzaCwNCiB9Ow0K
IA0KQEAgLTE5NjgsNiArMjMzMiwxMCBAQCBzdHJ1Y3QgaW5vZGVfb3BlcmF0
aW9ucyBubnBmc19kZWFkX2lub2RlDQogDQogc3RydWN0IGlub2RlX29wZXJh
dGlvbnMgbm5wZnNfbGlua19pbm9kZV9vcGVyYXRpb25zID0gew0KICAgICAu
cmVhZGxpbmsgCQk9IG5ucGZzX3JlYWRsaW5rLA0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDUsMCkNCiAgICAgLmZvbGxv
d19saW5rIAk9IG5ucGZzX2ZvbGxvd19saW5rLA0KICAgICAucHV0X2xpbmsg
CQk9IHBhZ2VfcHV0X2xpbmssDQorI2Vsc2UNCisgICAgLmdldF9saW5rCQk9
IG5ucGZzX2dldF9saW5rLA0KKyNlbmRpZg0KIH07DQpkaWZmIC11cHJOIC1Y
bm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfbG9hZC5j
IGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19sb2FkLmMNCi0tLSBhcmxh
LTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYwkyMDA2LTEwLTMx
IDExOjAyOjQxLjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9ubnBm
cy9saW51eC9ubnBmc19sb2FkLmMJMjAxNi0wMS0xMyAyMDoxNDowMi4wMDAw
MDAwMDAgKzAxMDANCkBAIC01NCw3ICs1NCwxMSBAQCBleHRlcm4gc3RydWN0
IGZpbGVfb3BlcmF0aW9ucyBubnBmc19mb3BzDQogDQogc3RydWN0IGZpbGVf
c3lzdGVtX3R5cGUgbm5wZnNfZnNfdHlwZSA9IHsNCiAgICAgICAgbmFtZTog
ICAgICAgICAgICJubnBmcyIsDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAgICAgZ2V0X3NiOiAgICAg
ICAgIG5ucGZzX2dldF9zYiwNCisjZWxzZQ0KKyAgICAgICBtb3VudDogICAg
ICAgICAgbm5wZnNfbW91bnQsDQorI2VuZGlmDQogICAgICAgIGtpbGxfc2I6
ICAgICAgICBraWxsX2xpdHRlcl9zdXBlciwNCiAgICAgICAgb3duZXI6ICAg
ICAgICAgIFRISVNfTU9EVUxFLA0KIH07DQpkaWZmIC11cHJOIC1Ybm9kaWZm
IGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfbWVzc2FnZS5jIGFy
bGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMNCi0tLSBhcmxh
LTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYwkyMDA3LTAx
LTA5IDE3OjMzOjMxLjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9u
bnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAxNi0wMS0yNCAxODo1Mjoy
OC4wMDAwMDAwMDAgKzAxMDANCkBAIC00NSw3ICs0NSw3IEBADQogI2luY2x1
ZGUgPGxpbnV4L21vdW50Lmg+DQogDQogI2lmZGVmIFJDU0lEDQotUkNTSUQo
IiRJZDogbm5wZnNfbWVzc2FnZS5jLHYgMS4xNDMuMi4xIDIwMDcvMDEvMDkg
MTY6MzM6MzEgdG9sIEV4cCAkIik7DQorUkNTSUQoIiRJZDogbm5wZnNfbWVz
c2FnZS5jLHYgMS4xNDUgMjAxMC8wOC8wOCAyMDo0MzowNSB0b2wgRXhwICQi
KTsNCiAjZW5kaWYNCiANCiBzdGF0aWMgdm9pZA0KQEAgLTU1LDkgKzU1LDE1
IEBAIHN0YXRpYyB2b2lkDQogbm5wZnNfZF9yZW1vdmUoc3RydWN0IGRlbnRy
eSAqZGVudHJ5KQ0KIHsNCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBm
c19kX3JlbW92ZSAlcFxuIiwgZGVudHJ5KSk7DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAgICAgc3Bpbl9s
b2NrKCZkY2FjaGVfbG9jayk7DQogICAgIGRnZXRfbG9ja2VkKGRlbnRyeSk7
DQogICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisg
ICAgc3Bpbl9sb2NrKCZkZW50cnktPmRfbG9jayk7DQorICAgIGRnZXRfZGxv
Y2soZGVudHJ5KTsNCisgICAgc3Bpbl91bmxvY2soJmRlbnRyeS0+ZF9sb2Nr
KTsNCisjZW5kaWYNCiAgICAgZF9kcm9wKGRlbnRyeSk7DQogICAgIGRwdXQo
ZGVudHJ5KTsNCiB9DQpAQCAtMTIxLDcgKzEyNywxMSBAQCBubnBmc19tZXNz
YWdlX2luc3RhbGxub2RlKHN0cnVjdCBubnBmcyAqDQogICAgIHN0cnVjdCBp
bm9kZSAqZGksICppbm9kZTsNCiAgICAgc3RydWN0IGRlbnRyeSAqcGFyZW50
ID0gTlVMTDsNCiAgICAgc3RydWN0IHFzdHIgc3FzdHI7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBz
dHJ1Y3QgbGlzdF9oZWFkICphbGlhczsNCisjZWxpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisgICAgc3RydWN0IGhs
aXN0X25vZGUgKmFsaWFzOw0KKyNlbmRpZg0KICAgICANCiAgICAgTk5QRlNE
RUIoWERFQk1TRywgKCJubnBmc19tZXNzYWdlX2luc3RhbGxub2RlXG4iKSk7
DQogICAgIA0KQEAgLTE3NiwxMiArMTg2LDI2IEBAIG5ucGZzX21lc3NhZ2Vf
aW5zdGFsbG5vZGUoc3RydWN0IG5ucGZzICoNCiAgICAgICoNCiAgICAgICov
DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDYsMCkNCiAgICAgYWxpYXMgPSBkaS0+aV9kZW50cnkubmV4dDsN
CiAgICAgd2hpbGUgKGFsaWFzICE9ICZkaS0+aV9kZW50cnkpIHsNCiAJcGFy
ZW50ID0gbGlzdF9lbnRyeShhbGlhcywgc3RydWN0IGRlbnRyeSwgZF9hbGlh
cyk7DQotCXNwaW5fbG9jaygmZGNhY2hlX2xvY2spOw0KLQlkZ2V0X2xvY2tl
ZChwYXJlbnQpOw0KLQlzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNl
bGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSww
KQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShwYXJlbnQsIGFsaWFzLCAm
ZGktPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VsaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBobGlzdF9m
b3JfZWFjaF9lbnRyeShwYXJlbnQsICZkaS0+aV9kZW50cnksIGRfYWxpYXMp
IHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShwYXJlbnQs
ICZkaS0+aV9kZW50cnksIGRfdS5kX2FsaWFzKSB7DQorI2VuZGlmDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkN
CisgICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQorICAgIGRnZXRfbG9j
a2VkKHBhcmVudCk7DQorICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7
DQorI2Vsc2UNCisgICAgc3Bpbl9sb2NrKCZwYXJlbnQtPmRfbG9jayk7DQor
ICAgIGRnZXRfZGxvY2socGFyZW50KTsNCisgICAgc3Bpbl91bmxvY2soJnBh
cmVudC0+ZF9sb2NrKTsNCisjZW5kaWYNCiAJZGVudHJ5ID0gZF9sb29rdXAo
cGFyZW50LCAmc3FzdHIpOw0KIAlOTlBGU0RFQihYREVCTVNHLA0KIAkJICgi
bm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZTogYWxpYXMgJXAsIGxvb2t1cCAl
cFxuIiwNCkBAIC0yMzMsNyArMjU3LDkgQEAgbm5wZnNfbWVzc2FnZV9pbnN0
YWxsbm9kZShzdHJ1Y3Qgbm5wZnMgKg0KIAkNCiAJZHB1dChkZW50cnkpOw0K
IAlkZW50cnkgPSBOVUxMOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDYsMCkNCiAJYWxpYXMgPSBhbGlhcy0+bmV4dDsN
CisjZW5kaWYNCiAJZHB1dChwYXJlbnQpOw0KICAgICB9DQogICAgIE5OUEZT
REVCKFhERUJNU0csICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZTogZG9u
ZSBpbnN0YWxsaW5nXG4iKSk7DQpAQCAtMjY4LDcgKzI5NCwxMyBAQCBubnBm
c19tZXNzYWdlX2luc3RhbGxhdHRyKHN0cnVjdCBubnBmcyAqDQogICAgIH0N
CiANCiAgICAgaW5vZGUgPSBYTk9ERV9UT19WTk9ERSh0KTsNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAg
IGRlbnRyeSA9IGxpc3RfZW50cnkoaW5vZGUtPmlfZGVudHJ5Lm5leHQsIHN0
cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgZGVudHJ5ID0g
aGxpc3RfZW50cnkoaW5vZGUtPmlfZGVudHJ5LmZpcnN0LCBzdHJ1Y3QgZGVu
dHJ5LCBkX2FsaWFzKTsNCisjZWxzZQ0KKyAgICBkZW50cnkgPSBobGlzdF9l
bnRyeShpbm9kZS0+aV9kZW50cnkuZmlyc3QsIHN0cnVjdCBkZW50cnksIGRf
dS5kX2FsaWFzKTsNCisjZW5kaWYNCiAgICAgDQogICAgIE5OUEZTREVCKFhE
RUJNU0csICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsYXR0ciBuYW1lOiVzXG4i
LA0KIAkJICAgICAgIGRlbnRyeS0+ZF9uYW1lLm5hbWUpKTsNCkBAIC0zOTYs
MTcgKzQyOCwzNSBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxkYXRhKHN0cnVj
dCBubnBmcyAqDQogc3RhdGljIHZvaWQNCiBjbGVhcl9hbGxfY2hpbGRyZW4g
KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBwYXJlbnQpDQogew0KKyAgICBz
dHJ1Y3QgZGVudHJ5ICpkZW50cnk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBzdHJ1Y3QgbGlzdF9o
ZWFkICphbGlhczsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDksMCkNCisgICAgc3RydWN0IGhsaXN0X25vZGUgKmFs
aWFzOw0KKyNlbmRpZg0KIA0KICBhZ2FpbjoNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KICAgICBzcGluX2xv
Y2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAgICBzcGluX2xvY2soJmlu
b2RlLT5pX2xvY2spOw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgYWxpYXMgPSBpbm9k
ZS0+aV9kZW50cnkubmV4dDsNCiAgICAgd2hpbGUgKGFsaWFzICE9ICZpbm9k
ZS0+aV9kZW50cnkpIHsNCi0Jc3RydWN0IGRlbnRyeSAqZGVudHJ5Ow0KKyNl
bGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSww
KQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksIGFsaWFzLCAm
aW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VsaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBobGlz
dF9mb3JfZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRf
YWxpYXMpIHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShk
ZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRfdS5kX2FsaWFzKSB7DQorI2Vu
ZGlmDQogCXN0cnVjdCBsaXN0X2hlYWQgKnN1YmRpcnM7DQogCXN0cnVjdCBu
bnBmc19kZW50cnlfZGF0YSAqeGQ7DQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAJZGVudHJ5ID0gbGlz
dF9lbnRyeShhbGlhcywgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQorI2Vu
ZGlmDQogCWlmIChkZW50cnkgPT0gTlVMTCkgew0KIAkgICAgcHJpbnRrKEtF
Uk5fRU1FUkcgIk5OUEZTIFBhbmljOiBkZW50cnkgaW4gYWxpYXMgbGlzdCBp
cyBudWxsXG4iKTsNCiAJICAgIGJyZWFrOw0KQEAgLTQyMiw3ICs0NzIsMTEg
QEAgY2xlYXJfYWxsX2NoaWxkcmVuIChzdHJ1Y3QgaW5vZGUgKmlub2RlLA0K
IAlzdWJkaXJzID0gZGVudHJ5LT5kX3N1YmRpcnMubmV4dDsNCiAJd2hpbGUg
KHN1YmRpcnMgIT0gJmRlbnRyeS0+ZF9zdWJkaXJzKSB7DQogCSAgICBzdHJ1
Y3QgbGlzdF9oZWFkICp0bXAgPSBzdWJkaXJzOw0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCSAgICBzdHJ1
Y3QgZGVudHJ5ICpjaGlsZCA9IGxpc3RfZW50cnkodG1wLCBzdHJ1Y3QgZGVu
dHJ5LCBkX3UuZF9jaGlsZCk7DQorI2Vsc2UNCisJICAgIHN0cnVjdCBkZW50
cnkgKmNoaWxkID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRf
Y2hpbGQpOw0KKyNlbmRpZg0KIAkgICAgc3ViZGlycyA9IHRtcC0+bmV4dDsN
CiAJICAgIE5OUEZTREVCKFhERUJNU0csICgiY2xlYXJfYWxsX2NoaWxkcmVu
IGNoaWxkOiAlLipzIGlub2RlOiAlcC8lcCAiDQogCQkJICAgICAgICJkY291
bnQ6ICVkIGFsaWFzZXM6XG4iLA0KQEAgLTQ0MiwxNCArNDk2LDI0IEBAIGNs
ZWFyX2FsbF9jaGlsZHJlbiAoc3RydWN0IGlub2RlICppbm9kZSwNCiANCiAJ
ICAgIC8qIFRocm93IGltbWVkaWF0ZWx5ICovDQogCSAgICBpZiAobm5wZnNf
ZGNvdW50KGNoaWxkKSA9PSAwKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAJICAgICAgICBzcGluX3Vu
bG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorCSAgICAgICAgc3Bpbl91
bmxvY2soJmlub2RlLT5pX2xvY2spOw0KKyNlbmRpZg0KIAkJbm5wZnNfZF9y
ZW1vdmUoY2hpbGQpOw0KIAkJZ290byBhZ2FpbjsNCiAJICAgIH0NCiAJfQ0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs
MCkNCiAJYWxpYXMgPSBhbGlhcy0+bmV4dDsNCisjZW5kaWYNCiAgICAgfQ0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs
MzgpDQogICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UN
CisgICAgc3Bpbl91bmxvY2soJmlub2RlLT5pX2xvY2spOw0KKyNlbmRpZg0K
IH0NCiANCiBzdGF0aWMgdm9pZA0KQEAgLTYwNSwxMiArNjY5LDEwIEBAIGdj
X2Jsb2NrKHN0cnVjdCBubnBmcyAqbm5wZnNwLA0KICAgICB9DQogDQogICAg
IGlmICghbm5wZnNfYmxvY2tfaGF2ZV9wKHhuLCBvZmZzZXQpKSB7DQotI2lm
IDAgICAvKiBoYXBwZW5zIHdoZW4gZGFlbW9uIHNlbmRzIHNldmVyYWwgbWVz
c2FnZXMgZm9yIHNhbWUgYmxvY2sgKi8NCiAJcHJpbnRrKEtFUk5fRU1FUkcg
Ik5OUEZTL2djX2Jsb2NrOiAiDQogCSAgICAgICAiRU5PRU5UICglZCwlZCwl
ZCwlZCkgMHglbGx4XG4iLCANCiAJICAgICAgIHhuLT5oYW5kbGUuYSwgeG4t
PmhhbmRsZS5iLCB4bi0+aGFuZGxlLmMsIHhuLT5oYW5kbGUuZCwgDQogCSAg
ICAgICAodW5zaWduZWQgbG9uZyBsb25nKW9mZnNldCk7DQotI2VuZGlmDQog
CXJldHVybiAtRU5PRU5UOw0KICAgICB9DQogDQpAQCAtNzIxLDEyICs3ODMs
MjIgQEAgbm5wZnNfbWVzc2FnZV92ZXJzaW9uKHN0cnVjdCBubnBmcyAqbm5w
Zg0KIA0KICAgICAvKiBzYW5pdHkgY2hlY2sgYmVmb3JlIHdlIGxvb2sgYXQg
aXQgKi8NCiAgICAgaWYgKHNpemUgPT0gc2l6ZW9mKCptZXNzYWdlKSAmJiBt
ZXNzYWdlLT52ZXJzaW9uID09IE5OUEZTX1ZFUlNJT04pIHsNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAlz
dHJ1Y3QgbmFtZWlkYXRhIG5kOw0KKyNlbHNlDQorCXN0cnVjdCBwYXRoIHBh
dGg7DQorI2VuZGlmDQogCWludCBlcnJvcjsNCiANCiAJdWludDY0X3QgYmxv
Y2tzaXplID0gbWVzc2FnZS0+YmxvY2tzaXplOw0KIA0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogCWVycm9y
ID0gcGF0aF9sb29rdXAoIi4iLCAwLCAmbmQpOw0KKyNlbGlmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJZXJyb3Ig
PSBrZXJuX3BhdGgoIi4iLCAwLCAmbmQucGF0aCk7DQorI2Vsc2UNCisJZXJy
b3IgPSBrZXJuX3BhdGgoIi4iLCAwLCAmcGF0aCk7DQorI2VuZGlmDQogCWlm
IChlcnJvcikgew0KIAkgICAgLyoNCiAJICAgICAqIEJhZCBjYWNoZSByb290
LCBqdXN0IHJldHVybi4NCkBAIC03MzcsMTIgKzgwOSwyMyBAQCBubnBmc19t
ZXNzYWdlX3ZlcnNpb24oc3RydWN0IG5ucGZzICpubnBmDQogCQkgICAibm5w
ZnNfbWVzc2FnZV92ZXJzaW9uIGZhaWxlZCBwYXRoX2xvb2t1cCwgIg0KIAkJ
ICAgImVycm5vOiAlZFxuIiwgZXJyb3IpOw0KIAl9IGVsc2Ugew0KLQkgICAg
bm5wZnNwLT5jYWNoZXJvb3QgPSBtbnRnZXQobmQubW50KTsNCi0JICAgIG5u
cGZzcC0+Y2FjaGVkaXIgPSBkZ2V0KG5kLmRlbnRyeSk7DQotCSAgICBwYXRo
X3JlbGVhc2UoJm5kKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMywxOSwwKQ0KKwkgICAgbm5wZnNwLT5jYWNoZXJvb3Qg
PSBtbnRnZXQobmQucGF0aC5tbnQpOw0KKwkgICAgbm5wZnNwLT5jYWNoZWRp
ciA9IGRnZXQobmQucGF0aC5kZW50cnkpOw0KKwkgICAgcGF0aF9wdXQoJm5k
LnBhdGgpOw0KKyNlbHNlDQorCSAgICBubnBmc3AtPmNhY2hlcm9vdCA9IG1u
dGdldChwYXRoLm1udCk7DQorCSAgICBubnBmc3AtPmNhY2hlZGlyID0gZGdl
dChwYXRoLmRlbnRyeSk7DQorCSAgICBwYXRoX3B1dCgmcGF0aCk7DQorI2Vu
ZGlmDQogCSAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMiw2LDI5KQ0KIAkgICAgbm5wZnNwLT51aWQgPSBjdXJyZW50
LT5mc3VpZDsNCiAJICAgIG5ucGZzcC0+Z2lkID0gY3VycmVudC0+ZnNnaWQ7
DQorI2Vsc2UNCisgICAgICAgICAgICBubnBmc3AtPnVpZCA9IGN1cnJlbnRf
ZnN1aWQoKTsNCisgICAgICAgICAgICBubnBmc3AtPmdpZCA9IGN1cnJlbnRf
ZnNnaWQoKTsNCisjZW5kaWYNCiANCiAJICAgIC8qIFhYWCB3ZSBzaG91bGQg
dmFsaWRhdGUgdGhlc2UgdmFsdWVzICovDQogCSAgICBubnBmc19ibG9ja3Np
emUgPSBibG9ja3NpemU7DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45
MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfbm9kZS5jIGFybGEtMC45MC9ubnBm
cy9saW51eC9ubnBmc19ub2RlLmMNCi0tLSBhcmxhLTAuOTAtb2xkL25ucGZz
L2xpbnV4L25ucGZzX25vZGUuYwkyMDA3LTAxLTAzIDE0OjUyOjAyLjAwMDAw
MDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19u
b2RlLmMJMjAxNi0wNS0wNiAxNzowMToxMC4wMDAwMDAwMDAgKzAyMDANCkBA
IC0xMzIsNyArMTMyLDEyIEBAIG5ucGZzX3NldHNpemUoc3RydWN0IGlub2Rl
ICppbm9kZSwgdWludDYNCiAJcHJpbnRrKCJubnBmc19zZXRzaXplOiB0cnVu
Y2F0aW5nIEAweCVsbHVcbiIsDQogCSAgICAgICAodW5zaWduZWQgbG9uZyBs
b25nKXNpemUpOw0KICNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDgsMCkNCiAJdm10cnVuY2F0ZShpbm9kZSwg
c2l6ZSk7IC8qIFhYWCByZXR2YWwgKi8NCisjZWxzZQ0KKwlpZighaW5vZGVf
bmV3c2l6ZV9vayhpbm9kZSwgc2l6ZSkpDQorCSAgICB0cnVuY2F0ZV9zZXRz
aXplKGlub2RlLCBzaXplKTsNCisjZW5kaWYNCiAJbm5wZnNfYmxvY2tfdHJ1
bmNhdGUoeG4sIHNpemUpOw0KICAgICB9DQogfQ0KQEAgLTE1MCw5ICsxNTUs
MTggQEAgbm5wZnNfYXR0cjJpbm9kZShjb25zdCBzdHJ1Y3Qgbm5wZnNfYXR0
cg0KIAlzdHJ1Y3QgdGltZXNwZWMgbm90aW1lID0gezB9Ow0KIA0KIAlpbm9k
ZS0+aV9tb2RlICAgPSAwOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDE0LDApDQogCWlub2RlLT5pX3VpZCAgICA9IDA7
DQogCWlub2RlLT5pX2dpZCAgICA9IDA7DQorI2Vsc2UNCisJaW5vZGUtPmlf
dWlkICAgID0gS1VJRFRfSU5JVCgwKTsNCisJaW5vZGUtPmlfZ2lkICAgID0g
S0dJRFRfSU5JVCgwKTsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywyLDApDQogCWlub2RlLT5pX25saW5r
ICA9IDE7DQorI2Vsc2UNCisJc2V0X25saW5rKGlub2RlLCAxKTsNCisjZW5k
aWYNCiAJaW5vZGUtPmlfYXRpbWUgID0gbm90aW1lOw0KIAlpbm9kZS0+aV9t
dGltZSAgPSBub3RpbWU7DQogCWlub2RlLT5pX2N0aW1lICA9IG5vdGltZTsN
CkBAIC0xNjksNyArMTgzLDExIEBAIG5ucGZzX2F0dHIyaW5vZGUoY29uc3Qg
c3RydWN0IG5ucGZzX2F0dHINCiAgICAgaWYgKFhBX1ZBTElEX0dJRChhdHRy
KSkNCiAJaW5vZGUtPmlfZ2lkICAgID0gYXR0ci0+eGFfZ2lkOw0KICAgICBp
ZiAoWEFfVkFMSURfTkxJTksoYXR0cikpDQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMiwwKQ0KIAlpbm9kZS0+aV9ubGlu
ayAgPSBhdHRyLT54YV9ubGluazsNCisjZWxzZQ0KKwlzZXRfbmxpbmsoaW5v
ZGUsIGF0dHItPnhhX25saW5rKTsNCisjZW5kaWYNCiAgICAgDQogICAgIGlm
IChYQV9WQUxJRF9TSVpFKGF0dHIpKSB7DQogCW5ucGZzX3NldHNpemUoaW5v
ZGUsIGF0dHItPnhhX3NpemUpOw0KQEAgLTI2Niw2ICsyODQsOSBAQCBubnBm
c19maWxsX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0DQogCWlub2Rl
LT5pX29wICA9ICZubnBmc19saW5rX2lub2RlX29wZXJhdGlvbnM7DQogCWlu
b2RlLT5pX2ZvcCA9ICZubnBmc19saW5rX29wZXJhdGlvbnM7DQogCWlub2Rl
LT5pX21hcHBpbmctPmFfb3BzID0gJm5ucGZzX2FvcHM7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTig0LDUsMCkNCisJaW5v
ZGVfbm9oaWdobWVtKGlub2RlKTsNCisjZW5kaWYNCiAgICAgfSBlbHNlIHsN
CiAJaW5vZGUtPmlfb3AgID0gJm5ucGZzX2RlYWRfaW5vZGVfb3BlcmF0aW9u
czsNCiAJaW5vZGUtPmlfZm9wID0gJm5ucGZzX2RlYWRfb3BlcmF0aW9uczsN
CkBAIC01MTAsMTIgKzUzMSwyNCBAQCBubnBmc19oYXNfcGFnKGNvbnN0IHN0
cnVjdCBubnBmc19ub2RlICp4DQogaW50DQogbm5wZnNfbm9kZV91c2Vycyhz
dHJ1Y3QgaW5vZGUgKmlub2RlKQ0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHN0cnVjdCBsaXN0
X2hlYWQgKnBvczsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAq
cG9zOw0KKyNlbmRpZg0KICAgICBpbnQgdXNlcnMgPSAwOw0KICAgICANCiAg
ICAgLyogWFhYIHRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIHByb3RlY3RlZCBz
b21laG93ICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsNiwwKQ0KICAgICBsaXN0X2Zvcl9lYWNoKHBvcywgJmlub2Rl
LT5pX2RlbnRyeSkgew0KKyNlbHNlDQorICAgIGhsaXN0X2Zvcl9lYWNoKHBv
cywgJmlub2RlLT5pX2RlbnRyeSkgew0KKyNlbmRpZg0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCXN0cnVj
dCBkZW50cnkgKmRlbnRyeSA9IGxpc3RfZW50cnkocG9zLCBzdHJ1Y3QgZGVu
dHJ5LCBkX2FsaWFzKTsNCisjZWxzZQ0KKwlzdHJ1Y3QgZGVudHJ5ICpkZW50
cnkgPSBsaXN0X2VudHJ5KHBvcywgc3RydWN0IGRlbnRyeSwgZF91LmRfYWxp
YXMpOw0KKyNlbmRpZg0KIAlpZiAobm5wZnNfZGNvdW50KGRlbnRyeSkgPiAx
KQ0KIAkgICAgdXNlcnMrKzsNCiAgICAgfQ0KZGlmZiAtdXByTiAtWG5vZGlm
ZiBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMg
YXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMNCi0tLSBh
cmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMJMjAw
Ny0wMS0wMyAxNToyNjoyNy4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLTAu
OTAvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMuYwkyMDE2LTAyLTIwIDE5
OjQzOjQyLjAwMDAwMDAwMCArMDEwMA0KQEAgLTQyLDcgKzQyLDkgQEANCiAj
aW5jbHVkZSA8bm5wZnMvbm5wZnNfc3lzY2FsbHMuaD4NCiAjaW5jbHVkZSA8
bm5wZnMvbm5wZnNfY29tbW9uLmg+DQogI2luY2x1ZGUgPGxpbnV4L2ZpbGUu
aD4NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Miw2LDM5KQ0KICNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPg0KKyNlbmRp
Zg0KICNpbmNsdWRlIDxsaW51eC9zbXAuaD4NCiAjaW5jbHVkZSA8bGludXgv
cHJvY19mcy5oPg0KIA0KQEAgLTUwLDYgKzUyLDExIEBADQogI2luY2x1ZGUg
PGxpbnV4L3NlY3VyaXR5Lmg+DQogI2VuZGlmDQogDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDcsMCkNCisjdW5kZWYg
U1lTQ0FMTEhBQ0sNCisvKiB0aGUgbWV0aG9kIHRvIHJlYWQgJ2xvd2VyX2Jv
dW5kJyBkb2VzIG5vdCB3b3JrIG9uIGtlcm5lbCAzLjcgYW5kIGxhdGVyLCBz
ZSBubnBmc19zeXNjYWxscy1sb3NzYWdlLmMgKi8NCisjZW5kaWYNCisNCiAj
aWYgMA0KICNpZmRlZiBDT05GSUdfQ09NUEFUDQogI2luY2x1ZGUgPGxpbnV4
L2lvY3RsMzIuaD4NCkBAIC02NCw3ICs3MSw3IEBADQogI3VuZGVmIE5FRURf
VklDRUlPQ1RMMzINCiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgiJElkOiBu
bnBmc19zeXNjYWxscy5jLHYgMS4xMjIgMjAwNy8wMS8wMyAxNDoyNjoyNyB0
b2wgRXhwICQiKTsNCitSQ1NJRCgiJElkOiBubnBmc19zeXNjYWxscy5jLHYg
MS4xMjUgMjAxMC8wOC8wOCAyMDo0MzowNiB0b2wgRXhwICQiKTsNCiAjZW5k
aWYNCiANCiBzdGF0aWMgc3RydWN0IHByb2NfZGlyX2VudHJ5ICpubnBmc19w
cm9jZnNfZGlyOw0KQEAgLTgyLDEyICs4OSwyMiBAQCB0eXBlZGVmIHN0cnVj
dCBhZnNwcm9jZGF0YSB7DQogICAgIHVuc2lnbmVkIGxvbmcgc3lzY2FsbDsN
CiB9IGFmc3Byb2NkYXRhOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQogc3RhdGljIGludA0KIG5ucGZz
X3Byb2Nmc19pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmls
ZSAqZmlsZSwNCiAJCSAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxv
bmcgYXJnKTsNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNfcHJvY2Zz
X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0KKwkJICAgdW5zaWduZWQgaW50
IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOw0KKyNlbmRpZg0KIA0KIHN0YXRp
YyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX3Byb2Nmc19mb3BzID0g
ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzYpDQogICAgIC5pb2N0bCA9IG5ucGZzX3Byb2Nmc19pb2N0bCwNCisj
ZWxzZQ0KKyAgICAudW5sb2NrZWRfaW9jdGwgPSBubnBmc19wcm9jZnNfaW9j
dGwsDQorI2VuZGlmDQogfTsNCiANCiANCkBAIC0xNDcsNTMgKzE2NCw0OCBA
QCBzdGF0aWMgaW50IG5ucGZzX3NlY19yZWdpc3RlcmVkID0gMDsNCiAjZGVm
aW5lIFNFQzJQQUcocykgKG5ucGZzX3BhZ190KSh1bnNpZ25lZCBsb25nKShz
KQ0KICNkZWZpbmUgUEFHMlNFQyhwKSAodm9pZCAqKSh1bnNpZ25lZCBsb25n
KShwKQ0KIA0KLXN0YXRpYyBpbnQNCi1ubnBmc19zZWNfdGFza19hbGxvYyhz
dHJ1Y3QgdGFza19zdHJ1Y3QgKnApDQotew0KLSAgICBubnBmc19wYWdfdCBw
YWcgPSBTRUMyUEFHKGN1cnJlbnQtPnNlY3VyaXR5KTsNCi0gICAgaWYgKHBh
ZykNCi0JcC0+c2VjdXJpdHkgPSBQQUcyU0VDKHBhZyk7DQotICAgIHJldHVy
biAwOw0KLX0NCi0NCi1zdGF0aWMgdm9pZA0KLW5ucGZzX3NlY190YXNrX2Zy
ZWUoc3RydWN0IHRhc2tfc3RydWN0ICpwKQ0KLXsNCi0gICAgbm5wZnNfcGFn
X3QgcGFnID0gU0VDMlBBRyhwLT5zZWN1cml0eSk7DQotICAgIGlmIChwYWcp
DQotCXAtPnNlY3VyaXR5ID0gTlVMTDsNCi19DQotDQogc3RhdGljIG5ucGZz
X3BhZ190DQogbm5wZnNfZ2V0X3BhZ19zZWModm9pZCkNCiB7DQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQog
ICAgIG5ucGZzX3BhZ190IHBhZyA9IFNFQzJQQUcoY3VycmVudC0+c2VjdXJp
dHkpOw0KKyNlbHNlDQorICAgIG5ucGZzX3BhZ190IHBhZyA9IFNFQzJQQUco
Y3VycmVudF9zZWN1cml0eSgpKTsNCisjZW5kaWYNCiAgICAgaWYgKHBhZykN
CiAJcmV0dXJuIHBhZzsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9
IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgcmV0dXJuIGN1cnJlbnQt
PnVpZDsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDE0LDApDQorICAgIHJldHVybiBjdXJyZW50X3VpZCgpOw0KKyNl
bHNlDQorICAgIHsga3VpZF90IGt1aWQgPSBjdXJyZW50X3VpZCgpOyByZXR1
cm4ga3VpZC52YWw7IH0NCisjZW5kaWYNCiB9DQogDQogc3RhdGljIGludA0K
IG5ucGZzX3NldF9wYWdfc2VjKHZvaWQpDQogew0KICAgICBzdGF0aWMgbm5w
ZnNfcGFnX3QgcGFnbnVtID0gTk5QRlNfUEFHX0xMSU07DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMjkpDQorICAg
IHN0cnVjdCBjcmVkICpjcmVkOw0KKyNlbmRpZg0KIA0KICAgICBpZiAocGFn
bnVtID09IE5OUEZTX1BBR19VTElNKQ0KIAlyZXR1cm4gLUVOT01FTTsNCiAg
ICAgLyogcGFnbnVtID0gTk5QRlNfUEFHX0xMSU07ICovDQogICAgIA0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4
KQ0KICAgICBjdXJyZW50LT5zZWN1cml0eSA9IFBBRzJTRUMocGFnbnVtKTsN
CisjZWxzZQ0KKyAgICBjcmVkID0gKHN0cnVjdCBjcmVkICopIGN1cnJlbnQt
PmNyZWQ7DQorICAgIGNyZWQtPnNlY3VyaXR5ID0gUEFHMlNFQyhwYWdudW0p
Ow0KKyNlbmRpZg0KICAgICBwYWdudW0rKzsNCiAgICAgcmV0dXJuIDA7DQog
fQ0KIA0KLXN0YXRpYyBzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0aW9ucyBubnBm
c19zZWNfb3BzID0gew0KLSAgICAudGFza19hbGxvY19zZWN1cml0eSA9IG5u
cGZzX3NlY190YXNrX2FsbG9jLA0KLSAgICAudGFza19mcmVlX3NlY3VyaXR5
ID0gbm5wZnNfc2VjX3Rhc2tfZnJlZSwNCi0vLyAgICAudGFza19yZXBhcmVu
dF90b19pbml0ID0gbm5wZnNfc2VjX3JlcGFyZW50X3RvX2luaXQsDQotfTsN
Ci0NCiAjZW5kaWYgLyogQ09ORklHX1NFQ1VSSVRZICovDQogDQogI2lmZGVm
IEdST1VQUEFHUw0KQEAgLTIwNiw3ICsyMTgsMTIgQEAgZmluZF9wYWcoc3Ry
dWN0IGdyb3VwX2luZm8gKmdpKQ0KICAgICBOTlBGU0RFQihYREVCU1lTLCAo
ImZpbmRfcGFnOiBuZ3JvdXBzID0gJWRcbiIsIGdpLT5uZ3JvdXBzKSk7DQog
DQogICAgIGZvciAoaSA9IGdpLT5uZ3JvdXBzIC0gMTsgaSA+PSAwOyBpLS0p
IHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
MywxNCwwKQ0KIAlnaWRfdCBncm91cCA9IEdST1VQX0FUKGdpLCBpKTsNCisj
ZWxzZQ0KKwlrZ2lkX3Qga2dyb3VwID0gR1JPVVBfQVQoZ2ksIGkpOw0KKwln
aWRfdCBncm91cCA9IGtncm91cC52YWw7DQorI2VuZGlmDQogCWlmICgobm5w
ZnNfcGFnX3QpZ3JvdXAgPj0gTk5QRlNfUEFHX0xMSU0gJiYgKG5ucGZzX3Bh
Z190KWdyb3VwIDwgTk5QRlNfUEFHX1VMSU0pIHsNCiAJICAgIE5OUEZTREVC
KFhERUJTWVMsDQogCQkgICAgICgiZmluZF9wYWc6IEV4aXN0aW5nIHBhZyAl
dSBhdCBwb3MgJXVcbiIsIGdyb3VwLCBpKSk7DQpAQCAtMjIyLDE1ICsyMzks
MzEgQEAgZmluZF9wYWcoc3RydWN0IGdyb3VwX2luZm8gKmdpKQ0KIHN0YXRp
YyBubnBmc19wYWdfdA0KIG5ucGZzX2dldF9wYWdfZ3JvdXAodm9pZCkNCiB7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigy
LDYsMjgpDQogICAgIHN0cnVjdCBncm91cF9pbmZvICpnaSA9IGN1cnJlbnQt
Pmdyb3VwX2luZm87DQogICAgIG5ucGZzX3BhZ190IHJldCA9IGN1cnJlbnQt
PnVpZDsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ2kgPSBn
ZXRfY3VycmVudF9ncm91cHMoKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KKyAgICBubnBmc19wYWdfdCBy
ZXQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbHNlDQorICAgIGt1aWRfdCBrdWlk
ID0gY3VycmVudF91aWQoKTsNCisgICAgbm5wZnNfcGFnX3QgcmV0ID0ga3Vp
ZC52YWw7DQorI2VuZGlmDQorI2VuZGlmDQogICAgIGludCBpOw0KIA0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4
KQ0KICAgICBnZXRfZ3JvdXBfaW5mbyhnaSk7DQorI2VuZGlmDQogDQogICAg
IGkgPSBmaW5kX3BhZyhnaSk7DQogICAgIGlmIChpICE9IE5OUEZTX1BBR19O
T1RGT1VORCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxNCwwKQ0KIAlyZXQgPSBHUk9VUF9BVChnaSwgaSk7DQorI2Vs
c2UNCisJeyBrZ2lkX3Qga2dpZCA9IEdST1VQX0FUKGdpLCBpKTsgcmV0ID0g
a2dpZC52YWw7IH0NCisjZW5kaWYNCiANCiAgICAgcHV0X2dyb3VwX2luZm8o
Z2kpOw0KIA0KQEAgLTI0MiwxMyArMjc1LDE5IEBAIG5ucGZzX2dldF9wYWdf
Z3JvdXAodm9pZCkNCiBzdGF0aWMgaW50DQogc3RvcmVfcGFnKG5ucGZzX3Bh
Z190IHBhZ251bSkNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBL
RVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIHN0cnVjdCBncm91cF9pbmZv
ICpvbGRfZ2kgPSBjdXJyZW50LT5ncm91cF9pbmZvOw0KKyNlbHNlDQorICAg
c3RydWN0IGdyb3VwX2luZm8gKm9sZF9naSA9IGdldF9jdXJyZW50X2dyb3Vw
cygpOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAqbmV3X2dp
Ow0KLSAgICBpbnQgbmJsb2NrcywgY291bnQ7DQorICAgIHVuc2lnbmVkIGlu
dCBuYmxvY2tzLCBjb3VudDsNCiAgICAgaW50IGZvdW5kID0gMDsNCiAgICAg
aW50IGksIGs7DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0g
S0VSTkVMX1ZFUlNJT04oMiw2LDI4KSAgICANCiAgICAgZ2V0X2dyb3VwX2lu
Zm8ob2xkX2dpKTsNCisjZW5kaWYNCiANCiAgICAgaSA9IGZpbmRfcGFnKG9s
ZF9naSk7DQogICAgIGlmIChpICE9IE5OUEZTX1BBR19OT1RGT1VORCkNCkBA
IC0yNzQsMTAgKzMxMywxNyBAQCBzdG9yZV9wYWcobm5wZnNfcGFnX3QgcGFn
bnVtKQ0KIAljb3VudCAtPSBOR1JPVVBTX1BFUl9CTE9DSzsNCiAgICAgfQ0K
IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDE0LDApDQogICAgIGlmIChmb3VuZCkNCiAJR1JPVVBfQVQobmV3X2dpLCBp
KSA9IHBhZ251bTsNCiAgICAgZWxzZQ0KIAlHUk9VUF9BVChuZXdfZ2ksIG5l
d19naS0+bmdyb3VwcyAtIDEpID0gcGFnbnVtOw0KKyNlbHNlDQorICAgIGlm
IChmb3VuZCkNCisJeyBrZ2lkX3Qga2dpZCA9IEtHSURUX0lOSVQocGFnbnVt
KTsgR1JPVVBfQVQobmV3X2dpLCBpKSA9IGtnaWQ7IH0NCisgICAgZWxzZQ0K
Kwl7IGtnaWRfdCBrZ2lkID0gS0dJRFRfSU5JVChwYWdudW0pOyBHUk9VUF9B
VChuZXdfZ2ksIG5ld19naS0+bmdyb3VwcyAtIDEpID0ga2dpZDsgfQ0KKyNl
bmRpZg0KICAgICANCiAgICAgc2V0X2N1cnJlbnRfZ3JvdXBzKG5ld19naSk7
DQogICAgIHB1dF9ncm91cF9pbmZvKG5ld19naSk7DQpAQCAtMzE3LDcgKzM2
MywxMyBAQCBubnBmc19nZXRfcGFnKCkNCiAgICAgcmV0dXJuIG5ucGZzX2dl
dF9wYWdfZ3JvdXAoKTsNCiAjZW5kaWYgLyogR1JPVVBQQUdTICovDQogDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYs
MjgpDQogICAgIHJldHVybiBjdXJyZW50LT51aWQ7DQorI2VsaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KKyAgICBy
ZXR1cm4gY3VycmVudF91aWQoKTsNCisjZWxzZQ0KKyAgICB7IGt1aWRfdCBr
dWlkID0gY3VycmVudF91aWQoKTsgcmV0dXJuIGt1aWQudmFsOyB9DQorI2Vu
ZGlmDQogfQ0KIA0KIHN0YXRpYyBpbmxpbmUgaW50DQpAQCAtNDIyLDcgKzQ3
NCw3IEBAIG5ucGZzX3NldGdyb3VwczE2IChpbnQgZ2lkc2V0c2l6ZSwgb2xk
X2cNCiAjZW5kaWYgLyogU1lTQ0FMTEhBQ0sgKi8NCiAjZW5kaWYgLyogR1JP
VVBQQUdTICovDQogDQotc3RydWN0IGZpbGVfaGFuZGxlIHsNCitzdHJ1Y3Qg
bm5wZnNfZmlsZV9oYW5kbGUgew0KICAgICBubnBmc19kZXZfdCBkZXY7DQog
ICAgIGlub190IGlub2RlOw0KICAgICBfX3UzMiBnZW47DQpAQCAtNTA5LDI2
ICs1NjEsNTggQEAgbm5wZnNfZGVidWdfcHJpbnQgKHN0cnVjdCBhcmxhVmlj
ZUlvY3RsIA0KICAqIGZvbGxvdyBzeW1saW5rcyBpZmYgYGZvbGxvdycNCiAg
Ki8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMywxOSwwKQ0KIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoNCiB1c2VyX3Bh
dGgyZGVudHJ5IChzdHJ1Y3QgbmFtZWlkYXRhICpuZCwgY2hhciAqdXNlcl9w
YXRoLCBpbnQgZm9sbG93KQ0KKyNlbHNlDQorc3RhdGljIHN0cnVjdCBkZW50
cnkgKg0KK3VzZXJfcGF0aDJkZW50cnkgKHN0cnVjdCBwYXRoICpwYXRoLCBj
aGFyICp1c2VyX3BhdGgsIGludCBmb2xsb3cpDQorI2VuZGlmDQogew0KICAg
ICBjaGFyICprbmFtZTsNCiAgICAgaW50IGZsYWdzID0gMDsNCiAgICAgaW50
IGVycm9yID0gMDsNCiANCi0gICAga25hbWUgPSBnZXRuYW1lICh1c2VyX3Bh
dGgpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDcsMCkNCisgICAga25hbWUgPSBnZXRuYW1lKHVzZXJfcGF0aCk7DQor
I2Vsc2UNCisgICAga25hbWUgPSBfX2dldG5hbWUoKTsNCisjZW5kaWYNCisN
CiAgICAgaWYgKElTX0VSUihrbmFtZSkpDQogCXJldHVybiBFUlJfUFRSKFBU
Ul9FUlIoa25hbWUpKTsNCiAgICAgaWYgKGZvbGxvdykNCiAJZmxhZ3MgfD0g
TE9PS1VQX0ZPTExPVzsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49
IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0KKyAgICBlcnJvciA9IHN0cm5jcHlf
ZnJvbV91c2VyKGtuYW1lLCB1c2VyX3BhdGgsIFBBVEhfTUFYKTsNCisgICAg
aWYgKGVycm9yIDwgMCB8fCBlcnJvciA9PSBQQVRIX01BWCkgew0KKwlfX3B1
dG5hbWUoa25hbWUpOw0KKwlyZXR1cm4gRVJSX1BUUihlcnJvcik7DQorICAg
IH0NCisjZW5kaWYNCisNCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBm
c19zeXNjYWxsOiBsb29raW5nIHVwOiAlc1xuIiwga25hbWUpKTsNCiANCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5
KQ0KICAgICBlcnJvciA9IHBhdGhfbG9va3VwKGtuYW1lLCBmbGFncywgbmQp
Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMTksMCkNCisgICAgZXJyb3IgPSBrZXJuX3BhdGgoa25hbWUsIGZsYWdz
LCAmKG5kLT5wYXRoKSk7DQorI2Vsc2UNCisgICAgZXJyb3IgPSBrZXJuX3Bh
dGgoa25hbWUsIGZsYWdzLCBwYXRoKTsNCisjZW5kaWYNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw3LDApDQogICAgIHB1
dG5hbWUoa25hbWUpOw0KKyNlbHNlDQorICAgIF9fcHV0bmFtZShrbmFtZSk7
DQorI2VuZGlmDQogICAgIGlmIChlcnJvcikNCiAJcmV0dXJuIEVSUl9QVFIo
ZXJyb3IpOw0KLSAgICByZXR1cm4gbmQtPmRlbnRyeTsNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBy
ZXR1cm4gbmQtPnBhdGguZGVudHJ5Ow0KKyNlbHNlDQorICAgIHJldHVybiBw
YXRoLT5kZW50cnk7DQorI2VuZGlmDQogfQ0KIA0KIGFzbWxpbmthZ2UgbG9u
Zw0KQEAgLTU0MCwxMiArNjI0LDI0IEBAIHN5c19hZnNfaW50IChpbnQgb3Bl
cmF0aW9uLA0KIHsNCiAgICAgbG9uZyBlcnJvciA9IDA7DQogICAgIHN0cnVj
dCBhcmxhVmljZUlvY3RsIHZpY2VfaW9jdGw7IA0KLSAgICBzdHJ1Y3Qgbm5w
ZnNfbWVzc2FnZV9waW9jdGwgbXNnOw0KKyAgICBzdHJ1Y3Qgbm5wZnNfbWVz
c2FnZV9waW9jdGwgKm1zZyA9IE5VTEw7DQogICAgIHN0cnVjdCBubnBmc19t
ZXNzYWdlX3dha2V1cCAqbXNnMjsNCiAgICAgc3RydWN0IGRlbnRyeSAqZGVu
dHJ5ID0gTlVMTDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxOSwwKQ0KICAgICBzdHJ1Y3QgbmFtZWlkYXRhIG5kOw0K
KyNlbHNlDQorICAgIHN0cnVjdCBwYXRoIHBhdGg7DQorI2VuZGlmDQogICAg
IA0KKyAgICBtc2cgPSBrbWFsbG9jKHNpemVvZigqbXNnKSwgR0ZQX0tFUk5F
TCk7DQorICAgIGlmIChtc2cgPT0gTlVMTCkNCisgICAgICByZXR1cm4gLUVO
T01FTTsNCisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMiw2LDM5KQ0KICAgICBsb2NrX2tlcm5lbCgpOw0KKyNlbHNlDQor
ICAgIC8qIFhYWCBsb2NrX2tlcm5lbCgpIGlzIHJlbW92ZWQsIGNvbnNpZGVy
IGFkZGluZyBhbiBwcml2YXRlIGxvY2sgKi8NCisjZW5kaWYNCiANCiAgICAg
Tk5QRlNERUIoWERFQlNZUywgKCJzeXNfYWZzIGtlcm5lbCBsb2NrZWRcbiIp
KTsNCiANCkBAIC01NzUsNyArNjcxLDcgQEAgc3lzX2Fmc19pbnQgKGludCBv
cGVyYXRpb24sDQogCSAgICBnb3RvIHVubG9jazsNCiAJfQ0KIAlpZiAodmlj
ZV9pb2N0bC5pbl9zaXplICE9IDApIHsNCi0JICAgIGlmKGNvcHlfZnJvbV91
c2VyKCZtc2cubXNnLA0KKwkgICAgaWYoY29weV9mcm9tX3VzZXIoJm1zZy0+
bXNnLA0KIAkJCSAgICAgIHZpY2VfaW9jdGwuaW4sDQogCQkJICAgICAgdmlj
ZV9pb2N0bC5pbl9zaXplKSAhPSAwKSB7DQogCQllcnJvciA9IC1FRkFVTFQ7
DQpAQCAtNTgzLDcgKzY3OSwxMSBAQCBzeXNfYWZzX2ludCAoaW50IG9wZXJh
dGlvbiwNCiAJICAgIH0NCiAJfQ0KIAlpZiAoYV9wYXRoUCAhPSBOVUxMKSB7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTksMCkNCiAJICAgIGRlbnRyeSA9IHVzZXJfcGF0aDJkZW50cnkgKCZuZCwg
YV9wYXRoUCwgYV9mb2xsb3dTeW1saW5rcyk7DQorI2Vsc2UNCisJICAgIGRl
bnRyeSA9IHVzZXJfcGF0aDJkZW50cnkgKCZwYXRoLCBhX3BhdGhQLCBhX2Zv
bGxvd1N5bWxpbmtzKTsNCisjZW5kaWYNCiAJICAgIGlmICghZGVudHJ5KSB7
DQogCQllcnJvciA9IC1FSU5WQUw7DQogCQlnb3RvIHVubG9jazsNCkBAIC02
MjgsMTkgKzcyOCwyMyBAQCBzeXNfYWZzX2ludCAoaW50IG9wZXJhdGlvbiwN
CiAJCWVycm9yID0gLUVJTlZBTDsNCiAJCWdvdG8gdW5sb2NrOw0KIAkgICAg
fQ0KLQkgICAgbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQorCSAgICBtc2ct
PmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogCX0NCiANCi0JbXNnLmhlYWRlci5v
cGNvZGUgPSBOTlBGU19NU0dfUElPQ1RMOw0KLQltc2cub3Bjb2RlID0gYV9v
cGNvZGU7DQorCW1zZy0+aGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19QSU9D
VEw7DQorCW1zZy0+b3Bjb2RlID0gYV9vcGNvZGU7DQogCQ0KLQltc2cuaW5z
aXplICAgPSB2aWNlX2lvY3RsLmluX3NpemU7DQotCW1zZy5vdXRzaXplICA9
IHZpY2VfaW9jdGwub3V0X3NpemU7DQotCW1zZy5jcmVkLnVpZCA9IGN1cnJl
bnQtPnVpZDsNCi0JbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0K
Kwltc2ctPmluc2l6ZSAgID0gdmljZV9pb2N0bC5pbl9zaXplOw0KKwltc2ct
Pm91dHNpemUgID0gdmljZV9pb2N0bC5vdXRfc2l6ZTsNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisJbXNn
LT5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAg
bXNnLT5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQorCW1z
Zy0+Y3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogCQ0KLQllcnJvciA9
IG5ucGZzX21lc3NhZ2VfcnBjKCZubnBmc1swXSwgJm1zZy5oZWFkZXIsIHNp
emVvZihtc2cpKTsgLyogWFhYICovDQotCW1zZzIgPSAoc3RydWN0IG5ucGZz
X21lc3NhZ2Vfd2FrZXVwICopICZtc2c7DQorCWVycm9yID0gbm5wZnNfbWVz
c2FnZV9ycGMoJm5ucGZzWzBdLCAmbXNnLT5oZWFkZXIsIHNpemVvZigqbXNn
KSk7IC8qIFhYWCAqLw0KKwltc2cyID0gKHN0cnVjdCBubnBmc19tZXNzYWdl
X3dha2V1cCAqKSBtc2c7DQogCWlmIChlcnJvciA9PSAwKQ0KIAkgICAgZXJy
b3IgPSBtc2cyLT5lcnJvcjsNCiANCkBAIC02NzUsMTIgKzc3OSwyMSBAQCBz
eXNfYWZzX2ludCAoaW50IG9wZXJhdGlvbiwNCiAgICAgDQogIHVubG9jazoN
CiAgICAgaWYgKGRlbnRyeSkNCi0JcGF0aF9yZWxlYXNlKCZuZCk7DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkN
CisJcGF0aF9wdXQoJm5kLnBhdGgpOw0KKyNlbHNlDQorCXBhdGhfcHV0KCZw
YXRoKTsNCisjZW5kaWYNCiANCiAgICAgTk5QRlNERUIoWERFQlNZUywgKCJu
bnBmc19zeXNjYWxsIHJldHVybnMgZXJyb3I6ICVsZFxuIiwgZXJyb3IpKTsN
CiANCiAgICAgTk5QRlNERUIoWERFQlNZUywgKCJzeXNfYWZzIGtlcm5lbCB1
bmxvY2tcbiIpKTsNCisgICAga2ZyZWUobXNnKTsNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICAgICB1bmxv
Y2tfa2VybmVsKCk7DQorI2Vsc2UNCisgICAgLyogWFhYIHNlZSB0aGUgY29t
bWVudCBhdCBsb2NrX2tlcm5lbCgpIGFib3ZlICovDQorI2VuZGlmDQogDQog
ICAgIHJldHVybiBlcnJvcjsNCiB9DQpAQCAtNzI5LDkgKzg0MiwxNSBAQCBz
eXNfYWZzIChpbnQgb3BlcmF0aW9uLA0KIAkJICAgICAgIGFfZm9sbG93U3lt
bGlua3MpOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMiw2LDM2KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19wcm9j
ZnNfaW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZp
bGUsDQogCQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFy
ZykNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNfcHJvY2ZzX2lvY3Rs
KHN0cnVjdCBmaWxlICpmaWxlLA0KKwkJICAgdW5zaWduZWQgaW50IGNtZCwg
dW5zaWduZWQgbG9uZyBhcmcpDQorI2VuZGlmDQogew0KICAgICBhZnNwcm9j
ZGF0YSBhcmdzOw0KICAgICBsb25nIHJldDsNCkBAIC03ODAsMjEgKzg5OSwz
MSBAQCBzdGF0aWMgaW50IG5ucGZzX2luaXRfcHJvY2ZzKHZvaWQpDQogew0K
ICAgICBzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKmVudHJ5Ow0KICAgICANCi0g
ICAgbm5wZnNfcHJvY2ZzX2RpciA9IHByb2NfbWtkaXIoTk5QRlNfUFJPQ19E
SVIsIHByb2Nfcm9vdF9mcyk7DQorICAgIG5ucGZzX3Byb2Nmc19kaXIgPSBw
cm9jX21rZGlyKCJmcy8iIE5OUEZTX1BST0NfRElSLCBOVUxMKTsNCiAgICAg
aWYgKG5ucGZzX3Byb2Nmc19kaXIgPT0gTlVMTCkNCiAJcmV0dXJuIC1FTk9N
RU07DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigyLDYsMzApDQogICAgIG5ucGZzX3Byb2Nmc19kaXItPm93bmVy
ID0gVEhJU19NT0RVTEU7DQorI2VuZGlmDQogICAgIA0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEwLDApDQogICAgIGVu
dHJ5ID0gY3JlYXRlX3Byb2NfZW50cnkoTk5QRlNfUFJPQ19OT0RFLCAwNjY2
LCBubnBmc19wcm9jZnNfZGlyKTsNCisjZWxzZQ0KKyAgICBlbnRyeSA9IHBy
b2NfY3JlYXRlKE5OUEZTX1BST0NfTk9ERSwgMDY2NiwgTlVMTCwgJm5ucGZz
X3Byb2Nmc19mb3BzKTsNCisjZW5kaWYNCiAgICAgaWYgKGVudHJ5ID09IE5V
TEwpIHsNCiAJTk5QRlNERUIoWERFQlNZUywgKCJubnBmc19pbml0X3Byb2Nm
czogbm8gbm9kZVxuIikpOw0KLQlyZW1vdmVfcHJvY19lbnRyeShOTlBGU19Q
Uk9DX0RJUiwgcHJvY19yb290X2ZzKTsNCisJcmVtb3ZlX3Byb2NfZW50cnko
ImZzLyIgTk5QRlNfUFJPQ19ESVIsIE5VTEwpOw0KIAlyZXR1cm4gLUVOT01F
TTsNCiAgICAgfQ0KICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMiw2LDMwKQ0KICAgICBlbnRyeS0+b3duZXIgPSBU
SElTX01PRFVMRTsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxMCwwKQ0KICAgICBlbnRyeS0+cHJvY19m
b3BzID0gJm5ucGZzX3Byb2Nmc19mb3BzOw0KKyNlbmRpZg0KIA0KICNpZmRl
ZiBTWVNDQUxMQ09NUEFUDQogICAgIGlmIChyZWdpc3Rlcl9pb2N0bDMyX2Nv
bnZlcnNpb24oQVJMQV9WSU9DX1NZU0NBTEwzMiwgbm5wZnNfcHJvY2ZzX2lv
Y3RsMzIpKSB7DQpAQCAtODE1LDcgKzk0NCw3IEBAIHN0YXRpYyB2b2lkIG5u
cGZzX2V4aXRfcHJvY2ZzKHZvaWQpDQogICAgIH0NCiAjZW5kaWYgLyogU1lT
Q0FMTENPTVBBVCAqLw0KICAgICByZW1vdmVfcHJvY19lbnRyeShOTlBGU19Q
Uk9DX05PREUsIG5ucGZzX3Byb2Nmc19kaXIpOw0KLSAgICByZW1vdmVfcHJv
Y19lbnRyeShOTlBGU19QUk9DX0RJUiwgcHJvY19yb290X2ZzKTsNCisgICAg
cmVtb3ZlX3Byb2NfZW50cnkoImZzLyIgTk5QRlNfUFJPQ19ESVIsIE5VTEwp
Ow0KIH0NCiANCiAjaWZkZWYgR1JPVVBQQUdTDQpAQCAtODM5LDE0ICs5Njgs
NiBAQCBpbnN0YWxsX3NldGdyb3Vwcyh2b2lkKQ0KIHZvaWQNCiBpbnN0YWxs
X2Fmc19zeXNjYWxsKHZvaWQpDQogew0KLSNpZmRlZiBDT05GSUdfU0VDVVJJ
VFkNCi0gICAgaWYgKHJlZ2lzdGVyX3NlY3VyaXR5KCZubnBmc19zZWNfb3Bz
KSkNCi0JTk5QRlNERUIoWERFQlNZUywNCi0JCSAoImluc3RhbGxfYWZzX3N5
c2NhbGw6IG5ucGZzX2luaXRfc2VjIGZhaWxlZFxuIikpOw0KLSAgICBlbHNl
DQotCW5ucGZzX3NlY19yZWdpc3RlcmVkID0gMTsNCi0jZW5kaWYNCi0NCiAg
ICAgbm5wZnNfaW5pdF9wcm9jZnMoKTsNCiANCiAjaWZkZWYgU1lTQ0FMTEhB
Q0sNCkBAIC04ODcsMTIgKzEwMDgsNiBAQCByZXN0b3JlX2Fmc19zeXNjYWxs
ICh2b2lkKQ0KICNlbmRpZg0KICNlbmRpZiAvKiBTWVNDQUxMSEFDSyAqLw0K
IA0KLSNpZmRlZiBDT05GSUdfU0VDVVJJVFkNCi0gICAgaWYgKG5ucGZzX3Nl
Y19yZWdpc3RlcmVkKQ0KLQlpZiAodW5yZWdpc3Rlcl9zZWN1cml0eSgmbm5w
ZnNfc2VjX29wcykpDQotCSAgICBwcmludGsoS0VSTl9FTUVSRyAibm5wZnNf
ZXhpdF9zZWM6IGNvdWxkbid0IHVucmVnaXN0ZXJcbiIpOw0KLSNlbmRpZiAv
KiAhQ09ORklHX1NFQ1VSSVRZICovDQotDQogI2lmZGVmIEdST1VQUEFHUw0K
ICNpZmRlZiBTWVNDQUxMSEFDSw0KICAgICBpZiAob2xkX3NldGdyb3Vwcykg
ew0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xkL25ucGZzL2xp
bnV4L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyBhcmxhLTAuOTAvbm5wZnMv
bGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jDQotLS0gYXJsYS0wLjkw
LW9sZC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMJMjAw
Ni0xMi0xMSAxNzozMTo0NS4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLTAu
OTAvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jCTIwMTYt
MDEtMTMgMjE6NTE6NDkuMDAwMDAwMDAwICswMTAwDQpAQCAtNDcsMTEgKzQ3
LDIwIEBADQogI2luY2x1ZGUgPGxpbnV4L3VuaXN0ZC5oPg0KIA0KICNpZmRl
ZiBSQ1NJRA0KLVJDU0lEKCIkSWQ6IG5ucGZzX3N5c2NhbGxzLWxvc3NhZ2Uu
Yyx2IDEuMTcgMjAwNi8xMi8xMSAxNjozMTo0NSB0b2wgRXhwICQiKTsNCitS
Q1NJRCgiJElkOiBubnBmc19zeXNjYWxscy1sb3NzYWdlLmMsdiAxLjE5IDIw
MTAvMDgvMDggMjA6NDM6MDUgdG9sIEV4cCAkIik7DQorI2VuZGlmDQorDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDcs
MCkNCisvKiB0aGUgbWV0aG9kIHRvIHJlYWQgJ2xvd2VyX2JvdW5kJyBkb2Vz
IG5vdCB3b3JrIG9uIGtlcm5lbCAzLjcgYW5kIGxhdGVyICovDQorI3VuZGVm
IFNZU0NBTExIQUNLDQogI2VuZGlmDQogDQogI2luY2x1ZGUgPGxpbnV4L2th
bGxzeW1zLmg+DQorI2lmZGVmIFNZU0NBTExIQUNLDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0KIHN0YXRpYyB2
b2lkICpsb3dlcl9ib3VuZCA9ICZrZXJuZWxfdGhyZWFkOw0KKyNlbmRpZg0K
KyNlbmRpZg0KIA0KIHZvaWQgKiBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSkgc3lz
X2NhbGxfdGFibGUodm9pZCk7DQogbm5wZnNfc3lzX2NhbGxfZnVuY3Rpb24g
Km5ucGZzX3N5c19jYWxsX3RhYmxlID0NCkBAIC02Myw2ICs3MiwxMSBAQCBj
b25zdCBjaGFyICogX19hdHRyaWJ1dGVfXygod2VhaykpDQogCQkgICAgdW5z
aWduZWQgbG9uZyAqb2Zmc2V0LA0KIAkJICAgIGNoYXIgKiptb2RuYW1lLCBj
aGFyICpuYW1lYnVmKTsNCiANCisjaWZkZWYgX194ODZfNjRfXw0KK2V4dGVy
biByd2xvY2tfdCB0YXNrbGlzdF9sb2NrIF9fYXR0cmlidXRlX18oKHdlYWsp
KTsNCisjZW5kaWYNCisNCisjaWZkZWYgU1lTQ0FMTEhBQ0sNCiBzdGF0aWMg
dm9pZCAqKg0KIGdldF9zdGFydF9hZGRyKHZvaWQpIHsNCiAjaWZkZWYgX194
ODZfNjRfXw0KQEAgLTcxLDYgKzg1LDcgQEAgZ2V0X3N0YXJ0X2FkZHIodm9p
ZCkgew0KICAgICByZXR1cm4gKHZvaWQgKiopJm11dGV4X2xvY2s7DQogI2Vu
ZGlmDQogfQ0KKyNlbmRpZg0KIA0KIHN0YXRpYyBpbmxpbmUgaW50IA0KIGth
bGxzeW1faXNfZXF1YWwodW5zaWduZWQgbG9uZyBhZGRyLCBjb25zdCBjaGFy
ICpuYW1lKQ0KQEAgLTEzOSw2ICsxNTQsOCBAQCB2ZXJpZnkodm9pZCAqKnAp
IHsNCiAgICAgcmV0dXJuIDE7DQogfQ0KIA0KKyNpZmRlZiBTWVNDQUxMSEFD
Sw0KKw0KIHN0YXRpYyBpbmxpbmUgaW50IGxvb2tzX2dvb2Qodm9pZCAqKnAp
DQogew0KICAgICBpZiAoKnAgPD0gKHZvaWQqKWxvd2VyX2JvdW5kIHx8ICpw
ID49ICh2b2lkKilwKQ0KQEAgLTE4OCwzICsyMDUsNSBAQCBubnBmc19maXh1
cF9zeXNjYWxsX2xvc3NhZ2Uodm9pZCkNCiANCiAgICAgcmV0dXJuIDA7DQog
fQ0KKw0KKyNlbmRpZg0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAt
b2xkL25ucGZzL2xpbnV4L25ucGZzX3Zmc29wcy5jIGFybGEtMC45MC9ubnBm
cy9saW51eC9ubnBmc192ZnNvcHMuYw0KLS0tIGFybGEtMC45MC1vbGQvbm5w
ZnMvbGludXgvbm5wZnNfdmZzb3BzLmMJMjAwNi0xMi0xMSAxNzo0MzozNS4w
MDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5w
ZnNfdmZzb3BzLmMJMjAxNi0wMi0xNCAwMTozNjowNi4wMDAwMDAwMDAgKzAx
MDANCkBAIC00NCwzMCArNDQsMjYgQEANCiAjaW5jbHVkZSA8bGludXgvbW0u
aD4NCiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgiJElkOiBubnBmc192ZnNv
cHMuYyx2IDEuMTA5IDIwMDYvMTIvMTEgMTY6NDM6MzUgdG9sIEV4cCAkIik7
DQorUkNTSUQoIiRJZDogbm5wZnNfdmZzb3BzLmMsdiAxLjExMSAyMDEwLzA4
LzA4IDIwOjQzOjA2IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0KIA0KIHN0cnVj
dCBubnBmcyBubnBmc1tOTk5QRlNdOw0KIA0KLXN0YXRpYyB2b2lkIG5ucGZz
X3JlYWRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSk7DQogc3RhdGljIHZv
aWQgbm5wZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOw0K
LXN0YXRpYyB2b2lkIG5ucGZzX3B1dF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlu
b2RlKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMyw2LDApDQogc3RhdGljIHZvaWQgbm5wZnNfd3JpdGVfc3VwZXIoc3Ry
dWN0IHN1cGVyX2Jsb2NrICogc2IpOw0KKyNlbmRpZg0KIA0KLSNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4KQ0KIHN0
YXRpYyBpbnQgbm5wZnNfc3RhdGZzKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwg
c3RydWN0IGtzdGF0ZnMgKmJ1Zik7DQotI2Vsc2UNCi1zdGF0aWMgaW50IG5u
cGZzX3N0YXRmcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3Qga3N0
YXRmcyAqYnVmKTsNCi0jZW5kaWYNCiANCiBzdGF0aWMgc3RydWN0IHN1cGVy
X29wZXJhdGlvbnMgbm5wZnNfc29wcyA9IHsgDQotICAgIHJlYWRfaW5vZGUJ
CTogbm5wZnNfcmVhZF9pbm9kZSwNCi0gICAgcHV0X2lub2RlCQk6IG5ucGZz
X3B1dF9pbm9kZSwNCiAgICAgYWxsb2NfaW5vZGUJCTogbm5wZnNfbm9kZV9h
bGxvYywNCiAgICAgZGVzdHJveV9pbm9kZQk6IG5ucGZzX25vZGVfZnJlZSwN
CiAgICAgZHJvcF9pbm9kZQkJOiBnZW5lcmljX2RlbGV0ZV9pbm9kZSwNCiAg
ICAgcHV0X3N1cGVyCQk6IG5ucGZzX3B1dF9zdXBlciwNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHdy
aXRlX3N1cGVyCQk6IG5ucGZzX3dyaXRlX3N1cGVyLA0KKyNlbmRpZg0KICAg
ICBzdGF0ZnMJCTogbm5wZnNfc3RhdGZzLA0KIH07DQogDQpAQCAtOTQsNyAr
OTAsMTEgQEAgbm5wZnNfZmV0Y2hfcm9vdChzdHJ1Y3QgaW5vZGUgKmkpDQog
CSAqIHJvb3QncyBwcml2aWxpZ2VzICh1c3VhbGx5IG5vbmUsIGFuZCBub25l
IGlzIG5lZWRlZCkuDQogCSAqLw0KIAkNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KIAltc2cuY3JlZC51aWQg
PSAwOw0KKyNlbHNlDQorCW1zZy5jcmVkLnVpZCA9IEtVSURUX0lOSVQoMCk7
DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IDA7DQogCQ0KIAllcnJvciA9
IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVv
Zihtc2cpKTsNCkBAIC0xMjksOCArMTI5LDEzIEBAIG1ha2Vfcm9vdF9pbm9k
ZShzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCkNCiAgICAgWEFfU0VUX01PREUoJm5v
ZGUuYXR0ciwgU19JRkRJUiB8IDA3NzcpOw0KICAgICBYQV9TRVRfTkxJTkso
Jm5vZGUuYXR0ciwgMTAwKTsNCiAgICAgWEFfU0VUX1NJWkUoJm5vZGUuYXR0
ciwgMCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsMTQsMCkNCiAgICAgWEFfU0VUX1VJRCgmbm9kZS5hdHRyLCAwKTsN
CiAgICAgWEFfU0VUX0dJRCgmbm9kZS5hdHRyLCAwKTsNCisjZWxzZQ0KKyAg
ICBYQV9TRVRfVUlEKCZub2RlLmF0dHIsIEtVSURUX0lOSVQoMCkpOw0KKyAg
ICBYQV9TRVRfR0lEKCZub2RlLmF0dHIsIEtHSURUX0lOSVQoMCkpOw0KKyNl
bmRpZg0KICAgICBYQV9TRVRfQVRJTUUoJm5vZGUuYXR0ciwgMCk7DQogICAg
IFhBX1NFVF9NVElNRSgmbm9kZS5hdHRyLCAwKTsNCiAgICAgWEFfU0VUX0NU
SU1FKCZub2RlLmF0dHIsIDApOw0KQEAgLTE1OSw3ICsxNjQsMTEgQEAgbWFr
ZV9yb290IChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQ0KICAgICBubnBmcy0+
cm9vdCA9IGlub2RlOw0KIA0KICAgICAvKiBYWFggZXJyb3IgaGFuZGxpbmcg
Ki8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Myw0LDApDQogICAgIGRwID0gZF9hbGxvY19yb290KGlub2RlKTsNCisjZWxz
ZQ0KKyAgICBkcCA9IGRfbWFrZV9yb290KGlub2RlKTsNCisjZW5kaWYNCiAg
ICAgbm5wZnNfZF9pbml0KGRwKTsNCiAgICAgc2ItPnNfcm9vdCA9IGRwOw0K
ICAgICByZXR1cm4gMDsNCkBAIC0xODMsMTMgKzE5MiwyNyBAQCBubnBmc19y
ZWFkX3N1cGVyIChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiBzDQogICAgIE5OUEZT
REVCKFhERUJWRk9QUywgKCJubnBmc19yZWFkX3N1cGVyOiBiZWdpbiBzZXR0
aW5nIHZhcmlhYmxlc1xuIikpOw0KIA0KICAgICBpZiAoZGF0YSAhPSBOVUxM
KSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMTksMCkNCiAJc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0KKwlz
dHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KIAkNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KIAllcnJvciA9
IHBhdGhfbG9va3VwKGRhdGEsIDAsICZuZCk7DQorI2VsaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwllcnJvciA9
IGtlcm5fcGF0aChkYXRhLCAwLCAmbmQucGF0aCk7DQorI2Vsc2UNCisJZXJy
b3IgPSBrZXJuX3BhdGgoZGF0YSwgMCwgJnBhdGgpOw0KKyNlbmRpZg0KIAlp
ZiAoZXJyb3IpDQogCSAgICBkZGV2ID0gRVJSX1BUUihlcnJvcik7DQogCWVs
c2UNCi0JICAgIGRkZXYgPSBuZC5kZW50cnk7DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJICAgIGRkZXYg
PSBuZC5wYXRoLmRlbnRyeTsNCisjZWxzZQ0KKwkgICAgZGRldiA9IHBhdGgu
ZGVudHJ5Ow0KKyNlbmRpZg0KIA0KIAlpZiAoIUlTX0VSUihkZGV2KSkgew0K
IAkgICAgbWlub3JkZXZpY2UgPSBNSU5PUihkZGV2LT5kX2lub2RlLT5pX3Jk
ZXYpOw0KQEAgLTIzMyw3ICsyNTYsNyBAQCBubnBmc19maWxsX3N1cGVyIChz
dHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiDQogICAgIHJldHVybiAwOw0KIH0NCiAN
Ci0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIs
NiwxOCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMiw2LDM5KQ0KIGludA0KIG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9z
eXN0ZW1fdHlwZSAqZnNfdHlwZSwNCiAJICAgICBpbnQgZmxhZ3MsIGNvbnN0
IGNoYXIgKmRldl9uYW1lLA0KQEAgLTI0MiwxOSArMjY1LDIyIEBAIG5ucGZz
X2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnMNCiAgICAgcmV0
dXJuIGdldF9zYl9ub2Rldihmc190eXBlLCBmbGFncywgZGF0YSwgbm5wZnNf
ZmlsbF9zdXBlciwgbW50KTsNCiB9DQogI2Vsc2UNCi1zdHJ1Y3Qgc3VwZXJf
YmxvY2sgKg0KLW5ucGZzX2dldF9zYiAoc3RydWN0IGZpbGVfc3lzdGVtX3R5
cGUgKmZzX3R5cGUsDQotCSAgICAgIGludCBmbGFncywgY29uc3QgY2hhciAq
ZGV2X25hbWUsIHZvaWQgKmRhdGEpIA0KK3N0cnVjdCBkZW50cnkqDQorbm5w
ZnNfbW91bnQoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsDQor
CSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwNCisJICAg
ICB2b2lkICpkYXRhKSANCiB7DQotICAgIHJldHVybiBnZXRfc2Jfbm9kZXYo
ZnNfdHlwZSwgZmxhZ3MsIGRhdGEsIG5ucGZzX2ZpbGxfc3VwZXIpOw0KKyAg
ICByZXR1cm4gbW91bnRfbm9kZXYoZnNfdHlwZSwgZmxhZ3MsIGRhdGEsIG5u
cGZzX2ZpbGxfc3VwZXIpOw0KIH0NCiAjZW5kaWYNCiANCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogc3RhdGlj
IHZvaWQNCiBubnBmc193cml0ZV9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sg
KiBzYikNCiB7DQogICAgIHNiLT5zX2RpcnQgPSAwOw0KIH0NCisjZW5kaWYN
CiANCiAvKg0KICAqIFhYWCBpcyB0aGlzIGdvb2Q/IA0KQEAgLTI3Myw3MyAr
Mjk5LDYgQEAgbm5wZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAq
c2IpDQogICAgIE5OUEZTREVCKFhERUJWRk9QUywgKCJubnBmc19wdXRfc3Vw
ZXIgZXhpdGluZ1xuIikpOw0KIH0NCiANCi1zdGF0aWMgdm9pZA0KLW5ucGZz
X3JlYWRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkNCi17DQotICAgIE5O
UEZTREVCKFhERUJWRk9QUywoIm5ucGZzX3JlYWRfaW5vZGUgc3RhcnRpbmcg
aW5vZGU6ICVwXG4iLGlub2RlKSk7DQotICAgIE5OUEZTREVCKFhERUJWRk9Q
UywoIm5ucGZzX3JlYWRfaW5vZGUgaW5vZGUtPmlfaW5vOiAlbGRcbiIsaW5v
ZGUtPmlfaW5vKSk7DQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDIsNiwxOSkNCi0gICAgaW5vZGUtPmlfYmxrc2l6ZSA9IDEw
MjQ7DQotI2VuZGlmDQotICAgIGlub2RlLT5pX21vZGUgPSAwOw0KLSAgICBp
bm9kZS0+aV9vcCA9IE5VTEw7DQotICAgIE5OUEZTREVCKFhERUJWRk9QUywo
Im5ucGZzX3JlYWRfaW5vZGUgZXhpdGluZ1xuIikpOw0KLX0NCi0gDQotLyoN
Ci0gKiBDYWxsZWQgd2hlbiBgaW5vZGUnIGlzIGRlLXJlZmVyZW5jZWQsIGll
IHdoZW4gaXB1dCBpcyBjYWxsZWQuDQotICovDQotDQotc3RhdGljIHZvaWQN
Ci1ubnBmc19wdXRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkNCi17DQot
ICAgIHN0cnVjdCBubnBmc19ub2RlICp4biA9IFZOT0RFX1RPX1hOT0RFKGlu
b2RlKTsNCi0gICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSBOTlBGU19GUk9N
X1ZOT0RFKGlub2RlKTsNCi0gICAgaW50IGJhZDsNCi0NCi0gICAgTk5QRlNE
RUIoWERFQlZGT1BTLCgibm5wZnNfcHV0X2lub2RlOiBpbm9kZTogJXAgY291
bnQ6ICVkIGFsaWFzZXM6IiwNCi0JCQlpbm9kZSwgbm5wZnNfaWNvdW50KGlu
b2RlKSkpOw0KLSAgICBubnBmc19wcmludF9hbGlhc2VzKGlub2RlKTsNCi0g
ICAgDQotICAgIGRvd24oJm5ucGZzcC0+aW5hY3RpdmVfc2VtKTsNCi0NCi0g
ICAgaWYgKChubnBmc3AtPnN0YXR1cyAmIE5OUEZTX0RFVk9QRU4pID09IDAp
IHsNCi0JaWYgKCFpc19iYWRfaW5vZGUoaW5vZGUpKSB7DQotCSAgICBpZiAo
aW5vZGUgIT0gbm5wZnNwLT5yb290KSB7DQotCQltYWtlX2JhZF9pbm9kZShp
bm9kZSk7DQotCQlubnBmc19pcmVsZShpbm9kZSk7IC8qIHNlZSBubnBmc19u
b2RlX2FkZCgpICovDQotCSAgICB9DQotCSAgICB4bi0+ZmxhZ3MgfD0gTk5Q
RlNfU1RBTEU7DQotCX0NCi0JYmFkID0gMTsgLyogb3Igcm9vdCwgcmVhbGx5
ICovDQotICAgIH0gZWxzZSB7DQotCWJhZCA9IGlzX2JhZF9pbm9kZShpbm9k
ZSk7DQotICAgIH0NCi0NCi0gICAgaWYgKHhuLT5mbGFncyAmIE5OUEZTX1NU
QUxFICYmICFubnBmc19ub2RlX3VzZXJzKGlub2RlKSkgew0KLQl4bi0+Zmxh
Z3MgfD0gTk5QRlNfTk9ERV9JUFVUOyAvKiBYWFggbG9ja2luZyAqLw0KLSAg
CW5ucGZzX2ZvcmNlX2ludmFsaWRfbm9kZSh4bik7DQotCXhuLT5mbGFncyAm
PSB+Tk5QRlNfTk9ERV9JUFVUOw0KLSAgICB9DQotICAgIA0KLSAgICBpZiAo
YmFkKSB7DQotCWlmIChubnBmc19pY291bnQoaW5vZGUpID09IDEpDQotCSAg
ICBubnBmc19ub2RlX2NsZWFyKHhuKTsNCi0gICAgfSBlbHNlIGlmIChubnBm
c19pY291bnQoaW5vZGUpID09IDIpIHsNCi0JLyogDQotCSAqIFRoZSBsYXN0
IGV4dGVybmFsIHJlZmVyZW5jZSBpcyBiZWluZyBkcm9wcGVkLCBvbmx5IHRo
ZSBvbmUNCi0JICogZnJvbSBubnBmc19ub2RlX2FkZCgpIGlzIGxlZnQuIFRp
bWUgdG8gbGV0IGRhZW1vbiByZWxlYXNlDQotCSAqIHRoaXMgbm9kZSBwcm9w
ZXJseS4NCi0JICovDQotCWlmICgoeG4tPmZsYWdzICYgTk5QRlNfTElNQk8p
ID09IDApIHsNCi0JICAgIG5ucGZzX25vZGVfY2xlYXIoeG4pOw0KLQkgICAg
bm5wZnNfcXVldWVfaW5hY3RpdmUoeG4pOw0KLQl9DQotICAgIH0NCi0NCi0g
ICAgdXAoJm5ucGZzcC0+aW5hY3RpdmVfc2VtKTsNCi19DQotDQogc3RhdGlj
IGludA0KIG5ucGZzX3N0YXRmc19pbnQoc3RydWN0IHN1cGVyX2Jsb2NrICpz
Yiwgc3RydWN0IGtzdGF0ZnMgKmJ1ZikNCiB7DQpAQCAtMzUyLDI1ICszMTEs
MjUgQEAgbm5wZnNfc3RhdGZzX2ludChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNi
LA0KICAgICB0bXAuZl9iYXZhaWwgID0gMTAyNCoxMDI0KjItNTA7DQogICAg
IHRtcC5mX2ZpbGVzICAgPSAxMDI0KjEwMjQ7DQogICAgIHRtcC5mX2ZmcmVl
ICAgPSAxMDI0KjEwMjQtMTAwOw0KKyAgICB0bXAuZl9mc2lkLnZhbFswXSA9
IDA7DQorICAgIHRtcC5mX2ZzaWQudmFsWzFdID0gMDsNCiAgICAgdG1wLmZf
bmFtZWxlbiA9IE5BTUVfTUFYOw0KKyAgICB0bXAuZl9mcnNpemUgID0gMDsN
CisgICAgdG1wLmZfc3BhcmVbMF0gPSAwOw0KKyAgICB0bXAuZl9zcGFyZVsx
XSA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzJdID0gMDsNCisgICAgdG1wLmZf
c3BhcmVbM10gPSAwOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigyLDYsMzYpDQorICAgIHRtcC5mX3NwYXJlWzRdID0gMDsN
CisjZWxzZQ0KKyAgICB0bXAuZl9mbGFncyA9IDA7DQorI2VuZGlmDQogICAg
ICpidWYgPSB0bXA7DQogICAgIHJldHVybiAwOw0KIH0NCiANCi0jaWYgTElO
VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCi0N
CiBzdGF0aWMgaW50DQogbm5wZnNfc3RhdGZzKHN0cnVjdCBkZW50cnkgKmRl
bnRyeSwgc3RydWN0IGtzdGF0ZnMgKmJ1ZikNCiB7DQogICAgIHJldHVybiBu
bnBmc19zdGF0ZnNfaW50KGRlbnRyeS0+ZF9zYiwgYnVmKTsNCiB9DQotDQot
I2Vsc2UNCi0NCi1zdGF0aWMgaW50DQotbm5wZnNfc3RhdGZzKHN0cnVjdCBz
dXBlcl9ibG9jayAqc2IsIHN0cnVjdCBrc3RhdGZzICpidWYpDQotew0KLSAg
ICByZXR1cm4gbm5wZnNfc3RhdGZzX2ludChzYiwgYnVmKTsNCi19DQotDQot
I2VuZGlmDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvYXJs
YWQvZmNhY2hlLmMgYXJsYS0wLjkwL2FybGFkL2ZjYWNoZS5jDQotLS0gYXJs
YS0wLjkwLW9sZC9hcmxhZC9mY2FjaGUuYwkyMDA2LTEyLTExIDE3OjIzOjI0
LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9hcmxhZC9mY2FjaGUu
YwkyMDE2LTAxLTIyIDE3OjAwOjQzLjAwMDAwMDAwMCArMDEwMA0KQEAgLTcx
Myw3ICs3MTMsNyBAQCBmY2FjaGVfaGF2ZV93YW50ZWQoRkNhY2hlRW50cnkg
KmVudHJ5LCB1DQogaW50DQogZmNhY2hlX2Rpcl9uYW1lIChGQ2FjaGVFbnRy
eSAqZW50cnksIGNoYXIgKnMsIHNpemVfdCBsZW4pDQogew0KLSAgICByZXR1
cm4gc25wcmludGYgKHMsIGxlbiwgIiUwMlgiLCBlbnRyeS0+aW5kZXggLyAw
eDEwMCk7DQorICAgIHJldHVybiBzbnByaW50ZiAocywgbGVuLCBOTlBGU19D
QUNIRV9GSUxFX0RJUjEsIGVudHJ5LT5pbmRleCAvIDB4MTAwKTsNCiB9DQog
DQogLyoNCkBAIC03MjMsNyArNzIzLDcgQEAgZmNhY2hlX2Rpcl9uYW1lIChG
Q2FjaGVFbnRyeSAqZW50cnksIGNoYQ0KIHN0YXRpYyBpbnQNCiBmY2FjaGVf
ZmlsZV9uYW1lIChGQ2FjaGVFbnRyeSAqZW50cnksIGNoYXIgKnMsIHNpemVf
dCBsZW4pDQogew0KLSAgICByZXR1cm4gc25wcmludGYgKHMsIGxlbiwgIiUw
MlgvJTAyWCIsDQorICAgIHJldHVybiBzbnByaW50ZiAocywgbGVuLCBOTlBG
U19DQUNIRV9GSUxFX0RJUl9QQVRILA0KIAkJICAgICBlbnRyeS0+aW5kZXgg
LyAweDEwMCwgZW50cnktPmluZGV4ICUgMHgxMDApOw0KIH0NCiANCkBAIC04
MTUsNyArODE1LDcgQEAgZmNhY2hlX2ZoZ2V0IChjaGFyICpmaWxlbmFtZSwg
ZmNhY2hlX2NhYw0KIAlpbnQgcmV0LCBhLCBiOw0KIAljaGFyIGJ1ZlsxMDI0
XTsNCiANCi0JcmV0ID0gc3NjYW5mKGZpbGVuYW1lLCAiJTAyWC8lMDJYIiwg
JmEsICZiKTsNCisJcmV0ID0gc3NjYW5mKGZpbGVuYW1lLCBOTlBGU19DQUNI
RV9GSUxFX0RJUl9QQVRILCAmYSwgJmIpOw0KIAlpZiAocmV0ICE9IDIpDQog
CSAgICByZXR1cm4gRUlOVkFMOw0KIA0KQEAgLTgyNCw3ICs4MjQsNyBAQCBm
Y2FjaGVfZmhnZXQgKGNoYXIgKmZpbGVuYW1lLCBmY2FjaGVfY2FjDQogCQ0K
IAlyZXQgPSBzbnByaW50ZigoY2hhciAqKWhhbmRsZS0+bm5wZnNfaGFuZGxl
LCANCiAJCSAgICAgICBzaXplb2YoaGFuZGxlLT5ubnBmc19oYW5kbGUpLA0K
LQkJICAgICAgICIlc1xcJTAyWFxcJTAyWCIsIGJ1ZiwgYSwgYik7DQorCQkg
ICAgICAgIiVzXFwiIE5OUEZTX0NBQ0hFX0ZJTEVfRElSX1BBVEgsIGJ1Ziwg
YSwgYik7DQogDQogCWlmIChyZXQgPiAwICYmIHJldCA8IHNpemVvZihoYW5k
bGUtPm5ucGZzX2hhbmRsZSkpDQogCSAgICBoYW5kbGUtPnZhbGlkID0gMTsN
Cg==

---276651502-947803959-1463672195=:15876
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-947803959-1463672195=:15876--

home help back first fref pref prev next nref lref last post