[5057] in arla-drinkers

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

Re: PATCH v2: Arla 0.90 on Linux 2.6.34 to 3.18

daemon@ATHENA.MIT.EDU (Bo Branten)
Wed Jan 13 19:29:03 2016

From arla-drinkers-bounces@stacken.kth.se Thu Jan 14 00:29:02 2016
Return-Path: <arla-drinkers-bounces@stacken.kth.se>
Delivered-To: arla-drinkers-mtg@bloom-picayune.mit.edu
Received: (qmail 5015 invoked from network); 14 Jan 2016 00:29:02 -0000
Received: from mx5.kth.se (130.237.32.10)
  by charon.mit.edu with SMTP; 14 Jan 2016 00:29:02 -0000
Received: from mx5.kth.se (localhost [127.0.0.1])
	by mx5.kth.se (Postfix) with ESMTP id 516912400F8;
	Thu, 14 Jan 2016 01:29:01 +0100 (CET)
X-Virus-Scanned: by amavisd-new at kth.se
Received: from mx5.kth.se ([127.0.0.1])
	by mx5.kth.se (mx5.kth.se [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id HBXLRGl0oy_y; Thu, 14 Jan 2016 01:28:40 +0100 (CET)
Received: from vingummi.stacken.kth.se (lists.stacken.kth.se [130.237.234.174])
	by mx5.kth.se (Postfix) with ESMTP;
	Thu, 14 Jan 2016 01:28:39 +0100 (CET)
Received: from vingummi.stacken.kth.se (localhost [IPv6:::1])
	by vingummi.stacken.kth.se (Postfix) with ESMTP id E6E3C14C8FF;
	Thu, 14 Jan 2016 01:28:39 +0100 (CET)
Received: by vingummi.stacken.kth.se (Postfix)
 id C0EA014CAC9; Thu, 14 Jan 2016 01:28:38 +0100 (CET)
Delivered-To: al_stacken_kth_se______________arla-drinkers@vingummi.stacken.kth.se
Received: from mx7.kth.se (mx7.kth.se [130.237.48.48])
 by vingummi.stacken.kth.se (Postfix) with ESMTPS id BB66A14CA84
 for <arla-drinkers@stacken.kth.se>; Thu, 14 Jan 2016 01:28:38 +0100 (CET)
Received: from mx7.kth.se (localhost [127.0.0.1])
 by mx7.kth.se (Postfix) with ESMTP id AAF651400EF
 for <arla-drinkers@stacken.kth.se>; Thu, 14 Jan 2016 01:28:38 +0100 (CET)
X-Virus-Scanned: by amavisd-new at kth.se
X-Amavis-OS-Fingerprint: Windows NT kernel; dist: 9; link: Ethernet or modem; 
 params: generic fuzzy; raw_mtu: 1500; raw_sig:
 6:55+9:0:1440:mss*45,0:mss,nop,ws,nop,nop,sok::0,
 [2001:6b0:e:2018::156]:58146
Received: from mx7.kth.se ([127.0.0.1])
 by mx7.kth.se (mx7.kth.se [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id YnxKBq7cv-QS for <arla-drinkers@stacken.kth.se>;
 Thu, 14 Jan 2016 01:28:36 +0100 (CET)
Received: from mail.acc.umu.se (mail.acc.umu.se [IPv6:2001:6b0:e:2018::156])
 by mx7.kth.se (Postfix) with ESMTPS
 for <arla-drinkers@stacken.kth.se>; Thu, 14 Jan 2016 01:28:36 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by amavisd-new (Postfix) with ESMTP id 0530AC52
 for <arla-drinkers@stacken.kth.se>; Thu, 14 Jan 2016 01:28:36 +0100 (MET)
X-Virus-Scanned: amavisd-new at acc.umu.se
Received: from suiko.acc.umu.se (suiko.acc.umu.se [IPv6:2001:6b0:e:2018::162])
 by mail.acc.umu.se (Postfix) with ESMTP id 7FAD7C51
 for <arla-drinkers@stacken.kth.se>; Thu, 14 Jan 2016 01:28:29 +0100 (MET)
Received: by suiko.acc.umu.se (Postfix, from userid 10005)
 id 7044F44B8C; Thu, 14 Jan 2016 01:28:29 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by suiko.acc.umu.se (Postfix) with ESMTP id 69D6744B8B
 for <arla-drinkers@stacken.kth.se>; Thu, 14 Jan 2016 01:28:29 +0100 (CET)
Date: Thu, 14 Jan 2016 01:28:29 +0100 (CET)
From: Bo Branten <bosse@acc.umu.se>
To: arla-drinkers@stacken.kth.se
Subject: Re: PATCH v2: Arla 0.90 on Linux 2.6.34 to 3.18
In-Reply-To: <alpine.DEB.2.10.1601110310480.17625@suiko.acc.umu.se>
Message-ID: <alpine.DEB.2.10.1601140123380.24061@suiko.acc.umu.se>
References: <alpine.DEB.2.10.1601110310480.17625@suiko.acc.umu.se>
User-Agent: Alpine 2.10 (DEB 1266 2009-07-14)
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED;
 BOUNDARY="-276651502-1195004614-1452731309=:24061"
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-1195004614-1452731309=:24061
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII

PATCH v2: Arla 0.90 on Linux 2.6.34 to 3.18

Hello,

I have corrected two things in the existing patch:
   Before I forgot two include files that is stored higher up in the 
direvtory hierarchy.
   And I have changed the syntax of the preprocessor statements to what was 
used in the rest of the driver.

I have tested that this patch compiles clean on ALL kernels from 2.6.34 to 
3.18.

Bo Branten

---276651502-1195004614-1452731309=:24061
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-arla-0.90-for-linux-3.18
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.DEB.2.10.1601140128290.24061@suiko.acc.umu.se>
Content-Description: 
Content-Disposition: attachment; filename=patch-arla-0.90-for-linux-3.18

ZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS0wLjkwL25ucGZzL2luY2x1
ZGUvbm5wZnMvbm5wZnNfYXR0ci5oIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5w
ZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19hdHRyLmgNCi0tLSBhcmxhLTAuOTAv
bm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19hdHRyLmgJMjAwNi0xMC0yNCAx
ODozMzozMC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLWZvci1saW51eC0z
LjE4L25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfYXR0ci5oCTIwMTYtMDEt
MTIgMTk6Mjk6NTAuNTIyMDcyMDg0ICswMTAwDQpAQCAtMTEzLDggKzExMywx
MyBAQCBzdHJ1Y3Qgbm5wZnNfYXR0ciB7DQogICAgIHVpbnQzMl90CQl4YV9u
bGluazsNCiAgICAgdWludDMyX3QJCXhhX3R5cGU7DQogDQorI2lmIChkZWZp
bmVkKF9fS0VSTkVMX18pICYmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO
RUxfVkVSU0lPTigzLDE0LDApKQ0KKyAgICBrdWlkX3QJCXhhX3VpZDsNCisg
ICAga2dpZF90CQl4YV9naWQ7DQorI2Vsc2UNCiAgICAgdWludDMyX3QJCXhh
X3VpZDsNCiAgICAgdWludDMyX3QJCXhhX2dpZDsNCisjZW5kaWYNCiANCiAg
ICAgdWludDMyX3QJCXhhX2F0aW1lOw0KICAgICB1aW50MzJfdAkJeGFfbXRp
bWU7DQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLTAuOTAvbm5wZnMv
aW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaCBhcmxhLWZvci1saW51eC0z
LjE4L25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfYmxvY2tzLmgNCi0tLSBh
cmxhLTAuOTAvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaAky
MDA2LTEwLTI0IDE4OjMzOjMxLjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEt
Zm9yLWxpbnV4LTMuMTgvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19ibG9j
a3MuaAkyMDA3LTAxLTI0IDE4OjA5OjE3LjAwMDAwMDAwMCArMDEwMA0KQEAg
LTEsNSArMSw1IEBADQogLyoNCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAw
NiwgU3RvY2tob2xtcyBVbml2ZXJzaXRldA0KKyAqIENvcHlyaWdodCAoYykg
MjAwNS0yMDA3LCBTdG9ja2hvbG1zIFVuaXZlcnNpdGV0DQogICogKFN0b2Nr
aG9sbSBVbml2ZXJzaXR5LCBTdG9ja2hvbG0gU3dlZGVuKQ0KICAqIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuDQogICoNCkBAIC0zMSwxMSArMzEsMTUgQEANCiAg
KiBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4NCiAgKi8NCiANCi0vKiAk
SWQ6IG5ucGZzX2Jsb2Nrcy5oLHYgMS4yIDIwMDYvMTAvMjQgMTY6MzM6MzEg
dG9sIEV4cCAkICovDQorLyogJElkOiBubnBmc19ibG9ja3MuaCx2IDEuMyAy
MDA3LzAxLzI0IDE3OjA5OjE3IHRvbCBFeHAgJCAqLw0KIA0KICNkZWZpbmUg
Tk5QRlNfTk9fSU5ERVggICAwICAvKiBkdW1teSBjYWNoZSBpbmRleCAqLw0K
ICNkZWZpbmUgTk5QRlNfTk9fT0ZGU0VUICAoKHVpbnQ2NF90KS0xKSAgLyog
ZHVtbXkgb2Zmc2V0LCBubyBibG9jayAqLw0KIA0KLSNkZWZpbmUgTk5QRlNf
Q0FDSEVfRklMRV9QQVRIICAgICIlMDJYLyUwMlgvJTAybGxYIg0KLSNkZWZp
bmUgTk5QRlNfQ0FDSEVfRElSX1BBVEggICAgICIlMDJYLyUwMlhAIg0KLSNk
ZWZpbmUgTk5QRlNfQ0FDSEVfUEFUSF9TSVpFICAgICggNiArMSArMisxICsx
NiArMSkNCisjZGVmaW5lIE5OUEZTX0NBQ0hFX0ZJTEVfRElSMSAgICAgICAg
IiUwMngiDQorI2RlZmluZSBOTlBGU19DQUNIRV9GSUxFX0RJUl9QQVRIICAg
IE5OUEZTX0NBQ0hFX0ZJTEVfRElSMSAiLyIgTk5QRlNfQ0FDSEVfRklMRV9E
SVIxDQorI2RlZmluZSBOTlBGU19DQUNIRV9GSUxFX0JMT0NLX1BBVEggICIl
MDJsbHgiDQorDQorI2RlZmluZSBOTlBGU19DQUNIRV9GSUxFX1BBVEggICBO
TlBGU19DQUNIRV9GSUxFX0RJUl9QQVRIICIvIiBOTlBGU19DQUNIRV9GSUxF
X0JMT0NLX1BBVEgNCisjZGVmaW5lIE5OUEZTX0NBQ0hFX0RJUl9QQVRIICAg
IE5OUEZTX0NBQ0hFX0ZJTEVfRElSX1BBVEggIkAiDQorI2RlZmluZSBOTlBG
U19DQUNIRV9QQVRIX1NJWkUgICAoIDYgKzEgKzIrMSArMTYgKzEgKQ0KZGlm
ZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS0wLjkwL25ucGZzL2luY2x1ZGUv
bm5wZnMvbm5wZnNfbWVzc2FnZS5oIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5w
ZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19tZXNzYWdlLmgNCi0tLSBhcmxhLTAu
OTAvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19tZXNzYWdlLmgJMjAwNi0x
MC0yNCAxODozMzozMi4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLWZvci1s
aW51eC0zLjE4L25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfbWVzc2FnZS5o
CTIwMTYtMDEtMTQgMDA6MjY6MDQuMTI2MDE1MTM2ICswMTAwDQpAQCAtMzEs
NyArMzEsNyBAQA0KICAqIFNVQ0ggREFNQUdFLg0KICAqLw0KIA0KLS8qICRJ
ZDogbm5wZnNfbWVzc2FnZS5oLHYgMS42MSAyMDA2LzEwLzI0IDE2OjMzOjMy
IHRvbCBFeHAgJCAqLw0KKy8qICRJZDogbm5wZnNfbWVzc2FnZS5oLHYgMS42
MiAyMDA5LzAyLzI0IDIwOjIwOjU1IHRvbCBFeHAgJCAqLw0KIA0KICNpZm5k
ZWYgX3htc2dfaA0KICNkZWZpbmUgX3htc2dfaA0KQEAgLTUyLDcgKzUyLDEx
IEBAIHR5cGVkZWYgdWludDE2X3Qgbm5wZnNfcmlnaHRzOw0KICAqIFRoZSBu
bnBmc19jcmVkLCBpZiBwYWcgPT0gMCwgdXNlIHVpZCANCiAgKi8NCiB0eXBl
ZGVmIHN0cnVjdCBubnBmc19jcmVkIHsNCisjaWYgKGRlZmluZWQoX19LRVJO
RUxfXykgJiYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9O
KDMsMTQsMCkpDQorICAgIGt1aWRfdCB1aWQ7DQorI2Vsc2UNCiAgICAgdWlu
dDMyX3QgdWlkOw0KKyNlbmRpZg0KICAgICBubnBmc19wYWdfdCBwYWc7DQog
fSBubnBmc19jcmVkOw0KIA0KQEAgLTEwNiw3ICsxMTAsNyBAQCB0eXBlZGVm
IHN0cnVjdCBubnBmc19ibG9ja19oYW5kbGUgew0KIA0KIC8qIG5ucGZzX25v
ZGUuZmxhZ3MNCiAgKiBUaGUgbG93ZXIgMTYgYml0IGZsYWdzIGFyZSByZXNl
cnZlZCBmb3IgY29tbW9uIG5ucGZzIGZsYWdzDQotICogVGhlIHVwcGVyIDE2
IGJpdCBmbGFncyBhcmUgcmVzZXJ2ZWQgZm9yIG9wZXJ0aW5nIHN5c3RlbSBk
ZXBlbmRhbnQNCisgKiBUaGUgdXBwZXIgMTYgYml0IGZsYWdzIGFyZSByZXNl
cnZlZCBmb3Igb3BlcmF0aW5nIHN5c3RlbSBkZXBlbmRlbnQNCiAgKiBmbGFn
cy4NCiAgKi8NCiANCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEtMC45
MC9ubnBmcy9saW51eC9ubnBmcy9ubm5wZnMuaCBhcmxhLWZvci1saW51eC0z
LjE4L25ucGZzL2xpbnV4L25ucGZzL25ubnBmcy5oDQotLS0gYXJsYS0wLjkw
L25ucGZzL2xpbnV4L25ucGZzL25ubnBmcy5oCTIwMDItMDktMDcgMTI6NDc6
MTcuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS1mb3ItbGludXgtMy4xOC9u
bnBmcy9saW51eC9ubnBmcy9ubm5wZnMuaAkyMDAyLTA5LTA3IDEyOjQ3OjE3
LjAwMDAwMDAwMCArMDIwMA0KQEAgLTEsNCArMSw0IEBADQogLyogJElkOiBu
bm5wZnMuaCx2IDEuMiAyMDAyLzA5LzA3IDEwOjQ3OjE3IGxoYSBFeHAgJCAq
Lw0KLS8qICRTb3VyY2U6IC9hZnMvc3RhY2tlbi5rdGguc2Uvc3JjL1NvdXJj
ZVJlcG9zaXRvcnkvYXJsYS9ubnBmcy9saW51eC9ubnBmcy9ubm5wZnMuaCx2
ICQgKi8NCisvKiAkU291cmNlOiAvVXNlcnMvYm8vdG1wL0FybGFTb3VyY2VS
ZXBvc2l0b3J5L2FybGEvbm5wZnMvbGludXgvbm5wZnMvbm5ucGZzLmgsdiAk
ICovDQogDQogI2RlZmluZSBOTk5QRlMgMg0KZGlmZiAtdXByTiAtWG5vZGlm
Zi50eHQgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmgg
YXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19m
cy5oDQotLS0gYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2Zz
LmgJMjAwNi0xMC0yNCAxODozMzo0OC4wMDAwMDAwMDAgKzAyMDANCisrKyBh
cmxhLWZvci1saW51eC0zLjE4L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2Zz
LmgJMjAxNi0wMS0xMyAyMjo1NzowNi4zODc2OTMzMzkgKzAxMDANCkBAIC04
NCw4ICs4NCwxMyBAQCBzdHJ1Y3Qgbm5wZnMgew0KICAgICBzdHJ1Y3QgdmZz
bW91bnQgKmNhY2hlcm9vdDsgLyogc2ltcGxpZnkgb3BlbiBvZiBjYWNoZSBi
bG9ja3MgKi8NCiAgICAgc3RydWN0IGRlbnRyeSAqY2FjaGVkaXI7DQogDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQs
MCkNCiAgICAgdWlkX3QgdWlkOyAvKiBrZWVwIHRyYWNrIG9mIGRhZW1vbidz
IGlkZW50aXR5ICovDQogICAgIGdpZF90IGdpZDsNCisjZWxzZQ0KKyAgICBr
dWlkX3QgdWlkOyAvKiBrZWVwIHRyYWNrIG9mIGRhZW1vbidzIGlkZW50aXR5
ICovDQorICAgIGtnaWRfdCBnaWQ7DQorI2VuZGlmDQogDQogICAgIHN0cnVj
dCB7DQogCWludCByZWN1cnNlOw0KZGlmZiAtdXByTiAtWG5vZGlmZi50eHQg
YXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wuaCBhcmxh
LWZvci1saW51eC0zLjE4L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wu
aA0KLS0tIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2Ns
LmgJMjAwNy0wMS0wOCAxNDo1Mjo0OS4wMDAwMDAwMDAgKzAxMDANCisrKyBh
cmxhLWZvci1saW51eC0zLjE4L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2xv
Y2wuaAkyMDE2LTAxLTEzIDIzOjAxOjEwLjE3ODcwODAzNyArMDEwMA0KQEAg
LTM0LDcgKzM0LDcgQEANCiAgKiBTVUNIIERBTUFHRS4NCiAgKi8NCiANCi0v
KiAkSWQ6IG5ucGZzX2xvY2wuaCx2IDEuNzcgMjAwNy8wMS8wOCAxMzo1Mjo0
OSB0b2wgRXhwICQgKi8NCisvKiAkSWQ6IG5ucGZzX2xvY2wuaCx2IDEuNzgg
MjAxMC8wOC8wOCAyMDo0MzowNiB0b2wgRXhwICQgKi8NCiANCiAjaWZkZWYg
SEFWRV9DT05GSUdfSA0KICNpbmNsdWRlIDxjb25maWcuaD4NCkBAIC01MSw3
ICs1MSw5IEBADQogI2luY2x1ZGUgPGxpbnV4L3N0YXQuaD4NCiAjaW5jbHVk
ZSA8bGludXgvc3RyaW5nLmg+DQogI2luY2x1ZGUgPGxpbnV4L25hbWVpLmg+
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs
NiwzOSkNCiAjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4NCisjZW5kaWYN
CiAjaW5jbHVkZSA8bGludXgvd2FpdC5oPg0KIA0KIC8qDQpAQCAtMTM4LDE1
ICsxNDAsMTYgQEAgdHlwZWRlZiBfX3UzMiAgdWludDMyX3Q7DQogaW50DQog
bm5wZnNfZmV0Y2hfcm9vdChzdHJ1Y3QgaW5vZGUgKmkpOw0KIA0KLSNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4KQ0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs
MzkpDQogaW50DQogbm5wZnNfZ2V0X3NiKHN0cnVjdCBmaWxlX3N5c3RlbV90
eXBlICpmc190eXBlLA0KIAkgICAgIGludCBmbGFncywgY29uc3QgY2hhciAq
ZGV2X25hbWUsDQogCSAgICAgdm9pZCAqZGF0YSwgc3RydWN0IHZmc21vdW50
ICptbnQpOw0KICNlbHNlDQotc3RydWN0IHN1cGVyX2Jsb2NrICoNCi1ubnBm
c19nZXRfc2IgKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBlLA0K
LQkgICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1lLCB2b2lk
ICpkYXRhKTsNCitzdHJ1Y3QgZGVudHJ5Kg0KK25ucGZzX21vdW50KHN0cnVj
dCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBlLA0KKwkgICAgIGludCBmbGFn
cywgY29uc3QgY2hhciAqZGV2X25hbWUsDQorCSAgICAgdm9pZCAqZGF0YSk7
DQogI2VuZGlmDQogDQogZXh0ZXJuIHN0cnVjdCBkZW50cnlfb3BlcmF0aW9u
cyBubnBmc19kZW50cnlfb3BlcmF0aW9uczsNCkBAIC0yMDAsMTYgKzIwMywy
NSBAQCBubnBmc19pd3JpdGVjb3VudCAoc3RydWN0IGlub2RlICppbm9kZSkN
CiAgKiBIZWxwIGZ1bmN0aW9uIHRvIHJlYWQgdGhlIGRlbnRyeS0+ZF9jb3Vu
dCBhIHBvcnRhYmxlIHdheQ0KICAqLw0KIA0KKy8qI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkqLw0KIHN0YXRpYyBp
bmxpbmUgaW50DQogbm5wZnNfZGNvdW50IChjb25zdCBzdHJ1Y3QgZGVudHJ5
ICpkZW50cnkpDQorLyojZWxzZQ0KK3N0YXRpYyBpbmxpbmUgaW50DQorbm5w
ZnNfZGNvdW50IChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQorI2VuZGlmKi8N
CiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDIsNiwzOCkNCiAgICAgcmV0dXJuIGF0b21pY19yZWFkKCZkZW50cnktPmRf
Y291bnQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTEsMCkNCisgICAgcmV0dXJuIGF0b21pY19yZWFkKChjb25z
dCBhdG9taWNfdCopJmRlbnRyeS0+ZF9jb3VudCk7DQorI2Vsc2UNCisgICAg
cmV0dXJuIGRfY291bnQoZGVudHJ5KTs7DQorI2VuZGlmDQogfQ0KIA0KIGV4
dGVybiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJT
SU9OKDIsNiwxOCkNCiBjb25zdA0KLSNlbmRpZg0KIHN0cnVjdCBhZGRyZXNz
X3NwYWNlX29wZXJhdGlvbnMgbm5wZnNfYW9wczsNCiANCiAjaWZuZGVmIGxp
c3RfZm9yX2VhY2gNCkBAIC0yMzcsNyArMjQ5LDEyIEBAIG5ucGZzX2ZpeHVw
X3N5c2NhbGxfbG9zc2FnZSh2b2lkKTsNCiAjZW5kaWYNCiANCiAjZGVmaW5l
IG5ucGZzX2Rldl90IGRldl90DQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAjZGVmaW5lIG5ucGZzX2Rf
ZW50cnlfdW5oYXNoZWQoZCkgaGxpc3RfdW5oYXNoZWQoZCkNCisjZWxzZQ0K
KyNkZWZpbmUgbm5wZnNfZF9lbnRyeV91bmhhc2hlZChkKSBobGlzdF9ibF91
bmhhc2hlZChkKQ0KKyNlbmRpZg0KIA0KICNkZWZpbmUgTk5QRlNfTk9PUCAg
ICAgIHdoaWxlKDApe30NCiANCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFy
bGEtMC45MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19ub2RlLmggYXJsYS1m
b3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19ub2RlLmgN
Ci0tLSBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbm9kZS5o
CTIwMDYtMTItMTEgMTc6Mjk6MzkuMDAwMDAwMDAwICswMTAwDQorKysgYXJs
YS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19ub2Rl
LmgJMjAxMC0wOC0wOCAyMjo0MzowNy4wMDAwMDAwMDAgKzAyMDANCkBAIC01
NCw3ICs1NCw3IEBAIGV4dGVybiB1aW50MzJfdCBubnBmc19ibG9ja3NpemVi
aXRzOw0KICAqIGZsYWdzLg0KICAqLw0KIA0KLSNkZWZpbmUgTk5QRlNfTk9E
RV9JUFVUCTB4MDAwMTAwMDAgICAvKiBub2RlIGlzIGluIGlwdXQoKSwgYXZv
aWQgZGVhZGxvY2sgKi8NCisjZGVmaW5lIE5OUEZTX05PREVfSVBVVAkweDAw
MDEwMDAwICAgLyogbm9kZSBpcyBpbiBpcHV0KCksIGF2b2lkIGRlYWRsb2Nr
LiBDYW4gYmUgcmVtb3ZlZD8gKi8NCiANCiAjZGVmaW5lIFhOX0hBU0hTSVpF
IDEwMDkNCiAjZGVmaW5lIFhOX0NMRUFOVVBfSVRFUlMgMTI5DQpkaWZmIC11
cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNf
YmxvY2tzLmMgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBm
c19ibG9ja3MuYw0KLS0tIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19i
bG9ja3MuYwkyMDA3LTAxLTA4IDE0OjI0OjI0LjAwMDAwMDAwMCArMDEwMA0K
KysrIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgvbm5wZnNfYmxv
Y2tzLmMJMjAxNi0wMS0xNCAwMTowMToxOS44MDcxNDI2ODUgKzAxMDANCkBA
IC0zNCw3ICszNCw3IEBADQogICogUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuDQogICovDQogDQotLyogJElkOiBubnBmc19ibG9ja3MuYyx2IDEuMyAy
MDA3LzAxLzA4IDEzOjI0OjI0IHRvbCBFeHAgJCAqLw0KKy8qICRJZDogbm5w
ZnNfYmxvY2tzLmMsdiAxLjYgMjAxMC8wOC8wOCAyMDo0MzowNCB0b2wgRXhw
ICQgKi8NCiANCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfbG9jbC5oPg0KICNp
bmNsdWRlIDxubnBmcy9ubnBmc19mcy5oPg0KQEAgLTQzLDYgKzQzLDM2IEBA
DQogI2luY2x1ZGUgPGxpbnV4L21vdW50Lmg+DQogI2luY2x1ZGUgPGxpbnV4
L21tLmg+DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxf
VkVSU0lPTigzLDEyLDApDQorLyogVE9ETzogaW1wbGVtZW50IGEgcmVwbGFj
ZW1lbnQgZm9yIHZmc19wYXRoX2xvb2t1cCBvbiBrZXJuZWwgMy4xMiBhbmQg
bGF0ZXIgKi8NCisvKioNCisgKiB2ZnNfcGF0aF9sb29rdXAgLSBsb29rdXAg
YSBmaWxlIHBhdGggcmVsYXRpdmUgdG8gYSBkZW50cnktdmZzbW91bnQgcGFp
cg0KKyAqIEBkZW50cnk6ICBwb2ludGVyIHRvIGRlbnRyeSBvZiB0aGUgYmFz
ZSBkaXJlY3RvcnkNCisgKiBAbW50OiBwb2ludGVyIHRvIHZmcyBtb3VudCBv
ZiB0aGUgYmFzZSBkaXJlY3RvcnkNCisgKiBAbmFtZTogcG9pbnRlciB0byBm
aWxlIG5hbWUNCisgKiBAZmxhZ3M6IGxvb2t1cCBmbGFncw0KKyAqIEBwYXRo
OiBwb2ludGVyIHRvIHN0cnVjdCBwYXRoIHRvIGZpbGwNCisgKi8NCitpbnQg
bm5wZnNfcGF0aF9sb29rdXAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1
Y3QgdmZzbW91bnQgKm1udCwNCisJCSAgICBjb25zdCBjaGFyICpuYW1lLCB1
bnNpZ25lZCBpbnQgZmxhZ3MsDQorCQkgICAgc3RydWN0IHBhdGggKnBhdGgp
DQorew0KKyNpZiAwDQorCXN0cnVjdCBuYW1laWRhdGEgbmQ7DQorCWludCBl
cnI7DQorCW5kLnJvb3QuZGVudHJ5ID0gZGVudHJ5Ow0KKwluZC5yb290Lm1u
dCA9IG1udDsNCisJQlVHX09OKGZsYWdzICYgTE9PS1VQX1BBUkVOVCk7DQor
CS8qIHRoZSBmaXJzdCBhcmd1bWVudCBvZiBkb19wYXRoX2xvb2t1cCgpIGlz
IGlnbm9yZWQgd2l0aCBMT09LVVBfUk9PVCAqLw0KKwllcnIgPSBkb19wYXRo
X2xvb2t1cChBVF9GRENXRCwgbmFtZSwgZmxhZ3MgfCBMT09LVVBfUk9PVCwg
Jm5kKTsNCisJaWYgKCFlcnIpDQorCQkqcGF0aCA9IG5kLnBhdGg7DQorCXJl
dHVybiBlcnI7DQorI2VuZGlmDQorCXJldHVybiAtMTsNCit9DQorI2VuZGlm
DQorDQogLyoNCiAgKiByZXR1cm4gdHJ1ZSBpZiBibG9jayBpcyBpbiBjYWNo
ZQ0KICAqLw0KQEAgLTI5MCw3ICszMjAsMTMgQEAgbm5wZnNfYmxvY2tfZXh0
ZW5kKHN0cnVjdCBubnBmc19ub2RlICpubw0KICAgICBiYWNrbm9kZSA9IGJh
Y2tmaWxlLT5mX21hcHBpbmctPmhvc3Q7DQogDQogICAgIG11dGV4X2xvY2so
JmJhY2tub2RlLT5pX211dGV4KTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMyw4LDApDQogICAgIHJldCA9IHZtdHJ1bmNh
dGUoYmFja25vZGUsIG5ucGZzX2Jsb2Nrc2l6ZSk7DQorI2Vsc2UNCisgICAg
cmV0ID0gaW5vZGVfbmV3c2l6ZV9vayhiYWNrbm9kZSwgbm5wZnNfYmxvY2tz
aXplKTsNCisgICAgaWYoIXJldCkNCisgICAgICAgIHRydW5jYXRlX3NldHNp
emUoYmFja25vZGUsIG5ucGZzX2Jsb2Nrc2l6ZSk7DQorI2VuZGlmDQogICAg
IG11dGV4X3VubG9jaygmYmFja25vZGUtPmlfbXV0ZXgpOw0KICAgICANCiAg
ICAgZmlscF9jbG9zZShiYWNrZmlsZSwgTlVMTCk7DQpAQCAtMzE4LDEwICsz
NTQsMjYgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNfbm9kZSAq
bm9kZQ0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9IE5OUEZTX0ZST01f
WE5PREUobm9kZSk7DQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBYTk9E
RV9UT19WTk9ERShub2RlKTsNCiAgICAgaW50IGZsYWdzID0gT19MQVJHRUZJ
TEUgfCBmbGFnOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBuYW1laWRhdGEgbmQ7DQor
I2Vsc2UNCisgICAgc3RydWN0IHBhdGggcGF0aDsNCisjZW5kaWYNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0K
ICAgICB1aWRfdCBzYXZldWlkOw0KICAgICBnaWRfdCBzYXZlZ2lkOw0KKyNl
bHNlDQorICAgIGt1aWRfdCBzYXZldWlkOw0KKyAgICBrZ2lkX3Qgc2F2ZWdp
ZDsNCisjZW5kaWYNCiAgICAgaW50IHJldDsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOSkNCisgICAgY29uc3Qg
c3RydWN0IGNyZWQgKm9sZF9jcmVkOw0KKyAgICBzdHJ1Y3QgY3JlZCAqb3Zl
cnJpZGVfY3JlZDsNCisjZW5kaWYNCisNCisgICAgKHZvaWQpc2F2ZXVpZDsN
CisgICAgKHZvaWQpc2F2ZWdpZDsNCiANCiAgICAgQlVHX09OKCFubnBmc3Ap
Ow0KICAgICBCVUdfT04oZmxhZ3MgJiBPX0NSRUFUICYmIGZpbGUgIT0gTlVM
TCk7DQpAQCAtMzQ2LDIxICszOTgsNDMgQEAgbm5wZnNfYmxvY2tfb3Blbihz
dHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KICAgICBCVUdfT04oIW5ucGZzcC0+
Y2FjaGVkaXIgfHwgIW5ucGZzcC0+Y2FjaGVyb290KTsNCiAgICAgDQogICAg
IC8qIHVzZSB0aGUgbmZzZCB0cmljayB0byBnaXZlIHVzIGFjY2VzcyAqLw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2
LDI4KQ0KICAgICBzYXZldWlkID0gY3VycmVudC0+ZnN1aWQ7DQogICAgIHNh
dmVnaWQgPSBjdXJyZW50LT5mc2dpZDsNCiAgICAgY3VycmVudC0+ZnN1aWQg
PSBubnBmc3AtPnVpZDsNCiAgICAgY3VycmVudC0+ZnNnaWQgPSBubnBmc3At
PmdpZDsNCi0NCi0gICAgbmQuZGVudHJ5ID0gZGdldChubnBmc3AtPmNhY2hl
ZGlyKTsNCi0gICAgbmQubW50ID0gbW50Z2V0KG5ucGZzcC0+Y2FjaGVyb290
KTsNCi0gICAgbmQubGFzdF90eXBlID0gTEFTVF9OT1JNOw0KLSAgICBuZC5k
ZXB0aCA9IDA7DQotICAgIG5kLmZsYWdzID0gMDsNCi0gICAgDQotICAgIGlm
IChmbGFncyAmIE9fQ1JFQVQpDQotCW5kLmZsYWdzID0gTE9PS1VQX1BBUkVO
VDsNCi0gICAgDQotICAgIHJldCA9IHBhdGhfd2FsayhjYWNoZW5hbWUsICZu
ZCk7DQorI2Vsc2UNCisgICAgc2F2ZXVpZCA9IGN1cnJlbnRfZnN1aWQoKTsN
CisgICAgc2F2ZWdpZCA9IGN1cnJlbnRfZnNnaWQoKTsNCisgICAgb3ZlcnJp
ZGVfY3JlZCA9IHByZXBhcmVfY3JlZHMoKTsNCisgICAgaWYgKG92ZXJyaWRl
X2NyZWQgPT0gTlVMTCkNCisgICAgICAgIHJldHVybiAtRU5PTUVNOw0KKyAg
ICBvdmVycmlkZV9jcmVkLT5mc3VpZCA9IG5ucGZzcC0+dWlkOw0KKyAgICBv
dmVycmlkZV9jcmVkLT5mc2dpZCA9IG5ucGZzcC0+Z2lkOw0KKyAgICBvbGRf
Y3JlZCA9IG92ZXJyaWRlX2NyZWRzKG92ZXJyaWRlX2NyZWQpOw0KKyNlbmRp
Zg0KKw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDEsMCkNCisgICAgcmV0ID0gdmZzX3BhdGhfbG9va3VwKG5ucGZzcC0+
Y2FjaGVkaXIsIG5ucGZzcC0+Y2FjaGVyb290LA0KKwkJCSAgY2FjaGVuYW1l
LA0KKwkJCSAgZmxhZ3MgJiBPX0NSRUFUID8gTE9PS1VQX1BBUkVOVCA6IDAs
DQorCQkJICAmbmQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsMTIsMCkNCisgICAgcmV0ID0gdmZzX3BhdGhfbG9v
a3VwKG5ucGZzcC0+Y2FjaGVkaXIsIG5ucGZzcC0+Y2FjaGVyb290LA0KKwkJ
CSAgY2FjaGVuYW1lLA0KKwkJCSAgZmxhZ3MgJiBPX0NSRUFUID8gTE9PS1VQ
X1BBUkVOVCA6IDAsDQorCQkJICAmbmQucGF0aCk7DQorI2VsaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBy
ZXQgPSBubnBmc19wYXRoX2xvb2t1cChubnBmc3AtPmNhY2hlZGlyLCBubnBm
c3AtPmNhY2hlcm9vdCwNCisJCQkgIGNhY2hlbmFtZSwNCisJCQkgIGZsYWdz
ICYgT19DUkVBVCA/IExPT0tVUF9QQVJFTlQgOiAwLA0KKwkJCSAgJm5kLnBh
dGgpOw0KKyNlbHNlDQorICAgIHJldCA9IG5ucGZzX3BhdGhfbG9va3VwKG5u
cGZzcC0+Y2FjaGVkaXIsIG5ucGZzcC0+Y2FjaGVyb290LA0KKwkJCSAgY2Fj
aGVuYW1lLA0KKwkJCSAgZmxhZ3MgJiBPX0NSRUFUID8gTE9PS1VQX1BBUkVO
VCA6IDAsDQorCQkJICAmcGF0aCk7DQorI2VuZGlmDQogICAgIGlmIChyZXQp
IHsNCiAJdWludDMyX3Qgbm1hc2tzID0gbm9kZS0+ZGF0YS5ubWFza3M7DQog
CXVpbnQzMl90IG1hc2s7DQpAQCAtMzg3LDE2ICs0NjEsMzcgQEAgbm5wZnNf
YmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KICAgICANCiAg
ICAgaWYgKGZsYWdzICYgT19DUkVBVCkgew0KIAkvKiBYWFggbW9kZSBiaXRz
IG9uIGNyZWF0ZSAtLSBTX0lSVVNSfFNfSVdVU1IgKi8NCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxLDApDQogCXN0cnVj
dCBkZW50cnkgKmRlbnRyeSA9IGxvb2t1cF9jcmVhdGUoJm5kLCAwKTsJDQor
I2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx
OSwwKQ0KKwkvKiBUT0RPOiBjaGVjayB0aGUgY2FsbCB0byBrZXJuX3BhdGhf
Y3JlYXRlKCksIGlzIHRoZSBzZWNvbmQgYXJndW1lbnQgb3B0aW9uYWw/ICov
DQorCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGtlcm5fcGF0aF9jcmVhdGUo
QVRfRkRDV0QsIE5VTEwsICZuZC5wYXRoLCAwKTsJDQorI2Vsc2UNCisJLyog
VE9ETzogY2hlY2sgdGhlIGNhbGwgdG8ga2Vybl9wYXRoX2NyZWF0ZSgpLCBp
cyB0aGUgc2Vjb25kIGFyZ3VtZW50IG9wdGlvbmFsPyAqLw0KKwlzdHJ1Y3Qg
ZGVudHJ5ICpkZW50cnkgPSBrZXJuX3BhdGhfY3JlYXRlKEFUX0ZEQ1dELCBO
VUxMLCAmcGF0aCwgMCk7CQ0KKyNlbmRpZg0KIAlpZiAoSVNfRVJSKGRlbnRy
eSkpIHsNCiAJICAgIHJldCA9IFBUUl9FUlIoZGVudHJ5KTsNCiAJfSBlbHNl
IHsNCi0JICAgIHJldCA9IHZmc19jcmVhdGUobmQuZGVudHJ5LT5kX2lub2Rl
LCBkZW50cnksIFNfSVJVU1J8U19JV1VTUiwgJm5kKTsNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQorCSAgICBy
ZXQgPSB2ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5LT5kX2lub2RlLCBkZW50
cnksIFNfSVJVU1J8U19JV1VTUiwgJm5kKTsNCisjZWxpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCSAgICAvKiBU
T0RPOiBzaG91bGQgdGhlIGxhc3QgYXJndW1lbnQgdG8gdmZzX2NyZWF0ZTog
Ym9vbCB3YW50X2V4Y2wsIGJlIDAgb3IgMT8gKi8NCisJICAgIHJldCA9IHZm
c19jcmVhdGUobmQucGF0aC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwgU19J
UlVTUnxTX0lXVVNSLCAwKTsNCisjZWxzZQ0KKwkgICAgLyogVE9ETzogc2hv
dWxkIHRoZSBsYXN0IGFyZ3VtZW50IHRvIHZmc19jcmVhdGU6IGJvb2wgd2Fu
dF9leGNsLCBiZSAwIG9yIDE/ICovDQorCSAgICByZXQgPSB2ZnNfY3JlYXRl
KHBhdGguZGVudHJ5LT5kX2lub2RlLCBkZW50cnksIFNfSVJVU1J8U19JV1VT
UiwgMCk7DQorI2VuZGlmDQogCSAgICBkcHV0KGRlbnRyeSk7DQogCX0NCiAN
Ci0JbXV0ZXhfdW5sb2NrKCZuZC5kZW50cnktPmRfaW5vZGUtPmlfbXV0ZXgp
Ow0KLQlwYXRoX3JlbGVhc2UoJm5kKTsNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwltdXRleF91bmxvY2so
Jm5kLnBhdGguZGVudHJ5LT5kX2lub2RlLT5pX211dGV4KTsNCisJcGF0aF9w
dXQoJm5kLnBhdGgpOw0KKyNlbHNlDQorCW11dGV4X3VubG9jaygmcGF0aC5k
ZW50cnktPmRfaW5vZGUtPmlfbXV0ZXgpOw0KKwlwYXRoX3B1dCgmcGF0aCk7
DQorI2VuZGlmDQogDQogCWlmIChyZXQpIHsNCiAJICAgIHByaW50aygibm5w
ZnNfYmxvY2tfb3BlbiglcykgY3JlYXRlIGZhaWxlZDogJWRcbiIsIGNhY2hl
bmFtZSwgLXJldCk7DQpAQCAtNDEwLDEyICs1MDUsMjUgQEAgbm5wZnNfYmxv
Y2tfb3BlbihzdHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KIAkgICAgcmV0ID0g
bm5wZnNfYmxvY2tfZXh0ZW5kKG5vZGUsIG9mZnNldCk7DQogCX0NCiAgICAg
fSBlbHNlIHsNCi0Jc3RydWN0IGZpbGUgKmYgPSBkZW50cnlfb3BlbihuZC5k
ZW50cnksIG5kLm1udCwgZmxhZ3MpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjkpDQorCXN0cnVjdCBmaWxlICpm
ID0gZGVudHJ5X29wZW4obmQucGF0aC5kZW50cnksIG5kLnBhdGgubW50LCBm
bGFncyk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMyw2LDApDQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRy
eV9vcGVuKG5kLnBhdGguZGVudHJ5LCBuZC5wYXRoLm1udCwgZmxhZ3MsIGN1
cnJlbnRfY3JlZCgpKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDE5LDApDQorCXN0cnVjdCBwYXRoIHRtcF9wYXRo
ID0geyAubW50ID0gbmQucGF0aC5tbnQsIC5kZW50cnkgPSBuZC5wYXRoLmRl
bnRyeSB9Ow0KKyAgICAgICAgc3RydWN0IGZpbGUgKmYgPSBkZW50cnlfb3Bl
bigmdG1wX3BhdGgsIGZsYWdzLCBjdXJyZW50X2NyZWQoKSk7DQorI2Vsc2UN
CisgICAgICAgIHN0cnVjdCBmaWxlICpmID0gZGVudHJ5X29wZW4oJnBhdGgs
IGZsYWdzLCBjdXJyZW50X2NyZWQoKSk7DQorI2VuZGlmDQogCWlmIChJU19F
UlIoZikpIHsNCiAJICAgIHJldCA9IFBUUl9FUlIoZik7DQogCSAgICBwcmlu
dGsoIm5ucGZzX2Jsb2NrX29wZW4oJXMpIG9wZW4gZmFpbGVkOiAlZFxuIiwg
Y2FjaGVuYW1lLCAtcmV0KTsNCiAJICAgIG5ucGZzX2RlYnVnX29vcHMoKTsN
Ci0JICAgIHBhdGhfcmVsZWFzZSgmbmQpOw0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCSAgICBwYXRoX3B1
dCgmbmQucGF0aCk7DQorI2Vsc2UNCisJICAgIHBhdGhfcHV0KCZwYXRoKTsN
CisjZW5kaWYNCiAJfSBlbHNlIHsNCiAJICAgICpmaWxlID0gZjsNCiAJfQ0K
QEAgLTQyNCw4ICs1MzIsMTMgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qg
bm5wZnNfbm9kZSAqbm9kZQ0KICAgICAvKiBwYXRoX3JlbGVhc2UoKSBpcyB1
c3VhbGx5IGhhbmRsZWQgb24gY2xvc2UgKi8NCiANCiAgb3V0Og0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0K
ICAgICBjdXJyZW50LT5mc3VpZCA9IHNhdmV1aWQ7DQogICAgIGN1cnJlbnQt
PmZzZ2lkID0gc2F2ZWdpZDsNCisjZWxzZQ0KKyAgICByZXZlcnRfY3JlZHMo
b2xkX2NyZWQpOw0KKyAgICBwdXRfY3JlZChvdmVycmlkZV9jcmVkKTsNCisj
ZW5kaWYNCiANCiAgICAgcmV0dXJuIHJldDsNCiB9DQpkaWZmIC11cHJOIC1Y
bm9kaWZmLnR4dCBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfY29tbW9u
LmMgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBmc19jb21t
b24uYw0KLS0tIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19jb21tb24u
YwkyMDA2LTEyLTExIDE3OjMxOjQ2LjAwMDAwMDAwMCArMDEwMA0KKysrIGFy
bGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgvbm5wZnNfY29tbW9uLmMJ
MjAxNi0wMS0xMyAxODo1ODo1Ny42MTA4MzE5MTAgKzAxMDANCkBAIC0xMTIs
MTAgKzExMiwxNSBAQCBubnBmc19wcmludF9hbGlhc2VzKGNvbnN0IHN0cnVj
dCBpbm9kZSAqDQogdm9pZA0KIG5ucGZzX3ByaW50X2FsaWFzZXNfcmVhbChj
b25zdCBzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KIHsNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHN0cnVj
dCBsaXN0X2hlYWQgKmFsaWFzOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBzdHJ1Y3QgaGxpc3Rf
bm9kZSAqYWxpYXM7DQorI2VuZGlmDQogICAgIHN0cnVjdCBkZW50cnkgKmRl
bnRyeTsNCiAgICAgaW50IGJhaWxvdXQgPSAxMDA7DQogDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBh
bGlhcyA9IGlub2RlLT5pX2RlbnRyeS5uZXh0Ow0KICAgICB3aGlsZSAoYWxp
YXMgIT0gJmlub2RlLT5pX2RlbnRyeSkgew0KIAlpZiAoLS1iYWlsb3V0IDwg
MCkgew0KQEAgLTEzMSw2ICsxMzYsMjQgQEAgbm5wZnNfcHJpbnRfYWxpYXNl
c19yZWFsKGNvbnN0IHN0cnVjdCBpbg0KIAl9DQogCWFsaWFzID0gYWxpYXMt
Pm5leHQ7DQogICAgIH0NCisjZWxzZQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisgICAgaGxpc3RfZm9yX2Vh
Y2hfZW50cnkoZGVudHJ5LCBhbGlhcywgJmlub2RlLT5pX2RlbnRyeSwgZF9h
bGlhcykgew0KKyNlbHNlDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRl
bnRyeSwgJmlub2RlLT5pX2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbmRpZg0K
KwlpZiAoLS1iYWlsb3V0IDwgMCkgew0KKwkgICAgcHJpbnRrKCIgLi4uIik7
DQorCSAgICBicmVhazsNCisJfQ0KKwlpZiAoZGVudHJ5KSB7DQorCSAgICBw
cmludGsoIiAlLipzKCVwKSIsIChpbnQpZGVudHJ5LT5kX25hbWUubGVuLA0K
KwkJICAgZGVudHJ5LT5kX25hbWUubmFtZSwgZGVudHJ5KTsNCisJICAgIGlm
IChubnBmc19kX2VudHJ5X3VuaGFzaGVkKCZkZW50cnktPmRfaGFzaCkpDQor
CQlwcmludGsoIih1bmhhc2hlZCkiKTsNCisJfQ0KKyAgICB9DQorI2VuZGlm
DQogICAgIHByaW50aygiXG4iKTsNCiB9DQogDQpkaWZmIC11cHJOIC1Ybm9k
aWZmLnR4dCBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfZGV2LmMgYXJs
YS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBmc19kZXYuYw0KLS0t
IGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19kZXYuYwkyMDA2LTEwLTI0
IDE4OjMzOjM2LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEtZm9yLWxpbnV4
LTMuMTgvbm5wZnMvbGludXgvbm5wZnNfZGV2LmMJMjAxNi0wMS0xNCAwMDoz
NDoxNS4yOTEwNDQ3NDcgKzAxMDANCkBAIC0zMDAsNyArMzAwLDkgQEAgbm5w
ZnNfaW52YWxpZGF0ZV9hbGwoc3RydWN0IG5ucGZzICpubnBmcw0KICAgICBO
TlBGU0RFQihYREVCTk9ERSwgKCJmcmVlX2FsbF9ubnBmc19ub2RlcyBzdGFy
dGluZ1xuIikpOw0KIA0KICAgICBzaHJpbmtfZGNhY2hlX3NiKG5ucGZzLT5z
Yik7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDIsNiwzNykNCiAgICAgaW52YWxpZGF0ZV9pbm9kZXMobm5wZnMtPnNiKTsN
CisjZW5kaWYNCiAgICAgDQogICAgIE5OUEZTREVCKFhERUJOT0RFLCAoImZy
ZWVfYWxsX25ucGZzX25vZGVzIGRvbmVcbiIpKTsNCiB9DQpAQCAtNTA1LDEy
ICs1MDcsMjMgQEAgbm5wZnNfZGV2d3JpdGUoc3RydWN0IGZpbGUgKmZpbGUs
IGNvbnN0DQogLyoNCiAgKiBOb3QgdXNlZC4NCiAgKi8NCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KQ0KIHN0YXRp
YyBpbnQNCiBubnBmc19kZXZpb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBz
dHJ1Y3QgZmlsZSAqZmlsZSwNCiAJICAgICAgIHVuc2lnbmVkIGludCBjbWQs
IHVuc2lnbmVkIGxvbmcgYXJnKQ0KKyNlbHNlDQorc3RhdGljIGxvbmcNCitu
bnBmc191bmxvY2tlZF9kZXZpb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwNCisJ
ICAgICAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQ0K
KyNlbmRpZg0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMiw2LDM2KQ0KICAgICBOTlBGU0RFQihYREVCREVWLCAoIm5u
cGZzX2RldmlvY3RsIGRldiA9ICVkLCBmbGFncyA9ICVkXG4iLA0KIAkJICAg
ICAgIGlub2RlLT5pX3JkZXYsIGZpbGUtPmZfZmxhZ3MpKTsNCisjZWxzZQ0K
KyAgICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2RldmlvY3RsIGRldiA9
ICVkLCBmbGFncyA9ICVkXG4iLA0KKwkJICAgICAgIGZpbGUtPmZfZGVudHJ5
LT5kX2lub2RlLT5pX3JkZXYsIGZpbGUtPmZfZmxhZ3MpKTsNCisjZW5kaWYN
CiAgICAgcmV0dXJuIC1FSU5WQUw7DQogfQ0KIA0KQEAgLTk1Myw3ICs5NjYs
MTEgQEAgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19mb3BzID0gew0K
ICAgICByZWFkOgkJbm5wZnNfZGV2cmVhZCwNCiAgICAgd3JpdGU6CQlubnBm
c19kZXZ3cml0ZSwNCiAgICAgcG9sbDoJCW5ucGZzX2RldnBvbGwsDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikN
CiAgICAgaW9jdGw6CQlubnBmc19kZXZpb2N0bCwNCisjZWxzZQ0KKyAgICB1
bmxvY2tlZF9pb2N0bDoJbm5wZnNfdW5sb2NrZWRfZGV2aW9jdGwsDQorI2Vu
ZGlmDQogICAgIHJlbGVhc2U6CQlubnBmc19kZXZjbG9zZSwNCiAgICAgb3Bl
bjoJCW5ucGZzX2Rldm9wZW4sDQogfTsNCkBAIC05NjgsOCArOTg1LDEzIEBA
IG5ucGZzX2luaXRfZGV2aWNlKHZvaWQpDQogCWluaXRfd2FpdHF1ZXVlX2hl
YWQoJihubnBmc1tpXS53YWl0X3F1ZXVlKSk7DQogCW5ucGZzX2luaXRxKCZu
bnBmc1tpXS5tZXNzYWdlcSk7DQogCW5ucGZzX2luaXRxKCZubnBmc1tpXS5z
bGVlcHEpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigyLDYsMzcpDQogCWluaXRfTVVURVgoJm5ucGZzW2ldLmluYWN0aXZl
X3NlbSk7DQogCWluaXRfTVVURVgoJm5ucGZzW2ldLmNoYW5uZWxfc2VtKTsN
CisjZWxzZQ0KKwlzZW1hX2luaXQoJm5ucGZzW2ldLmluYWN0aXZlX3NlbSwg
MSk7DQorCXNlbWFfaW5pdCgmbm5wZnNbaV0uY2hhbm5lbF9zZW0sIDEpOw0K
KyNlbmRpZg0KIAlJTklUX0xJU1RfSEVBRCgmbm5wZnNbaV0uaW5hY3RpdmVf
bGlzdCk7DQogCW5ucGZzW2ldLm5ub2RlcyA9IDA7DQogICAgIH0NCmRpZmYg
LXVwck4gLVhub2RpZmYudHh0IGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBm
c19pbm9kZW9wcy5jIGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgv
bm5wZnNfaW5vZGVvcHMuYw0KLS0tIGFybGEtMC45MC9ubnBmcy9saW51eC9u
bnBmc19pbm9kZW9wcy5jCTIwMDYtMTItMTEgMTc6MzU6MjYuMDAwMDAwMDAw
ICswMTAwDQorKysgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9u
bnBmc19pbm9kZW9wcy5jCTIwMTYtMDEtMTQgMDA6NDE6MDguODYzMDY5Njgw
ICswMTAwDQpAQCAtNDAsNiArNDAsNyBAQA0KICNpbmNsdWRlIDxubnBmcy9u
bnBmc19kZXYuaD4NCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfZGlyZW50Lmg+
DQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX3N5c2NhbGxzLmg+DQorI2luY2x1
ZGUgPGxpbnV4L2Fpby5oPg0KICNpbmNsdWRlIDxsaW51eC9iaW5mbXRzLmg+
DQogI2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4NCiAjaW5jbHVkZSA8bGludXgv
cGFnZW1hcC5oPg0KQEAgLTQ4LDE3ICs0OSwyOSBAQA0KICNpbmNsdWRlIDxh
c20vZmNudGwuaD4NCiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgiJElkOiBu
bnBmc19pbm9kZW9wcy5jLHYgMS4yMjMgMjAwNi8xMi8xMSAxNjozNToyNiB0
b2wgRXhwICQiKTsNCitSQ1NJRCgiJElkOiBubnBmc19pbm9kZW9wcy5jLHYg
MS4yMjYgMjAxMC8wOC8wOCAyMDo0MzowNCB0b2wgRXhwICQiKTsNCiAjZW5k
aWYNCiANCiBzdGF0aWMgaW50DQogbm5wZnNfZnN5bmNfaW50KHN0cnVjdCBm
aWxlICpmaWxlLCB1X2ludCBmbGFnKTsNCiANCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogc3RhdGljIGludA0K
IG5ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0
cnVjdCBuYW1laWRhdGEgKm5kKTsNCi0NCisjZWxzZQ0KIHN0YXRpYyBpbnQN
CitubnBmc19kX3JldmFsaWRhdGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1
bnNpZ25lZCBpbnQgZmxhZ3MpOw0KKyNlbmRpZg0KKw0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQorc3RhdGlj
DQoraW50DQogbm5wZnNfZF9kZWxldGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5
KTsNCisjZWxzZQ0KK3N0YXRpYw0KK2ludA0KK25ucGZzX2RfZGVsZXRlKGNv
bnN0IHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7DQorI2VuZGlmDQogDQogc3Rh
dGljIHZvaWQNCiBubnBmc19kX3JlbGVhc2Uoc3RydWN0IGRlbnRyeSAqZGVu
dHJ5KTsNCkBAIC0xMDUsNyArMTE4LDcgQEAgbm5wZnNfdm1hX2Nsb3NlIChz
dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKg0KIH0NCiANCiBzdGF0aWMgc3RydWN0
IHZtX29wZXJhdGlvbnNfc3RydWN0IG5ucGZzX2ZpbGVfdm1fb3BzID0gew0K
LSAgICAubm9wYWdlCT0gZmlsZW1hcF9ub3BhZ2UsDQorICAgIC5mYXVsdCAg
ICAgID0gZmlsZW1hcF9mYXVsdCwNCiAgICAgLmNsb3NlCT0gbm5wZnNfdm1h
X2Nsb3NlLA0KIH07DQogDQpAQCAtMTM0LDEyICsxNDcsMTQgQEAgbm5wZnNf
cHJpbnRfcGF0aChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQogICoNCiAgKi8N
CiANCisjaWYgMA0KIHZvaWQNCiBubnBmc19wcmludF9sb2NrKGNoYXIgKnMs
IHN0cnVjdCBzZW1hcGhvcmUgKnNlbSkNCiB7DQogICAgIE5OUEZTREVCKFhE
RUJMT0NLLCAoImxvY2s6ICVzIHNlbTogJXAgY291bnQ6ICVkXG4iLA0KIAkJ
ICAgICAgcywgc2VtLCAoaW50KWF0b21pY19yZWFkKCZzZW0tPmNvdW50KSkp
Ow0KIH0NCisjZW5kaWYNCiANCiAvKg0KICAqDQpAQCAtMTg1LDcgKzIwMCw3
IEBAIG5ucGZzX2RfaXB1dChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnUN
CiAgICAgTk5QRlNERUIoWERFQlZOT1BTLA0KIAkgICAgICgibm5wZnNfZF9p
cHV0OiBkZW50cnkgJXAsIGlub2RlICVwXG4iLCBkZW50cnksIGlub2RlKSk7
DQogICAgIA0KLSAgICBpZiAobm9kZS0+ZmxhZ3MgJiBOTlBGU19OT0RFX0lQ
VVQpIC8qIFhYWCBsb2NraW5nICovDQorICAgIGlmIChub2RlLT5mbGFncyAm
IE5OUEZTX05PREVfSVBVVCkgLyogWFhYIGxvY2tpbmcuIG5ldmVyIHNldD8g
Ki8NCiAJbm5wZnNfaXJlbGUoaW5vZGUpOw0KICAgICBlbHNlDQogCWlwdXQo
aW5vZGUpOw0KQEAgLTIxMiw4ICsyMjcsMTMgQEAgbm5wZnNfaW5vZGVfdmFs
aWQoc3RydWN0IGlub2RlICppbm9kZSkNCiAgKiBubnBmc19sb29rdXAgbm93
IHJldHVybnMgYSBkZW50cnkuDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyBzdHJ1
Y3QgZGVudHJ5ICoNCiBubnBmc19sb29rdXAgKHN0cnVjdCBpbm9kZSAqZGly
LCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5k
KQ0KKyNlbHNlDQorc3RhdGljIHN0cnVjdCBkZW50cnkgKg0KK25ucGZzX2xv
b2t1cCAoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRy
eSwgdW5zaWduZWQgaW50IGZsYWdzKQ0KKyNlbmRpZg0KIHsNCiAgICAgc3Ry
dWN0IG5ucGZzX21lc3NhZ2VfZ2V0bm9kZSBtc2c7DQogICAgIHN0cnVjdCBu
bnBmcyAqbm5wZnNwOw0KQEAgLTI0MCw3ICsyNjAsMTEgQEAgbm5wZnNfbG9v
a3VwIChzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0DQogDQogCW1zZy5oZWFk
ZXIub3Bjb2RlID0gTk5QRlNfTVNHX0dFVE5PREU7DQogICAgICAgICANCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwy
OCkNCiAJbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQor
ICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRp
Zg0KIAltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogCW1zZy5w
YXJlbnRfaGFuZGxlID0gZC0+aGFuZGxlOw0KICAgICAgICAgDQpAQCAtMzEw
LDcgKzMzNCwxMSBAQCBubnBmc19vcGVuX3ZhbGlkKHN0cnVjdCBpbm9kZSAq
dnAsIHVfaW50DQogICAgICAgew0KIAlzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9v
cGVuIG1zZzsNCiAJbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfT1BF
TjsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9O
KDIsNiwyOCkNCiAJbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNl
bHNlDQorICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0K
KyNlbmRpZg0KIAltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQog
CW1zZy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KIAltc2cudG9rZW5zID0gdG9r
Ow0KQEAgLTQyNSw3ICs0NTMsMTEgQEAgbm5wZnNfZnN5bmNfaW50KHN0cnVj
dCBmaWxlICpmaWxlLCB1X2ludA0KIA0KIAltc2cuaGVhZGVyLm9wY29kZSA9
IE5OUEZTX01TR19QVVREQVRBOw0KIAltc2cuY3JlZC5wYWcgPSBubnBmc19n
ZXRfcGFnKCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxf
VkVSU0lPTigyLDYsMjgpDQogCW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVp
ZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91
aWQoKTsNCisjZW5kaWYNCiAJbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQog
CW1zZy5mbGFnICAgPSBmbGFnOw0KIAltc2cub2Zmc2V0ID0gb2ZmOw0KQEAg
LTQ2MCwxNCArNDkyLDI3IEBAIG5ucGZzX2ZzeW5jX2ludChzdHJ1Y3QgZmls
ZSAqZmlsZSwgdV9pbnQNCiAgKg0KICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzUpDQogc3RhdGljIGlu
dA0KIG5ucGZzX2ZzeW5jKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnksIGludCBkYXRhc3luYykNCisjZWxpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEsMCkNCitzdGF0aWMgaW50
DQorbm5wZnNfZnN5bmMoc3RydWN0IGZpbGUgKmZpbGUsIGludCBkYXRhc3lu
YykNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19mc3luYyhzdHJ1Y3Qg
ZmlsZSAqZmlsZSwgbG9mZl90IHN0YXJ0LCBsb2ZmX3QgZW5kLCBpbnQgZGF0
YXN5bmMpDQorI2VuZGlmDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
Pj0gS0VSTkVMX1ZFUlNJT04oMiw2LDM1KQ0KKyAgICBzdHJ1Y3QgZGVudHJ5
ICpkZW50cnkgPSBmaWxlLT5mX3BhdGguZGVudHJ5Ow0KKyNlbmRpZg0KICAg
ICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gREVOVFJZX1RPX0lOT0RFKGRlbnRy
eSk7DQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KICAgICBzdHJ1Y3Qg
bm5wZnNfbm9kZSAqeG47DQogICAgIGludCBlcnJvciA9IDA7DQogDQorICAg
ICh2b2lkKW5ucGZzcDsNCisNCiAgICAgZXJyb3IgPSBubnBmc19pbm9kZV92
YWxpZChpbm9kZSk7DQogICAgIGlmIChlcnJvcikNCiAJcmV0dXJuIGVycm9y
Ow0KQEAgLTUxMSw3ICs1NTYsMTEgQEAgbm5wZnNfYXR0cl92YWxpZChzdHJ1
Y3QgaW5vZGUgKiB2cCwgdV9pbg0KICAgICAgICAgICAgIHN0cnVjdCBubnBm
c19tZXNzYWdlX2dldGF0dHIgbXNnOw0KIA0KICAgICAgICAgICAgIG1zZy5o
ZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX0dFVEFUVFI7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAg
ICAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNl
DQorICAgICAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsN
CisjZW5kaWYNCiAgICAgICAgICAgICBtc2cuY3JlZC5wYWcgPSBwYWc7DQog
ICAgICAgICAgICAgbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogICAgICAg
ICAgICAgZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cu
aGVhZGVyLCBzaXplb2YobXNnKSk7DQpAQCAtNTUxLDcgKzYwMCwxMSBAQCBu
bnBmc19yaWdodHNfdmFsaWQoc3RydWN0IGlub2RlICogdnAsIG5uDQogICAg
ICAgICAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfZ2V0YXR0ciBtc2c7DQog
DQogICAgICAgICAgICAgbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0df
R0VUQVRUUjsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9W
RVJTSU9OKDIsNiwyOCkNCiAgICAgICAgICAgICBtc2cuY3JlZC51aWQgPSBj
dXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgICAgICBtc2cuY3JlZC51
aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICAgICAgICAgIG1z
Zy5jcmVkLnBhZyA9IHBhZzsNCiAgICAgICAgICAgICBtc2cuaGFuZGxlID0g
eG4tPmhhbmRsZTsNCiAgICAgICAgICAgICBlcnJvciA9IG5ucGZzX21lc3Nh
Z2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCkBA
IC01OTIsMTEgKzY0NSwyNSBAQCBjaGVja19yaWdodHMgKG5ucGZzX3JpZ2h0
cyByaWdodHMsIGludCBtDQogICogV2UgZG9uJ3QgaG9sZCBpX211dGV4Lg0K
ICAqLw0KIA0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMiw2LDM4KSB8fCBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVM
X1ZFUlNJT04oMywxLDApKQ0KK3N0YXRpYyBpbnQNCitubnBmc19wZXJtaXNz
aW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtb2RlKQ0KKyNlbHNlDQog
c3RhdGljIGludA0KLW5ucGZzX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICpp
bm9kZSwgaW50IG1vZGUsIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0KK25ucGZz
X3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1vZGUsIHVu
c2lnbmVkIGludCBmbGFncykNCisjZW5kaWYNCiB7DQogICAgIGludCBlcnJv
ciA9IDA7DQotICAgIG5ucGZzX3BhZ190IHBhZyA9IG5ucGZzX2dldF9wYWco
KTsNCisgICAgbm5wZnNfcGFnX3QgcGFnOw0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxLDApDQorICAgIGlmIChtb2Rl
ICYgTUFZX05PVF9CTE9DSykNCisgICAgICAgIHJldHVybiAtRUNISUxEOw0K
KyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigy
LDYsMzgpDQorICAgIGlmIChmbGFncyAmIElQRVJNX0ZMQUdfUkNVKQ0KKyAg
ICAgICAgcmV0dXJuIC1FQ0hJTEQ7DQorI2VuZGlmDQorDQorICAgIHBhZyA9
IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgDQogICAgIE5OUEZTREVCKFhERUJW
Tk9QUywgKCJubnBmc19hY2Nlc3MgKCVwKSBtb2RlID0gMCVvIGFsaWFzZXM6
IiwgaW5vZGUsIG1vZGUpKTsNCiAgICAgbm5wZnNfcHJpbnRfYWxpYXNlcyhp
bm9kZSk7DQpAQCAtNjM2LDcgKzcwMywxMSBAQCBubnBmc19kb19nZXRkYXRh
KHN0cnVjdCBubnBmc19ub2RlICp4biwNCiAgICAgaW50IGVycm9yOw0KIA0K
ICAgICBtc2cuaGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19HRVREQVRBOw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2
LDI4KQ0KICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vs
c2UNCisgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5k
aWYNCiAgICAgbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAg
ICBtc2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAgICAgbXNnLnRva2VucyA9
IHRvazsNCkBAIC03ODksMTkgKzg2MCwyMiBAQCBpbnQgbm5wZnNfZmlsZV9t
bWFwKHN0cnVjdCBmaWxlICogZmlsZSwNCiAgKg0KICAqLw0KIA0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQog
c3RhdGljIHNzaXplX3QNCiBubnBmc19haW9fcmVhZChzdHJ1Y3Qga2lvY2Ig
KmlvY2IsDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVS
U0lPTigyLDYsMTkpDQogCSAgICAgICBjb25zdCBzdHJ1Y3QgaW92ZWMgKmlv
diwgdW5zaWduZWQgbG9uZyBucl9zZWdzLA0KKwkgICAgICAgbG9mZl90IHBv
cykNCiAjZWxzZQ0KLQkgICAgICAgY2hhciBfX3VzZXIgKmJ1Ziwgc2l6ZV90
IGNvdW50LA0KK3N0YXRpYyBzc2l6ZV90DQorbm5wZnNfcmVhZF9pdGVyKHN0
cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICp0bykNCiAjZW5k
aWYNCi0JICAgICAgIGxvZmZfdCBwb3MpDQogew0KICAgICBpbnQgZXJyb3Ig
PSAwOw0KICAgICBzdHJ1Y3QgZmlsZSAqZmlsZSA9IGlvY2ItPmtpX2ZpbHA7
DQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigy
LDYsMTkpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsMTIsMCkNCiAgICAgc3NpemVfdCBjb3VudCA9IGlvY2ItPmtpX2xl
ZnQ7DQorI2Vsc2UNCisgICAgc3NpemVfdCBjb3VudCA9IGlvY2ItPmtpX25i
eXRlczsNCiAjZW5kaWYNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZp
bGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9k
ZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQpAQCAtODEwLDE2ICs4
ODQsMjAgQEAgbm5wZnNfYWlvX3JlYWQoc3RydWN0IGtpb2NiICppb2NiLA0K
IAlOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfcmVhZF9maWxlKCVwKTog
dG9rZW5zOiAweCV4XG4iLA0KIAkJCSAgICAgaW5vZGUsIHhuLT50b2tlbnMp
KTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMywxNiwwKQ0KICAgICBlcnJvciA9IG5ucGZzX2RhdGFfdmFsaWQoaW5v
ZGUsIE5OUEZTX0RBVEFfUiwgcG9zLCBwb3MgKyBjb3VudCk7DQorI2Vsc2UN
CisgICAgZXJyb3IgPSBubnBmc19kYXRhX3ZhbGlkKGlub2RlLCBOTlBGU19E
QVRBX1IsIGlvY2ItPmtpX3BvcywgaW9jYi0+a2lfcG9zICsgY291bnQpOw0K
KyNlbmRpZg0KICAgICBpZiAoZXJyb3IpIHsNCiAJTk5QRlNERUIoWERFQlZO
T1BTLCAoIm5ucGZzX3JlYWRfZmlsZTogZGF0YSBub3QgdmFsaWQgJWRcbiIs
IGVycm9yKSk7DQogCXJldHVybiBlcnJvcjsNCiAgICAgfQ0KICAgICANCi0j
aWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwx
OSkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
MywxNiwwKQ0KICAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV9haW9fcmVhZChp
b2NiLCBpb3YsIG5yX3NlZ3MsIHBvcyk7DQogI2Vsc2UNCi0gICAgZXJyb3Ig
PSBnZW5lcmljX2ZpbGVfYWlvX3JlYWQoaW9jYiwgYnVmLCBjb3VudCwgcG9z
KTsNCisgICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVfcmVhZF9pdGVyKGlvY2Is
IHRvKTsNCiAjZW5kaWYNCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5u
cGZzX3JlYWRfZmlsZTogZXJyb3IgPSAlZFxuIiwgZXJyb3IpKTsNCiAgICAg
cmV0dXJuIGVycm9yOw0KQEAgLTgyOSwyMyArOTA3LDMwIEBAIG5ucGZzX2Fp
b19yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAgKg0KICAqLw0KIA0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDAp
DQogc3RhdGljIHNzaXplX3QNCiBubnBmc19haW9fd3JpdGUoc3RydWN0IGtp
b2NiICppb2NiLA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVM
X1ZFUlNJT04oMiw2LDE5KQ0KIAkJY29uc3Qgc3RydWN0IGlvdmVjICppb3Ys
IHVuc2lnbmVkIGxvbmcgbnJfc2VncywNCisJCWxvZmZfdCBwb3MpDQogI2Vs
c2UNCi0JCWNvbnN0IGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCwg
DQorc3RhdGljIHNzaXplX3QNCitubnBmc193cml0ZV9pdGVyKHN0cnVjdCBr
aW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICpmcm9tKQ0KICNlbmRpZg0K
LQkJbG9mZl90IHBvcykNCiB7DQogICAgIGludCBlcnJvciA9IDA7DQogICAg
IHN0cnVjdCBmaWxlICpmaWxlID0gaW9jYi0+a2lfZmlscDsNCi0jaWYgTElO
VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMiww
KQ0KICAgICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbGVmdDsNCisjZWxz
ZQ0KKyAgICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbmJ5dGVzOw0KICNl
bmRpZg0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9kZW50
cnktPmRfaW5vZGU7DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4biA9IFZO
T0RFX1RPX1hOT0RFKGlub2RlKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0KICAgICBsb2ZmX3QgcmVhbHBv
cyA9IHBvczsNCisjZWxzZQ0KKyAgICBsb2ZmX3QgcmVhbHBvcyA9IGlvY2It
PmtpX3BvczsNCisjZW5kaWYNCiAgICAgDQogICAgIE5OUEZTREVCKFhERUJW
Tk9QUywgKCJubnBmc19haW9fd3JpdGUoJXApOiB0b2tlbnM6IDB4JXhcbiIs
DQogCQkJIGlub2RlLCB4bi0+dG9rZW5zKSk7DQpAQCAtODU5LDEwICs5NDQs
MTAgQEAgbm5wZnNfYWlvX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAJ
cmV0dXJuIGVycm9yOw0KICAgICB9DQogDQotI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTkpDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgZXJy
b3IgPSBnZW5lcmljX2ZpbGVfYWlvX3dyaXRlKGlvY2IsIGlvdiwgbnJfc2Vn
cywgcG9zKTsNCiAjZWxzZQ0KLSAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV9h
aW9fd3JpdGUoaW9jYiwgYnVmLCBjb3VudCwgcG9zKTsNCisgICAgZXJyb3Ig
PSBnZW5lcmljX2ZpbGVfd3JpdGVfaXRlcihpb2NiLCBmcm9tKTsNCiAjZW5k
aWYNCiAgICAgaWYgKCFJU19FUlJfVkFMVUUoZXJyb3IpKQ0KIAl4bi0+Zmxh
Z3MgfD0gTk5QRlNfREFUQV9ESVJUWTsgLyogWFhYIHJhY2UgKi8NCkBAIC04
NzEsOSArOTU2LDE5IEBAIG5ucGZzX2Fpb193cml0ZShzdHJ1Y3Qga2lvY2Ig
KmlvY2IsDQogICAgIHJldHVybiBlcnJvcjsNCiB9DQogDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMywwKQ0KIHN0YXRp
YyBpbnQNCiBubnBmc19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVj
dCBkZW50cnkgKmRlbnRyeSwNCiAJICAgICBpbnQgbW9kZSwgc3RydWN0IG5h
bWVpZGF0YSAqbmQpDQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMyw2LDApDQorc3RhdGljIGludA0KK25ucGZzX2NyZWF0
ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0K
KwkgICAgIHVtb2RlX3QgbW9kZSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQor
I2Vsc2UNCitzdGF0aWMgaW50DQorbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9k
ZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksDQorCSAgICAgdW1vZGVf
dCBtb2RlLCBib29sIGV4Y2wpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3Qg
bm5wZnMgKm5ucGZzcDsNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0K
QEAgLTkwMyw5ICs5OTgsMTcgQEAgbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9k
ZSAqZGlyLCBzdHJ1Y3QgZA0KICAgICBYQV9DTEVBUigmbXNnLmF0dHIpOw0K
ICAgICBYQV9TRVRfTU9ERSgmbXNnLmF0dHIsIG1vZGUpOw0KICAgICBYQV9T
RVRfVFlQRSgmbXNnLmF0dHIsIE5OUEZTX0ZJTEVfUkVHKTsNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAg
ICAgWEFfU0VUX0dJRCgmbXNnLmF0dHIsIGN1cnJlbnQtPmZzZ2lkKTsNCisj
ZWxzZQ0KKyAgICBYQV9TRVRfR0lEKCZtc2cuYXR0ciwgY3VycmVudF9mc2dp
ZCgpKTsNCisjZW5kaWYNCiAgICAgbXNnLm1vZGUgPSAwOwkJLyogWFhYICov
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigy
LDYsMjgpDQogICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisj
ZWxzZQ0KKyAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNl
bmRpZg0KICAgICBtc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQog
ICAgIGVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhl
YWRlciwgc2l6ZW9mKG1zZykpOw0KICAgICBpZiAoZXJyb3IgPT0gMCkNCkBA
IC05NDYsNyArMTA0OSwxMSBAQCBubnBmc191bmxpbmsgKHN0cnVjdCBpbm9k
ZSAqIGRpciwgc3RydWN0DQogICAgIGlmIChzdHJsY3B5KG1zZy5uYW1lLCBk
ZW50cnktPmRfbmFtZS5uYW1lLCBzaXplb2YobXNnLm5hbWUpKSA+PSBOTlBG
U19NQVhfTkFNRSkNCiAJcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQogDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgp
DQogICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0K
KyAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0K
ICAgICBtc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAgIGVy
cm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwg
c2l6ZW9mKG1zZykpOw0KICAgICBpZiAoZXJyb3IgPT0gMCkNCkBAIC05OTEs
NyArMTA5OCwxMSBAQCBubnBmc19yZW5hbWUgKHN0cnVjdCBpbm9kZSAqIG9s
ZF9kaXIsIHN0DQogICAgIGlmIChzdHJsY3B5KG1zZy5uZXdfbmFtZSwgbmV3
X2RlbnRyeS0+ZF9uYW1lLm5hbWUsIHNpemVvZihtc2cubmV3X25hbWUpKSA+
PSBOTlBGU19NQVhfTkFNRSkNCiAJcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQog
CQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04o
Miw2LDI4KQ0KICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQor
I2Vsc2UNCisgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisj
ZW5kaWYNCiAgICAgbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0K
ICAgICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5o
ZWFkZXIsIHNpemVvZihtc2cpKTsNCiAgICAgaWYgKGVycm9yID09IDApDQpA
QCAtMTAwOCw4ICsxMTE5LDEzIEBAIG5ucGZzX3JlbmFtZSAoc3RydWN0IGlu
b2RlICogb2xkX2Rpciwgc3QNCiAgICAgcmV0dXJuIGVycm9yOw0KIH0NCiAN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywz
LDApDQogc3RhdGljIGludA0KIG5ucGZzX21rZGlyKHN0cnVjdCBpbm9kZSAq
IGRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBpbnQgbW9kZSkNCisjZWxz
ZQ0KK3N0YXRpYyBpbnQNCitubnBmc19ta2RpcihzdHJ1Y3QgaW5vZGUgKiBk
aXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW1vZGVfdCBtb2RlKQ0KKyNl
bmRpZg0KIHsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7DQogICAgIHN0
cnVjdCBubnBmc19ub2RlICp4bjsNCkBAIC0xMDQwLDkgKzExNTYsMTcgQEAg
bm5wZnNfbWtkaXIoc3RydWN0IGlub2RlICogZGlyLCBzdHJ1Y3QgZA0KIAlY
QV9DTEVBUigmbXNnLmF0dHIpOw0KIAlYQV9TRVRfTU9ERSgmbXNnLmF0dHIs
IG1vZGUpOw0KIAlYQV9TRVRfVFlQRSgmbXNnLmF0dHIsIE5OUEZTX0ZJTEVf
RElSKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJT
SU9OKDIsNiwyOCkNCiAJWEFfU0VUX0dJRCgmbXNnLmF0dHIsIGN1cnJlbnQt
PmZzZ2lkKTsNCisjZWxzZQ0KKyAgICAgICAgWEFfU0VUX0dJRCgmbXNnLmF0
dHIsIGN1cnJlbnRfZnNnaWQoKSk7DQorI2VuZGlmDQogDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCW1z
Zy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAg
bXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAJbXNn
LmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KIAllcnJvciA9IG5ucGZz
X21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cp
KTsNCiAJaWYgKGVycm9yID09IDApDQpAQCAtMTA4Myw3ICsxMjA3LDExIEBA
IG5ucGZzX3JtZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGQNCiAg
ICAgbXNnLnBhcmVudF9oYW5kbGUgPSB4bi0+aGFuZGxlOw0KICAgICBpZiAo
c3RybGNweShtc2cubmFtZSwgZGVudHJ5LT5kX25hbWUubmFtZSwgc2l6ZW9m
KG1zZy5uYW1lKSkgPj0gTk5QRlNfTUFYX05BTUUpDQogCSAgICByZXR1cm4g
LUVOQU1FVE9PTE9ORzsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtF
Uk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgbXNnLmNyZWQudWlkID0gY3Vy
cmVudC0+dWlkOw0KKyNlbHNlDQorICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJl
bnRfdWlkKCk7DQorI2VuZGlmDQogICAgIG1zZy5jcmVkLnBhZyA9IG5ucGZz
X2dldF9wYWcoKTsNCiAgICAgZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYyhu
bnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7DQogICAgIGlmIChl
cnJvciA9PSAwKQ0KQEAgLTExMjgsNyArMTI1NiwxMSBAQCBzdGF0aWMgaW50
IG5ucGZzX2xpbmsoc3RydWN0IGRlbnRyeSAqb2xkDQogCWlmIChzdHJsY3B5
KG1zZy5uYW1lLCBuYW1lLCBzaXplb2YobXNnLm5hbWUpKSA+PSBOTlBGU19N
QVhfTkFNRSkNCiAJICAgIHJldHVybiAtRU5BTUVUT09MT05HOw0KIA0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4
KQ0KIAltc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisg
ICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlm
DQogCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAJZXJyb3Ig
PSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXpl
b2YobXNnKSk7DQogCWlmIChlcnJvciA9PSAwKQ0KQEAgLTExNTcsMjkgKzEy
ODksNDcgQEAgc3RhdGljIGludCBubnBmc19zeW1saW5rKHN0cnVjdCBpbm9k
ZSAqZA0KICAgICB4biA9IFZOT0RFX1RPX1hOT0RFKGRpcik7DQogDQogICAg
IHsNCi0Jc3RydWN0IG5ucGZzX21lc3NhZ2Vfc3ltbGluayBtc2c7DQorCXN0
cnVjdCBubnBmc19tZXNzYWdlX3N5bWxpbmsgKm1zZyA9IE5VTEw7DQogDQot
CW1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1NZTUxJTks7DQotCW1z
Zy5wYXJlbnRfaGFuZGxlID0geG4tPmhhbmRsZTsNCi0JaWYgKHN0cmxjcHko
bXNnLm5hbWUsIG5hbWUsIHNpemVvZihtc2cubmFtZSkpID49IE5OUEZTX01B
WF9OQU1FKQ0KLQkgICAgcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQotCWlmIChz
dHJsY3B5KG1zZy5jb250ZW50cywgc3ltbmFtZSwgc2l6ZW9mKG1zZy5jb250
ZW50cykpID49IE5OUEZTX01BWF9TWU1MSU5LX0NPTlRFTlQpDQotCSAgICBy
ZXR1cm4gLUVOQU1FVE9PTE9ORzsNCi0JWEFfQ0xFQVIoJm1zZy5hdHRyKTsN
Ci0JWEFfU0VUX01PREUoJm1zZy5hdHRyLCAwNzc3KTsNCi0JWEFfU0VUX1RZ
UEUoJm1zZy5hdHRyLCBOTlBGU19GSUxFX0xOSyk7DQotCVhBX1NFVF9HSUQo
Jm1zZy5hdHRyLCBjdXJyZW50LT5mc2dpZCk7DQorCW1zZyA9IGttYWxsb2Mo
c2l6ZW9mKCptc2cpLCBHRlBfS0VSTkVMKTsNCiANCi0JbXNnLmNyZWQudWlk
ID0gY3VycmVudC0+dWlkOw0KLQltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRf
cGFnKCk7DQotCWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAm
bXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KKwlpZiAobXNnID09IE5VTEwp
DQorCSAgcmV0dXJuIC1FTk9NRU07DQorDQorCW1zZy0+aGVhZGVyLm9wY29k
ZSA9IE5OUEZTX01TR19TWU1MSU5LOw0KKwltc2ctPnBhcmVudF9oYW5kbGUg
PSB4bi0+aGFuZGxlOw0KKwlpZiAoc3RybGNweShtc2ctPm5hbWUsIG5hbWUs
IHNpemVvZihtc2ctPm5hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkgew0KKwkg
IGtmcmVlKG1zZyk7DQorCSAgcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQorCX0N
CisJaWYgKHN0cmxjcHkobXNnLT5jb250ZW50cywgc3ltbmFtZSwgc2l6ZW9m
KG1zZy0+Y29udGVudHMpKSA+PSBOTlBGU19NQVhfU1lNTElOS19DT05URU5U
KSB7DQorCSAga2ZyZWUobXNnKTsNCisJICByZXR1cm4gLUVOQU1FVE9PTE9O
RzsNCisJfQ0KKwlYQV9DTEVBUigmbXNnLT5hdHRyKTsNCisJWEFfU0VUX01P
REUoJm1zZy0+YXR0ciwgMDc3Nyk7DQorCVhBX1NFVF9UWVBFKCZtc2ctPmF0
dHIsIE5OUEZTX0ZJTEVfTE5LKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisJWEFfU0VUX0dJRCgmbXNn
LT5hdHRyLCBjdXJyZW50LT5mc2dpZCk7DQorI2Vsc2UNCisgICAgICAgIFhB
X1NFVF9HSUQoJm1zZy0+YXR0ciwgY3VycmVudF9mc2dpZCgpKTsNCisjZW5k
aWYNCisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJT
SU9OKDIsNiwyOCkNCisJbXNnLT5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsN
CisjZWxzZQ0KKyAgICAgICAgbXNnLT5jcmVkLnVpZCA9IGN1cnJlbnRfdWlk
KCk7DQorI2VuZGlmDQorCW1zZy0+Y3JlZC5wYWcgPSBubnBmc19nZXRfcGFn
KCk7DQorCWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNn
LT5oZWFkZXIsIHNpemVvZigqbXNnKSk7DQogCWlmIChlcnJvciA9PSAwKQ0K
LQkgICAgZXJyb3IgPSBOTlBGU19NU0dfV0FLRVVQX0VSUk9SKCZtc2cpOw0K
KwkgICAgZXJyb3IgPSBOTlBGU19NU0dfV0FLRVVQX0VSUk9SKG1zZyk7DQog
DQogCS8qIFhYWCBzaG91bGQgdGhpcyByZWFsbHkgYmUgaGVyZSAqLw0KIAlp
ZiAoREVOVFJZX1RPX1hERU5UUlkoZGVudHJ5KS0+eGRfZmxhZ3MgPT0gMCkg
ew0KIAkgICAgcHJpbnRrKEtFUk5fRU1FUkcgIk5OUEZTIFBhbmljOiBubnBm
c19zeW1saW5rOiBkZW50cnkgbm90IHZhbGlkXG4iKTsNCiAJfQ0KKwlrZnJl
ZShtc2cpOw0KICAgICB9DQogDQogICAgIHJldHVybiBlcnJvcjsNCkBAIC0x
MTg4LDggKzEzMzgsMTMgQEAgc3RhdGljIGludCBubnBmc19zeW1saW5rKHN0
cnVjdCBpbm9kZSAqZA0KIC8qDQogICogV2UgaG9sZCBpX211dGV4Lg0KICAq
Lw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDExLDApDQogc3RhdGljIGludA0KIG5ucGZzX3JlYWRkaXIoc3RydWN0IGZp
bGUgKiBmaWxlLCB2b2lkICogZGlyZW50LCBmaWxsZGlyX3QgZmlsbGRpcikN
CisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19pdGVyYXRlKHN0cnVjdCBm
aWxlICogZmlsZSwgc3RydWN0IGRpcl9jb250ZXh0ICpjdHgpDQorI2VuZGlm
DQogew0KICAgICBpbnQgZXJyb3I7DQogICAgIGxvZmZfdCBvZmZzZXQsIGJl
Z2luX29mZnNldDsNCkBAIC0xMjY0LDYgKzE0MTksNyBAQCBubnBmc19yZWFk
ZGlyKHN0cnVjdCBmaWxlICogZmlsZSwgdm9pZCAqDQogCQkgICAgKGludCkg
eGRpcmVudC0+ZF9uYW1sZW4sDQogCQkgICAgKGludCkgKG9mZnNldCtiZWdp
bl9vZmZzZXQpKSk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsMTEsMCkNCiAJICAgIGlmICh4ZGlyZW50LT5kX2Zp
bGVubyAhPSAwDQogCQkmJiAoZmlsbGRpcl9lcnJvciA9IGZpbGxkaXIgKGRp
cmVudCwNCiAJCQkJICAgICB4ZGlyZW50LT5kX25hbWUsDQpAQCAtMTI3NSw2
ICsxNDMxLDE4IEBAIG5ucGZzX3JlYWRkaXIoc3RydWN0IGZpbGUgKiBmaWxl
LCB2b2lkICoNCiAJCQkgKCJubnBmc19yZWFkZGlyIGZpbGxkaXI6ICVkXG4i
LCBmaWxsZGlyX2Vycm9yKSk7DQogCQlicmVhazsNCiAJICAgIH0NCisjZWxz
ZQ0KKwkgICAgaWYgKHhkaXJlbnQtPmRfZmlsZW5vICE9IDANCisJCSYmIChm
aWxsZGlyX2Vycm9yID0gZGlyX2VtaXQgKGN0eCwNCisJCQkJICAgICB4ZGly
ZW50LT5kX25hbWUsDQorCQkJCSAgICAgeGRpcmVudC0+ZF9uYW1sZW4sDQor
CQkJCSAgICAgeGRpcmVudC0+ZF9maWxlbm8sDQorCQkJCSAgICAgRFRfVU5L
Tk9XTikpIDwgMCkgew0KKwkJTk5QRlNERUIoWERFQlJFQURESVIsDQorCQkJ
ICgibm5wZnNfcmVhZGRpciBmaWxsZGlyOiAlZFxuIiwgZmlsbGRpcl9lcnJv
cikpOw0KKwkJYnJlYWs7DQorCSAgICB9DQorI2VuZGlmDQogCSAgICBvZmZz
ZXQgKz0geGRpcmVudC0+ZF9yZWNsZW47DQogDQogCSAgICBpZiAoeGRpcmVu
dC0+ZF9yZWNsZW4gPT0gMCkgew0KQEAgLTEzOTgsNyArMTU2NiwxMSBAQCBu
bnBmc19zZXRhdHRyIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0DQogICAg
ICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9wdXRhdHRyIG1zZzsNCiANCiAg
ICAgICAgIG1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1BVVEFUVFI7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigy
LDYsMjgpDQogCW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxz
ZQ0KKyAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisj
ZW5kaWYNCiAJbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAg
ICAgICAgbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogICAgICAgICBubnBm
c19pYXR0cjJhdHRyKHhuLCBhdHRyLCAmbXNnLmF0dHIpOw0KQEAgLTE0MjIs
NiArMTU5NCw4IEBAIG5ucGZzX3JlbGVhc2VfZmlsZSAoc3RydWN0IGlub2Rl
ICppbm9kZSwNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0KICAgICBp
bnQgZXJyb3IgPSAwOw0KIA0KKyAgICAodm9pZClubnBmc3A7DQorDQogICAg
IE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19yZWxlYXNlX2ZpbGVcbiIp
KTsNCiANCiAgICAgZXJyb3IgPSBubnBmc19pbm9kZV92YWxpZChpbm9kZSk7
DQpAQCAtMTQ1MCwxMyArMTYyNCw4IEBAIG5ucGZzX3JlbGVhc2VfZmlsZSAo
c3RydWN0IGlub2RlICppbm9kZSwNCiAgKg0KICAqLw0KIA0KLSNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4KQ0KIHN0
YXRpYyBpbnQNCiBubnBmc19mbHVzaChzdHJ1Y3QgZmlsZSAqZmlsZSwgZmxf
b3duZXJfdCBpZCkNCi0jZWxzZQ0KLXN0YXRpYyBpbnQNCi1ubnBmc19mbHVz
aChzdHJ1Y3QgZmlsZSAqZmlsZSkNCi0jZW5kaWYNCiB7DQogICAgIE5OUEZT
REVCKFhERUJWTk9QUywgKCJubnBmc19mbHVzaFxuIikpOw0KIA0KQEAgLTE0
NzAsOCArMTYzOSwxMyBAQCBubnBmc19mbHVzaChzdHJ1Y3QgZmlsZSAqZmls
ZSkNCiAgKiBSZXR1cm4gMSBpZiBgZGVudHJ5JyBpcyBzdGlsbCB2YWxpZCwg
b3RoZXJ3aXNlIDAuDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KK3N0YXRpYyBpbnQNCitubnBm
c19kX3JldmFsaWRhdGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3Qg
bmFtZWlkYXRhICpuZCkNCisjZWxzZQ0KIHN0YXRpYyBpbnQNCi1ubnBmc19k
X3JldmFsaWRhdGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFt
ZWlkYXRhICpuZCkgDQorbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50
cnkgKmRlbnRyeSwgdW5zaWduZWQgaW50IGZsYWdzKQ0KKyNlbmRpZg0KIHsN
CiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IERFTlRSWV9UT19JTk9ERShk
ZW50cnkpOw0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfZF9y
ZXZhbGlkYXRlICVwIFwiJS4qc1wiIChpbm9kZSAlcClcbiIsDQpAQCAtMTUx
OSw5ICsxNjkzLDE1IEBAIG5ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnkNCiAgICAgcmV0dXJuIDA7DQogfQ0KIA0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQogc3Rh
dGljDQogaW50DQogbm5wZnNfZF9kZWxldGUoc3RydWN0IGRlbnRyeSAqZGVu
dHJ5KQ0KKyNlbHNlDQorc3RhdGljDQoraW50DQorbm5wZnNfZF9kZWxldGUo
Y29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZg0KIHsNCiAg
ICAgc3RydWN0IGlub2RlICppbm9kZTsNCiAgICAgc3RydWN0IG5ucGZzX25v
ZGUgKnhuOw0KQEAgLTE1NDYsOCArMTcyNiw5IEBAIG5ucGZzX2RfZGVsZXRl
KHN0cnVjdCBkZW50cnkgKmRlbnRyeSkNCiB9DQogDQogc3RhdGljIHNzaXpl
X3QNCi1ubnBmc19zZW5kZmlsZShzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90
ICpwcG9zLCBzaXplX3QgY291bnQsDQotCSAgICAgICByZWFkX2FjdG9yX3Qg
YWN0b3IsIHZvaWQgKnRhcmdldCkNCitubnBmc19zcGxpY2VfcmVhZChzdHJ1
Y3QgZmlsZSAqZmlsZSwgbG9mZl90ICpwcG9zLA0KKwkJICBzdHJ1Y3QgcGlw
ZV9pbm9kZV9pbmZvICpwaXBlLCBzaXplX3QgY291bnQsDQorCQkgIHVuc2ln
bmVkIGludCBmbGFncykNCiB7DQogICAgIGludCBlcnJvciA9IDA7DQogICAg
IHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9k
ZTsNCkBAIC0xNTYxLDggKzE3NDIsNyBAQCBubnBmc19zZW5kZmlsZShzdHJ1
Y3QgZmlsZSAqZmlsZSwgbG9mZl90DQogCU5OUEZTREVCKFhERUJWTk9QUywg
KCJubnBmc19zZW5kZmlsZTogZGF0YSBub3QgdmFsaWQgJWRcbiIsIGVycm9y
KSk7DQogCXJldHVybiBlcnJvcjsNCiAgICAgfQ0KLQ0KLSAgICBlcnJvciA9
IGdlbmVyaWNfZmlsZV9zZW5kZmlsZShmaWxlLCBwcG9zLCBjb3VudCwgYWN0
b3IsIHRhcmdldCk7DQorICAgIGVycm9yID0gZmlsZS0+Zl9vcC0+c3BsaWNl
X3JlYWQoZmlsZSwgcHBvcywgcGlwZSwgY291bnQsIGZsYWdzKTsNCiANCiAg
ICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3NlbmRmaWxlOiBlcnJv
ciA9ICVkXG4iLCBlcnJvcikpOw0KICAgICByZXR1cm4gZXJyb3I7DQpAQCAt
MTYzOSwzNCArMTgxOSwzMSBAQCBubnBmc193cml0ZV9iYWNrcGFnZShzdHJ1
Y3QgcGFnZSAqcGFnZSwNCiAJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBp
bmcgPSBiYWNrZmlsZS0+Zl9tYXBwaW5nOw0KIAl1bnNpZ25lZCBsZW4gPSBQ
QUdFX0NBQ0hFX1NJWkU7DQogCXN0cnVjdCBwYWdlICpiYWNrcGFnZTsNCisJ
dm9pZCAqZnNkYXRhOw0KIAl1bnNpZ25lZCBsb25nIG9mZnNldDsNCiANCiAJ
aW50IGVycm9yOw0KIAkNCi0JZG8gew0KLQkJYmFja3BhZ2UgPSBncmFiX2Nh
Y2hlX3BhZ2UobWFwcGluZywgbm5wZnNfZ2V0X2JhY2tpbmRleChwYWdlKSk7
DQotCQlpZiAoIWJhY2twYWdlKSB7DQotCQkJcHJpbnRrKCJubnBmc193cml0
ZV9iYWNrcGFnZTogbm8gcGFnZVxuIik7DQotCQkJcmV0dXJuIC1FSU87DQot
CQl9DQorCSh2b2lkKW9mZnNldDsNCiANCi0JCWVycm9yID0gbWFwcGluZy0+
YV9vcHMtPnByZXBhcmVfd3JpdGUoYmFja2ZpbGUsIGJhY2twYWdlLA0KLQkJ
CQkJCSAgICAgIDAsIGxlbik7DQorCWRvIHsNCisJCWVycm9yID0gcGFnZWNh
Y2hlX3dyaXRlX2JlZ2luKGJhY2tmaWxlLCBtYXBwaW5nLCAwLCBsZW4sDQor
CQkJCQkgICAgICBBT1BfRkxBR19VTklOVEVSUlVQVElCTEUsDQorCQkJCQkg
ICAgICAmYmFja3BhZ2UsICZmc2RhdGEpOw0KIAkJaWYgKCFlcnJvcikgew0K
IAkJCWNvcHlfaGlnaHBhZ2UoYmFja3BhZ2UsIHBhZ2UpOw0KIAkJCWZsdXNo
X2RjYWNoZV9wYWdlKGJhY2twYWdlKTsNCi0JCQllcnJvciA9IG1hcHBpbmct
PmFfb3BzLT5jb21taXRfd3JpdGUoYmFja2ZpbGUsIGJhY2twYWdlLA0KLQkJ
CQkJCQkgICAgIDAsIGxlbik7DQorCQkJZXJyb3IgPSBwYWdlY2FjaGVfd3Jp
dGVfZW5kKGJhY2tmaWxlLCBtYXBwaW5nLCAwLCBsZW4sDQorCQkJCQlsZW4s
IGJhY2twYWdlLCBmc2RhdGEpOw0KKwkJCWlmIChlcnJvciA+IDApDQorCQkJ
CWVycm9yID0gMDsNCiAJCX0NCiAJCWlmIChlcnJvciA9PSBBT1BfVFJVTkNB
VEVEX1BBR0UpIHsNCi0JCQlwYWdlX2NhY2hlX3JlbGVhc2UoYmFja3BhZ2Up
Ow0KIAkJCWNvbnRpbnVlOw0KIAkJfQ0KIAl9IHdoaWxlICgwKTsNCiANCiAJ
b2Zmc2V0ID0gcGFnZV9vZmZzZXQoYmFja3BhZ2UpOw0KLQl1bmxvY2tfcGFn
ZShiYWNrcGFnZSk7DQotCXBhZ2VfY2FjaGVfcmVsZWFzZShiYWNrcGFnZSk7
DQogDQogCWlmIChlcnJvcikNCiAJCXByaW50aygibm5wZnNfd3JpdGVfYmFj
a3BhZ2U6IEVJT1xuIik7DQpAQCAtMTY4OSwxMyArMTg2Niw5IEBAIG5ucGZz
X3JlYWRfYmFja3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIHMNCiAJc3RydWN0
IHBhZ2UgKmJhY2twYWdlOw0KIAl1bnNpZ25lZCBsb25nIG9mZnNldDsNCiAN
Ci0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIs
NiwxOCkNCisJKHZvaWQpb2Zmc2V0Ow0KKw0KIAliYWNrcGFnZSA9IHJlYWRf
bWFwcGluZ19wYWdlKG1hcHBpbmcsIG4sIGJhY2tmaWxlKTsNCi0jZWxzZQ0K
LQliYWNrcGFnZSA9IHJlYWRfY2FjaGVfcGFnZShtYXBwaW5nLCBuLA0KLQkJ
CQkgICAoZmlsbGVyX3QgKiltYXBwaW5nLT5hX29wcy0+cmVhZHBhZ2UsDQot
CQkJCSAgIGJhY2tmaWxlKTsNCi0jZW5kaWYNCiAJaWYgKCFJU19FUlIoYmFj
a3BhZ2UpKSB7DQogCQl3YWl0X29uX3BhZ2VfbG9ja2VkKGJhY2twYWdlKTsN
CiANCkBAIC0xODQyLDExICsyMDE1LDE3IEBAIG5ucGZzX3ByZXBhcmVfd3Jp
dGUoc3RydWN0IGZpbGUgKmZpbGUsIHMNCiANCiAJaWYgKG1vZHNpemUgPiBp
X3NpemVfcmVhZChpbm9kZSkpIHsNCiAJCWludCBlcnJvcjsNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw4LDApDQogCQll
cnJvciA9IHZtdHJ1bmNhdGUoaW5vZGUsIG1vZHNpemUpOw0KKyNlbHNlDQor
CQllcnJvciA9IGlub2RlX25ld3NpemVfb2soaW5vZGUsIG1vZHNpemUpOw0K
KwkJaWYoIWVycm9yKQ0KKwkJCXRydW5jYXRlX3NldHNpemUoaW5vZGUsIG1v
ZHNpemUpOw0KKyNlbmRpZg0KIAkJaWYgKGVycm9yKSB7DQogCQkJcHJpbnRr
KCJubnBmc19wcmVwYXJlX3dyaXRlOiB0cnVuY2F0ZSglbGx1KSAtPiAlZFxu
IiwNCiAJCQkgICAgICAgbW9kc2l6ZSwgLWVycm9yKTsNCi0JCQlCVUcoKTsg
LyogWFhYIG5vdCBjb3JyZWN0ICovDQorCQkJLypCVUcoKTsqLyAvKiBYWFgg
bm90IGNvcnJlY3QgKi8NCiAJCX0NCiAJfQ0KIA0KQEAgLTE4NzIsOCArMjA1
MSwzNyBAQCBubnBmc19wcmVwYXJlX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxl
LCBzDQogCXJldHVybiByZXQ7DQogfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KKw0KIHN0YXRpYyBp
bnQNCi1ubnBmc19jb21taXRfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIHN0
cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bykN
CitubnBmc193cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0
IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBwb3MsDQordW5zaWdu
ZWQgbGVuLCB1bnNpZ25lZCBmbGFncywgc3RydWN0IHBhZ2UgKipwYWdlcCwg
dm9pZCAqKmZzZGF0YSkNCit7DQorCXN0cnVjdCBwYWdlICpwYWdlOw0KKwlw
Z29mZl90IGluZGV4Ow0KKwl1bnNpZ25lZCBmcm9tOw0KKw0KKwlpbmRleCA9
IHBvcyA+PiBQQUdFX0NBQ0hFX1NISUZUOw0KKwlmcm9tID0gcG9zICYgKFBB
R0VfQ0FDSEVfU0laRSAtIDEpOw0KKw0KKyNpZmRlZiBBT1BfRkxBR19OT0ZT
DQorCXBhZ2UgPSBncmFiX2NhY2hlX3BhZ2Vfd3JpdGVfYmVnaW4obWFwcGlu
ZywgaW5kZXgsIGZsYWdzKTsNCisjZWxzZQ0KKwlwYWdlID0gX19ncmFiX2Nh
Y2hlX3BhZ2UobWFwcGluZywgaW5kZXgpOw0KKyNlbmRpZg0KKwlpZiAocGFn
ZSA9PSBOVUxMKQ0KKwkJcmV0dXJuIC1FTk9NRU07DQorDQorCSpwYWdlcCA9
IHBhZ2U7DQorDQorCXJldHVybiBubnBmc19wcmVwYXJlX3dyaXRlKGZpbGUs
IHBhZ2UsIGZyb20sIGZyb20gKyBsZW4pOw0KK30NCisNCisjZW5kaWYNCisN
CitzdGF0aWMgaW50DQorbm5wZnNfY29tbWl0X3dyaXRlKHN0cnVjdCBmaWxl
ICpmaWxlLCBzdHJ1Y3QgcGFnZSAqcGFnZSwNCisJCSAgIHVuc2lnbmVkIGZy
b20sIHVuc2lnbmVkIHRvKQ0KIHsNCiAgICAgc3RydWN0IGlub2RlICppbm9k
ZSA9IHBhZ2UtPm1hcHBpbmctPmhvc3Q7DQogICAgIGxvZmZfdCBwb3MgPSAo
KGxvZmZfdClwYWdlLT5pbmRleCA8PCBQQUdFX0NBQ0hFX1NISUZUKSArIHRv
Ow0KQEAgLTE5MDIsMTQgKzIxMTAsNTEgQEAgbm5wZnNfY29tbWl0X3dyaXRl
KHN0cnVjdCBmaWxlICpmaWxlLCBzdA0KICAgICByZXR1cm4gMDsNCiB9DQog
DQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigy
LDYsMTgpDQotY29uc3QNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtF
Uk5FTF9WRVJTSU9OKDIsNiwyOCkNCisNCitzdGF0aWMgaW50DQorbm5wZnNf
d3JpdGVfZW5kKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19z
cGFjZSAqbWFwcGluZywgbG9mZl90IHBvcywNCisJCXVuc2lnbmVkIGxlbiwg
dW5zaWduZWQgY29waWVkLCBzdHJ1Y3QgcGFnZSAqcGFnZSwgdm9pZCAqZnNk
YXRhKQ0KK3sNCisJdW5zaWduZWQgZnJvbSA9IHBvcyAmIChQQUdFX0NBQ0hF
X1NJWkUgLSAxKTsNCisNCisJLyogemVybyB0aGUgc3RhbGUgcGFydCBvZiB0
aGUgcGFnZSBpZiB3ZSBkaWQgYSBzaG9ydCBjb3B5ICovDQorCWlmIChjb3Bp
ZWQgPCBsZW4pIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMyw2LDApDQorCQl2b2lkICprYWRkciA9IGttYXBfYXRvbWlj
KHBhZ2UsIEtNX1VTRVIwKTsNCisjZWxzZQ0KKwkJdm9pZCAqa2FkZHIgPSBr
bWFwX2F0b21pYyhwYWdlKTsNCiAjZW5kaWYNCisJCW1lbXNldChrYWRkciAr
IGZyb20gKyBjb3BpZWQsIDAsIGxlbiAtIGNvcGllZCk7DQorCQlmbHVzaF9k
Y2FjaGVfcGFnZShwYWdlKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMyw2LDApDQorCQlrdW5tYXBfYXRvbWljKGthZGRy
LCBLTV9VU0VSMCk7DQorI2Vsc2UNCisJCWt1bm1hcF9hdG9taWMoa2FkZHIp
Ow0KKyNlbmRpZg0KKwl9DQorDQorCW5ucGZzX2NvbW1pdF93cml0ZShmaWxl
LCBwYWdlLCBmcm9tLCBmcm9tICsgY29waWVkKTsNCisNCisJdW5sb2NrX3Bh
Z2UocGFnZSk7DQorCXBhZ2VfY2FjaGVfcmVsZWFzZShwYWdlKTsNCisNCisJ
cmV0dXJuIGNvcGllZDsNCit9DQorDQorI2VuZGlmDQorDQorY29uc3QNCiBz
dHJ1Y3QgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25zIG5ucGZzX2FvcHMgPSB7
DQogCS5yZWFkcGFnZSA9IG5ucGZzX3JlYWRwYWdlLA0KIAkud3JpdGVwYWdl
ID0gbm5wZnNfd3JpdGVwYWdlLA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCS5wcmVwYXJlX3dyaXRlID0g
bm5wZnNfcHJlcGFyZV93cml0ZSwNCiAJLmNvbW1pdF93cml0ZSA9IG5ucGZz
X2NvbW1pdF93cml0ZSwNCisjZWxzZQ0KKwkud3JpdGVfYmVnaW4gPSBubnBm
c193cml0ZV9iZWdpbiwNCisJLndyaXRlX2VuZCA9IG5ucGZzX3dyaXRlX2Vu
ZCwNCisjZW5kaWYNCiB9Ow0KIA0KIC8qDQpAQCAtMTkxNywyMSArMjE2Miwz
MCBAQCBzdHJ1Y3QgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25zIG5ucGZzX2Fv
DQogICovDQogDQogc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19maWxl
X29wZXJhdGlvbnMgPSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgLmFpb19yZWFkCT0gbm5wZnNf
YWlvX3JlYWQsDQogICAgIC5haW9fd3JpdGUJPSBubnBmc19haW9fd3JpdGUs
DQorI2Vsc2UNCisgICAgLnJlYWRfaXRlcgk9IG5ucGZzX3JlYWRfaXRlciwN
CisgICAgLndyaXRlX2l0ZXIJPSBubnBmc193cml0ZV9pdGVyLA0KKyNlbmRp
Zg0KICAgICAubW1hcAk9IG5ucGZzX2ZpbGVfbW1hcCwNCiAgICAgLm9wZW4J
PSBubnBmc19vcGVuLA0KICAgICAuZmx1c2gJPSBubnBmc19mbHVzaCwNCiAg
ICAgLnJlbGVhc2UJPSBubnBmc19yZWxlYXNlX2ZpbGUsDQogICAgIC5mc3lu
Ywk9IG5ucGZzX2ZzeW5jLA0KLSAgICAuc2VuZGZpbGUJPSBubnBmc19zZW5k
ZmlsZSwNCisgICAgLnNwbGljZV9yZWFkID0gbm5wZnNfc3BsaWNlX3JlYWQs
DQogfTsNCiANCiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2RlYWRf
b3BlcmF0aW9ucyA9IHsNCiB9Ow0KIA0KIHN0cnVjdCBmaWxlX29wZXJhdGlv
bnMgbm5wZnNfZGlyX29wZXJhdGlvbnMgPSB7DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEsMCkNCiAgICAgLnJlYWRk
aXIJPSBubnBmc19yZWFkZGlyLA0KKyNlbHNlDQorICAgIC5pdGVyYXRlICAg
ID0gbm5wZnNfaXRlcmF0ZSwNCisjZW5kaWYNCiAgICAgLmZsdXNoCT0gbm5w
ZnNfZmx1c2gsDQogfTsNCiANCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFy
bGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19sb2FkLmMgYXJsYS1mb3ItbGlu
dXgtMy4xOC9ubnBmcy9saW51eC9ubnBmc19sb2FkLmMNCi0tLSBhcmxhLTAu
OTAvbm5wZnMvbGludXgvbm5wZnNfbG9hZC5jCTIwMDYtMTAtMzEgMTE6MDI6
NDEuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS1mb3ItbGludXgtMy4xOC9u
bnBmcy9saW51eC9ubnBmc19sb2FkLmMJMjAxNi0wMS0xMyAyMDoxNDowMi44
MzAxMDM1MTcgKzAxMDANCkBAIC01NCw3ICs1NCwxMSBAQCBleHRlcm4gc3Ry
dWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19mb3BzDQogDQogc3RydWN0IGZp
bGVfc3lzdGVtX3R5cGUgbm5wZnNfZnNfdHlwZSA9IHsNCiAgICAgICAgbmFt
ZTogICAgICAgICAgICJubnBmcyIsDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAgICAgZ2V0X3NiOiAg
ICAgICAgIG5ucGZzX2dldF9zYiwNCisjZWxzZQ0KKyAgICAgICBtb3VudDog
ICAgICAgICAgbm5wZnNfbW91bnQsDQorI2VuZGlmDQogICAgICAgIGtpbGxf
c2I6ICAgICAgICBraWxsX2xpdHRlcl9zdXBlciwNCiAgICAgICAgb3duZXI6
ICAgICAgICAgIFRISVNfTU9EVUxFLA0KIH07DQpkaWZmIC11cHJOIC1Ybm9k
aWZmLnR4dCBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfbWVzc2FnZS5j
IGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgvbm5wZnNfbWVzc2Fn
ZS5jDQotLS0gYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2Uu
YwkyMDA3LTAxLTA5IDE3OjMzOjMxLjAwMDAwMDAwMCArMDEwMA0KKysrIGFy
bGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgvbm5wZnNfbWVzc2FnZS5j
CTIwMTYtMDEtMTQgMDA6NDQ6MjEuNTY2MDgxMjk4ICswMTAwDQpAQCAtNDUs
NyArNDUsNyBAQA0KICNpbmNsdWRlIDxsaW51eC9tb3VudC5oPg0KIA0KICNp
ZmRlZiBSQ1NJRA0KLVJDU0lEKCIkSWQ6IG5ucGZzX21lc3NhZ2UuYyx2IDEu
MTQzLjIuMSAyMDA3LzAxLzA5IDE2OjMzOjMxIHRvbCBFeHAgJCIpOw0KK1JD
U0lEKCIkSWQ6IG5ucGZzX21lc3NhZ2UuYyx2IDEuMTQ1IDIwMTAvMDgvMDgg
MjA6NDM6MDUgdG9sIEV4cCAkIik7DQogI2VuZGlmDQogDQogc3RhdGljIHZv
aWQNCkBAIC01NSw5ICs1NSwxNSBAQCBzdGF0aWMgdm9pZA0KIG5ucGZzX2Rf
cmVtb3ZlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkNCiB7DQogICAgIE5OUEZT
REVCKFhERUJNU0csICgibm5wZnNfZF9yZW1vdmUgJXBcbiIsIGRlbnRyeSkp
Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzgpDQogICAgIHNwaW5fbG9jaygmZGNhY2hlX2xvY2spOw0KICAgICBk
Z2V0X2xvY2tlZChkZW50cnkpOw0KICAgICBzcGluX3VubG9jaygmZGNhY2hl
X2xvY2spOw0KKyNlbHNlDQorICAgIHNwaW5fbG9jaygmZGVudHJ5LT5kX2xv
Y2spOw0KKyAgICBkZ2V0X2Rsb2NrKGRlbnRyeSk7DQorICAgIHNwaW5fdW5s
b2NrKCZkZW50cnktPmRfbG9jayk7DQorI2VuZGlmDQogICAgIGRfZHJvcChk
ZW50cnkpOw0KICAgICBkcHV0KGRlbnRyeSk7DQogfQ0KQEAgLTEyMSw3ICsx
MjcsMTEgQEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZShzdHJ1Y3Qgbm5w
ZnMgKg0KICAgICBzdHJ1Y3QgaW5vZGUgKmRpLCAqaW5vZGU7DQogICAgIHN0
cnVjdCBkZW50cnkgKnBhcmVudCA9IE5VTEw7DQogICAgIHN0cnVjdCBxc3Ry
IHNxc3RyOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDYsMCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqYWxpYXM7DQor
I2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5
LDApDQorICAgIHN0cnVjdCBobGlzdF9ub2RlICphbGlhczsNCisjZW5kaWYN
CiAgICAgDQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfbWVzc2Fn
ZV9pbnN0YWxsbm9kZVxuIikpOw0KICAgICANCkBAIC0xNzYsMTIgKzE4Niwy
NCBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxub2RlKHN0cnVjdCBubnBmcyAq
DQogICAgICAqDQogICAgICAqLw0KICAgICANCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIGFsaWFzID0g
ZGktPmlfZGVudHJ5Lm5leHQ7DQogICAgIHdoaWxlIChhbGlhcyAhPSAmZGkt
PmlfZGVudHJ5KSB7DQogCXBhcmVudCA9IGxpc3RfZW50cnkoYWxpYXMsIHN0
cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KLQlzcGluX2xvY2soJmRjYWNoZV9s
b2NrKTsNCi0JZGdldF9sb2NrZWQocGFyZW50KTsNCi0Jc3Bpbl91bmxvY2so
JmRjYWNoZV9sb2NrKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50
cnkocGFyZW50LCBhbGlhcywgJmRpLT5pX2RlbnRyeSwgZF9hbGlhcykgew0K
KyNlbHNlDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KHBhcmVudCwgJmRp
LT5pX2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbmRpZg0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQorICAgIHNw
aW5fbG9jaygmZGNhY2hlX2xvY2spOw0KKyAgICBkZ2V0X2xvY2tlZChwYXJl
bnQpOw0KKyAgICBzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNl
DQorICAgIHNwaW5fbG9jaygmcGFyZW50LT5kX2xvY2spOw0KKyAgICBkZ2V0
X2Rsb2NrKHBhcmVudCk7DQorICAgIHNwaW5fdW5sb2NrKCZwYXJlbnQtPmRf
bG9jayk7DQorI2VuZGlmDQogCWRlbnRyeSA9IGRfbG9va3VwKHBhcmVudCwg
JnNxc3RyKTsNCiAJTk5QRlNERUIoWERFQk1TRywNCiAJCSAoIm5ucGZzX21l
c3NhZ2VfaW5zdGFsbG5vZGU6IGFsaWFzICVwLCBsb29rdXAgJXBcbiIsDQpA
QCAtMjMzLDcgKzI1NSw5IEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGUo
c3RydWN0IG5ucGZzICoNCiAJDQogCWRwdXQoZGVudHJ5KTsNCiAJZGVudHJ5
ID0gTlVMTDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMyw2LDApDQogCWFsaWFzID0gYWxpYXMtPm5leHQ7DQorI2VuZGlm
DQogCWRwdXQocGFyZW50KTsNCiAgICAgfQ0KICAgICBOTlBGU0RFQihYREVC
TVNHLCAoIm5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGU6IGRvbmUgaW5zdGFs
bGluZ1xuIikpOw0KQEAgLTI2OCw3ICsyOTIsMTEgQEAgbm5wZnNfbWVzc2Fn
ZV9pbnN0YWxsYXR0cihzdHJ1Y3Qgbm5wZnMgKg0KICAgICB9DQogDQogICAg
IGlub2RlID0gWE5PREVfVE9fVk5PREUodCk7DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBkZW50cnkg
PSBsaXN0X2VudHJ5KGlub2RlLT5pX2RlbnRyeS5uZXh0LCBzdHJ1Y3QgZGVu
dHJ5LCBkX2FsaWFzKTsNCisjZWxzZQ0KKyAgICBkZW50cnkgPSBobGlzdF9l
bnRyeShpbm9kZS0+aV9kZW50cnkuZmlyc3QsIHN0cnVjdCBkZW50cnksIGRf
YWxpYXMpOw0KKyNlbmRpZg0KICAgICANCiAgICAgTk5QRlNERUIoWERFQk1T
RywgKCJubnBmc19tZXNzYWdlX2luc3RhbGxhdHRyIG5hbWU6JXNcbiIsDQog
CQkgICAgICAgZGVudHJ5LT5kX25hbWUubmFtZSkpOw0KQEAgLTM5NiwxNyAr
NDI0LDM0IEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbGRhdGEoc3RydWN0IG5u
cGZzICoNCiBzdGF0aWMgdm9pZA0KIGNsZWFyX2FsbF9jaGlsZHJlbiAoc3Ry
dWN0IGlub2RlICppbm9kZSwgaW50IHBhcmVudCkNCiB7DQorICAgIHN0cnVj
dCBkZW50cnkgKmRlbnRyeTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHN0cnVjdCBsaXN0X2hlYWQg
KmFsaWFzOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsOSwwKQ0KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqYWxpYXM7
DQorI2VuZGlmDQogDQogIGFnYWluOg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQogICAgIHNwaW5fbG9jaygm
ZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorICAgIC8qIFRPRE86IGZpbmQgdGhl
IGRlbnRyeSB0byBsb2NrICovDQorICAgIC8qc3Bpbl9sb2NrKCZkZW50cnkt
PmRfbG9jayk7Ki8NCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIGFsaWFzID0gaW5vZGUt
PmlfZGVudHJ5Lm5leHQ7DQogICAgIHdoaWxlIChhbGlhcyAhPSAmaW5vZGUt
PmlfZGVudHJ5KSB7DQotCXN0cnVjdCBkZW50cnkgKmRlbnRyeTsNCisjZWxp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkN
CisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkoZGVudHJ5LCBhbGlhcywgJmlu
b2RlLT5pX2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbHNlDQorICAgIGhsaXN0
X2Zvcl9lYWNoX2VudHJ5KGRlbnRyeSwgJmlub2RlLT5pX2RlbnRyeSwgZF9h
bGlhcykgew0KKyNlbmRpZg0KIAlzdHJ1Y3QgbGlzdF9oZWFkICpzdWJkaXJz
Ow0KIAlzdHJ1Y3Qgbm5wZnNfZGVudHJ5X2RhdGEgKnhkOw0KIAkNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQog
CWRlbnRyeSA9IGxpc3RfZW50cnkoYWxpYXMsIHN0cnVjdCBkZW50cnksIGRf
YWxpYXMpOw0KKyNlbmRpZg0KIAlpZiAoZGVudHJ5ID09IE5VTEwpIHsNCiAJ
ICAgIHByaW50ayhLRVJOX0VNRVJHICJOTlBGUyBQYW5pYzogZGVudHJ5IGlu
IGFsaWFzIGxpc3QgaXMgbnVsbFxuIik7DQogCSAgICBicmVhazsNCkBAIC00
NDIsMTQgKzQ4NywyNiBAQCBjbGVhcl9hbGxfY2hpbGRyZW4gKHN0cnVjdCBp
bm9kZSAqaW5vZGUsDQogDQogCSAgICAvKiBUaHJvdyBpbW1lZGlhdGVseSAq
Lw0KIAkgICAgaWYgKG5ucGZzX2Rjb3VudChjaGlsZCkgPT0gMCkgew0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgp
DQogCSAgICAgICAgc3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxz
ZQ0KKwkJLyogVE9ETzogdW5sb2NrIHRoZSBkZW50cnkgKi8NCisJCS8qc3Bp
bl91bmxvY2soJmRlbnRyeS0+ZF9sb2NrKTsqLw0KKyNlbmRpZg0KIAkJbm5w
ZnNfZF9yZW1vdmUoY2hpbGQpOw0KIAkJZ290byBhZ2FpbjsNCiAJICAgIH0N
CiAJfQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDYsMCkNCiAJYWxpYXMgPSBhbGlhcy0+bmV4dDsNCisjZW5kaWYNCiAg
ICAgfQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigyLDYsMzgpDQogICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7DQor
I2Vsc2UNCisgICAgLyogVE9ETzogdW5sb2NrIHRoZSBkZW50cnkgKi8NCisg
ICAgLypzcGluX3VubG9jaygmZGVudHJ5LT5kX2xvY2spOyovDQorI2VuZGlm
DQogfQ0KIA0KIHN0YXRpYyB2b2lkDQpAQCAtNjA1LDEyICs2NjIsMTAgQEAg
Z2NfYmxvY2soc3RydWN0IG5ucGZzICpubnBmc3AsDQogICAgIH0NCiANCiAg
ICAgaWYgKCFubnBmc19ibG9ja19oYXZlX3AoeG4sIG9mZnNldCkpIHsNCi0j
aWYgMCAgIC8qIGhhcHBlbnMgd2hlbiBkYWVtb24gc2VuZHMgc2V2ZXJhbCBt
ZXNzYWdlcyBmb3Igc2FtZSBibG9jayAqLw0KIAlwcmludGsoS0VSTl9FTUVS
RyAiTk5QRlMvZ2NfYmxvY2s6ICINCiAJICAgICAgICJFTk9FTlQgKCVkLCVk
LCVkLCVkKSAweCVsbHhcbiIsIA0KIAkgICAgICAgeG4tPmhhbmRsZS5hLCB4
bi0+aGFuZGxlLmIsIHhuLT5oYW5kbGUuYywgeG4tPmhhbmRsZS5kLCANCiAJ
ICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpb2Zmc2V0KTsNCi0jZW5kaWYN
CiAJcmV0dXJuIC1FTk9FTlQ7DQogICAgIH0NCiANCkBAIC03MjYsNyArNzgx
LDExIEBAIG5ucGZzX21lc3NhZ2VfdmVyc2lvbihzdHJ1Y3Qgbm5wZnMgKm5u
cGYNCiANCiAJdWludDY0X3QgYmxvY2tzaXplID0gbWVzc2FnZS0+YmxvY2tz
aXplOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigyLDYsMzkpDQogCWVycm9yID0gcGF0aF9sb29rdXAoIi4iLCAwLCAm
bmQpOw0KKyNlbHNlDQorCWVycm9yID0ga2Vybl9wYXRoKCIuIiwgMCwgJm5k
LnBhdGgpOw0KKyNlbmRpZg0KIAlpZiAoZXJyb3IpIHsNCiAJICAgIC8qDQog
CSAgICAgKiBCYWQgY2FjaGUgcm9vdCwganVzdCByZXR1cm4uDQpAQCAtNzM3
LDEyICs3OTYsMTcgQEAgbm5wZnNfbWVzc2FnZV92ZXJzaW9uKHN0cnVjdCBu
bnBmcyAqbm5wZg0KIAkJICAgIm5ucGZzX21lc3NhZ2VfdmVyc2lvbiBmYWls
ZWQgcGF0aF9sb29rdXAsICINCiAJCSAgICJlcnJubzogJWRcbiIsIGVycm9y
KTsNCiAJfSBlbHNlIHsNCi0JICAgIG5ucGZzcC0+Y2FjaGVyb290ID0gbW50
Z2V0KG5kLm1udCk7DQotCSAgICBubnBmc3AtPmNhY2hlZGlyID0gZGdldChu
ZC5kZW50cnkpOw0KLQkgICAgcGF0aF9yZWxlYXNlKCZuZCk7DQorCSAgICBu
bnBmc3AtPmNhY2hlcm9vdCA9IG1udGdldChuZC5wYXRoLm1udCk7DQorCSAg
ICBubnBmc3AtPmNhY2hlZGlyID0gZGdldChuZC5wYXRoLmRlbnRyeSk7DQor
CSAgICBwYXRoX3B1dCgmbmQucGF0aCk7DQogCSAgICANCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJICAg
IG5ucGZzcC0+dWlkID0gY3VycmVudC0+ZnN1aWQ7DQogCSAgICBubnBmc3At
PmdpZCA9IGN1cnJlbnQtPmZzZ2lkOw0KKyNlbHNlDQorICAgICAgICAgICAg
bm5wZnNwLT51aWQgPSBjdXJyZW50X2ZzdWlkKCk7DQorICAgICAgICAgICAg
bm5wZnNwLT5naWQgPSBjdXJyZW50X2ZzZ2lkKCk7DQorI2VuZGlmDQogDQog
CSAgICAvKiBYWFggd2Ugc2hvdWxkIHZhbGlkYXRlIHRoZXNlIHZhbHVlcyAq
Lw0KIAkgICAgbm5wZnNfYmxvY2tzaXplID0gYmxvY2tzaXplOw0KZGlmZiAt
dXByTiAtWG5vZGlmZi50eHQgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZz
X25vZGUuYyBhcmxhLWZvci1saW51eC0zLjE4L25ucGZzL2xpbnV4L25ucGZz
X25vZGUuYw0KLS0tIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19ub2Rl
LmMJMjAwNy0wMS0wMyAxNDo1MjowMi4wMDAwMDAwMDAgKzAxMDANCisrKyBh
cmxhLWZvci1saW51eC0zLjE4L25ucGZzL2xpbnV4L25ucGZzX25vZGUuYwky
MDE2LTAxLTEzIDIwOjQ1OjQwLjg3MDIxNzk0NCArMDEwMA0KQEAgLTEzMiw3
ICsxMzIsMTIgQEAgbm5wZnNfc2V0c2l6ZShzdHJ1Y3QgaW5vZGUgKmlub2Rl
LCB1aW50Ng0KIAlwcmludGsoIm5ucGZzX3NldHNpemU6IHRydW5jYXRpbmcg
QDB4JWxsdVxuIiwNCiAJICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpc2l6
ZSk7DQogI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsOCwwKQ0KIAl2bXRydW5jYXRlKGlub2RlLCBzaXplKTsg
LyogWFhYIHJldHZhbCAqLw0KKyNlbHNlDQorCWlmKCFpbm9kZV9uZXdzaXpl
X29rKGlub2RlLCBzaXplKSkNCisJICAgIHRydW5jYXRlX3NldHNpemUoaW5v
ZGUsIHNpemUpOw0KKyNlbmRpZg0KIAlubnBmc19ibG9ja190cnVuY2F0ZSh4
biwgc2l6ZSk7DQogICAgIH0NCiB9DQpAQCAtMTUwLDkgKzE1NSwxOCBAQCBu
bnBmc19hdHRyMmlub2RlKGNvbnN0IHN0cnVjdCBubnBmc19hdHRyDQogCXN0
cnVjdCB0aW1lc3BlYyBub3RpbWUgPSB7MH07DQogDQogCWlub2RlLT5pX21v
ZGUgICA9IDA7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTQsMCkNCiAJaW5vZGUtPmlfdWlkICAgID0gMDsNCiAJaW5v
ZGUtPmlfZ2lkICAgID0gMDsNCisjZWxzZQ0KKwlpbm9kZS0+aV91aWQgICAg
PSBLVUlEVF9JTklUKDApOw0KKwlpbm9kZS0+aV9naWQgICAgPSBLR0lEVF9J
TklUKDApOw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDIsMCkNCiAJaW5vZGUtPmlfbmxpbmsgID0gMTsN
CisjZWxzZQ0KKwlzZXRfbmxpbmsoaW5vZGUsIDEpOw0KKyNlbmRpZg0KIAlp
bm9kZS0+aV9hdGltZSAgPSBub3RpbWU7DQogCWlub2RlLT5pX210aW1lICA9
IG5vdGltZTsNCiAJaW5vZGUtPmlfY3RpbWUgID0gbm90aW1lOw0KQEAgLTE2
OSw3ICsxODMsMTEgQEAgbm5wZnNfYXR0cjJpbm9kZShjb25zdCBzdHJ1Y3Qg
bm5wZnNfYXR0cg0KICAgICBpZiAoWEFfVkFMSURfR0lEKGF0dHIpKQ0KIAlp
bm9kZS0+aV9naWQgICAgPSBhdHRyLT54YV9naWQ7DQogICAgIGlmIChYQV9W
QUxJRF9OTElOSyhhdHRyKSkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMywyLDApDQogCWlub2RlLT5pX25saW5rICA9IGF0
dHItPnhhX25saW5rOw0KKyNlbHNlDQorCXNldF9ubGluayhpbm9kZSwgYXR0
ci0+eGFfbmxpbmspOw0KKyNlbmRpZg0KICAgICANCiAgICAgaWYgKFhBX1ZB
TElEX1NJWkUoYXR0cikpIHsNCiAJbm5wZnNfc2V0c2l6ZShpbm9kZSwgYXR0
ci0+eGFfc2l6ZSk7DQpAQCAtNTEwLDExICs1MjgsMTkgQEAgbm5wZnNfaGFz
X3BhZyhjb25zdCBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeA0KIGludA0KIG5ucGZz
X25vZGVfdXNlcnMoc3RydWN0IGlub2RlICppbm9kZSkNCiB7DQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAg
ICBzdHJ1Y3QgbGlzdF9oZWFkICpwb3M7DQorI2Vsc2UNCisgICAgc3RydWN0
IGhsaXN0X25vZGUgKnBvczsNCisjZW5kaWYNCiAgICAgaW50IHVzZXJzID0g
MDsNCiAgICAgDQogICAgIC8qIFhYWCB0aGlzIHNob3VsZCBwcm9iYWJseSBi
ZSBwcm90ZWN0ZWQgc29tZWhvdyAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgbGlzdF9mb3JfZWFj
aChwb3MsICZpbm9kZS0+aV9kZW50cnkpIHsNCisjZWxzZQ0KKyAgICBobGlz
dF9mb3JfZWFjaChwb3MsICZpbm9kZS0+aV9kZW50cnkpIHsNCisjZW5kaWYN
CiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gbGlzdF9lbnRyeShwb3MsIHN0
cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KIAlpZiAobm5wZnNfZGNvdW50KGRl
bnRyeSkgPiAxKQ0KIAkgICAgdXNlcnMrKzsNCmRpZmYgLXVwck4gLVhub2Rp
ZmYudHh0IGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy5j
IGFybGEtZm9yLWxpbnV4LTMuMTgvbm5wZnMvbGludXgvbm5wZnNfc3lzY2Fs
bHMuYw0KLS0tIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxs
cy5jCTIwMDctMDEtMDMgMTU6MjY6MjcuMDAwMDAwMDAwICswMTAwDQorKysg
YXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxs
cy5jCTIwMTYtMDEtMTQgMDA6NDY6MDguNDY4MDg3NzQzICswMTAwDQpAQCAt
NDIsNyArNDIsOSBAQA0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19zeXNjYWxs
cy5oPg0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19jb21tb24uaD4NCiAjaW5j
bHVkZSA8bGludXgvZmlsZS5oPg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogI2luY2x1ZGUgPGxpbnV4L3Nt
cF9sb2NrLmg+DQorI2VuZGlmDQogI2luY2x1ZGUgPGxpbnV4L3NtcC5oPg0K
ICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+DQogDQpAQCAtNTAsNiArNTIs
MTEgQEANCiAjaW5jbHVkZSA8bGludXgvc2VjdXJpdHkuaD4NCiAjZW5kaWYN
CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9O
KDMsNywwKQ0KKyN1bmRlZiBTWVNDQUxMSEFDSw0KKy8qIHRoZSBtZXRob2Qg
dG8gcmVhZCAnbG93ZXJfYm91bmQnIGRvZXMgbm90IHdvcmsgb24ga2VybmVs
IDMuNyBhbmQgbGF0ZXIsIHNlIG5ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyAq
Lw0KKyNlbmRpZg0KKw0KICNpZiAwDQogI2lmZGVmIENPTkZJR19DT01QQVQN
CiAjaW5jbHVkZSA8bGludXgvaW9jdGwzMi5oPg0KQEAgLTY0LDcgKzcxLDcg
QEANCiAjdW5kZWYgTkVFRF9WSUNFSU9DVEwzMg0KIA0KICNpZmRlZiBSQ1NJ
RA0KLVJDU0lEKCIkSWQ6IG5ucGZzX3N5c2NhbGxzLmMsdiAxLjEyMiAyMDA3
LzAxLzAzIDE0OjI2OjI3IHRvbCBFeHAgJCIpOw0KK1JDU0lEKCIkSWQ6IG5u
cGZzX3N5c2NhbGxzLmMsdiAxLjEyNSAyMDEwLzA4LzA4IDIwOjQzOjA2IHRv
bCBFeHAgJCIpOw0KICNlbmRpZg0KIA0KIHN0YXRpYyBzdHJ1Y3QgcHJvY19k
aXJfZW50cnkgKm5ucGZzX3Byb2Nmc19kaXI7DQpAQCAtODIsMTIgKzg5LDIy
IEBAIHR5cGVkZWYgc3RydWN0IGFmc3Byb2NkYXRhIHsNCiAgICAgdW5zaWdu
ZWQgbG9uZyBzeXNjYWxsOw0KIH0gYWZzcHJvY2RhdGE7DQogDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiBz
dGF0aWMgaW50DQogbm5wZnNfcHJvY2ZzX2lvY3RsKHN0cnVjdCBpbm9kZSAq
aW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLA0KIAkJICAgdW5zaWduZWQgaW50
IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOw0KKyNlbHNlDQorc3RhdGljIGxv
bmcNCitubnBmc19wcm9jZnNfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsDQor
CQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7DQor
I2VuZGlmDQogDQogc3RhdGljIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5w
ZnNfcHJvY2ZzX2ZvcHMgPSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiAgICAgLmlvY3RsID0gbm5wZnNf
cHJvY2ZzX2lvY3RsLA0KKyNlbHNlDQorICAgIC51bmxvY2tlZF9pb2N0bCA9
IG5ucGZzX3Byb2Nmc19pb2N0bCwNCisjZW5kaWYNCiB9Ow0KIA0KIA0KQEAg
LTE0Nyw1MyArMTY0LDQ4IEBAIHN0YXRpYyBpbnQgbm5wZnNfc2VjX3JlZ2lz
dGVyZWQgPSAwOw0KICNkZWZpbmUgU0VDMlBBRyhzKSAobm5wZnNfcGFnX3Qp
KHVuc2lnbmVkIGxvbmcpKHMpDQogI2RlZmluZSBQQUcyU0VDKHApICh2b2lk
ICopKHVuc2lnbmVkIGxvbmcpKHApDQogDQotc3RhdGljIGludA0KLW5ucGZz
X3NlY190YXNrX2FsbG9jKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkNCi17DQot
ICAgIG5ucGZzX3BhZ190IHBhZyA9IFNFQzJQQUcoY3VycmVudC0+c2VjdXJp
dHkpOw0KLSAgICBpZiAocGFnKQ0KLQlwLT5zZWN1cml0eSA9IFBBRzJTRUMo
cGFnKTsNCi0gICAgcmV0dXJuIDA7DQotfQ0KLQ0KLXN0YXRpYyB2b2lkDQot
bm5wZnNfc2VjX3Rhc2tfZnJlZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApDQot
ew0KLSAgICBubnBmc19wYWdfdCBwYWcgPSBTRUMyUEFHKHAtPnNlY3VyaXR5
KTsNCi0gICAgaWYgKHBhZykNCi0JcC0+c2VjdXJpdHkgPSBOVUxMOw0KLX0N
Ci0NCiBzdGF0aWMgbm5wZnNfcGFnX3QNCiBubnBmc19nZXRfcGFnX3NlYyh2
b2lkKQ0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9W
RVJTSU9OKDIsNiwyOCkNCiAgICAgbm5wZnNfcGFnX3QgcGFnID0gU0VDMlBB
RyhjdXJyZW50LT5zZWN1cml0eSk7DQorI2Vsc2UNCisgICAgbm5wZnNfcGFn
X3QgcGFnID0gU0VDMlBBRyhjdXJyZW50X3NlY3VyaXR5KCkpOw0KKyNlbmRp
Zg0KICAgICBpZiAocGFnKQ0KIAlyZXR1cm4gcGFnOw0KIA0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAg
ICByZXR1cm4gY3VycmVudC0+dWlkOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCisgICAgcmV0dXJuIGN1
cnJlbnRfdWlkKCk7DQorI2Vsc2UNCisgICAgeyBrdWlkX3Qga3VpZCA9IGN1
cnJlbnRfdWlkKCk7IHJldHVybiBrdWlkLnZhbDsgfQ0KKyNlbmRpZg0KIH0N
CiANCiBzdGF0aWMgaW50DQogbm5wZnNfc2V0X3BhZ19zZWModm9pZCkNCiB7
DQogICAgIHN0YXRpYyBubnBmc19wYWdfdCBwYWdudW0gPSBOTlBGU19QQUdf
TExJTTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJT
SU9OKDIsNiwyOSkNCisgICAgc3RydWN0IGNyZWQgKmNyZWQ7DQorI2VuZGlm
DQogDQogICAgIGlmIChwYWdudW0gPT0gTk5QRlNfUEFHX1VMSU0pDQogCXJl
dHVybiAtRU5PTUVNOw0KICAgICAvKiBwYWdudW0gPSBOTlBGU19QQUdfTExJ
TTsgKi8NCiAgICAgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJO
RUxfVkVSU0lPTigyLDYsMjgpDQogICAgIGN1cnJlbnQtPnNlY3VyaXR5ID0g
UEFHMlNFQyhwYWdudW0pOw0KKyNlbHNlDQorICAgIGNyZWQgPSAoc3RydWN0
IGNyZWQgKikgY3VycmVudC0+Y3JlZDsNCisgICAgY3JlZC0+c2VjdXJpdHkg
PSBQQUcyU0VDKHBhZ251bSk7DQorI2VuZGlmDQogICAgIHBhZ251bSsrOw0K
ICAgICByZXR1cm4gMDsNCiB9DQogDQotc3RhdGljIHN0cnVjdCBzZWN1cml0
eV9vcGVyYXRpb25zIG5ucGZzX3NlY19vcHMgPSB7DQotICAgIC50YXNrX2Fs
bG9jX3NlY3VyaXR5ID0gbm5wZnNfc2VjX3Rhc2tfYWxsb2MsDQotICAgIC50
YXNrX2ZyZWVfc2VjdXJpdHkgPSBubnBmc19zZWNfdGFza19mcmVlLA0KLS8v
ICAgIC50YXNrX3JlcGFyZW50X3RvX2luaXQgPSBubnBmc19zZWNfcmVwYXJl
bnRfdG9faW5pdCwNCi19Ow0KLQ0KICNlbmRpZiAvKiBDT05GSUdfU0VDVVJJ
VFkgKi8NCiANCiAjaWZkZWYgR1JPVVBQQUdTDQpAQCAtMjA2LDcgKzIxOCwx
MiBAQCBmaW5kX3BhZyhzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ2kpDQogICAgIE5O
UEZTREVCKFhERUJTWVMsICgiZmluZF9wYWc6IG5ncm91cHMgPSAlZFxuIiwg
Z2ktPm5ncm91cHMpKTsNCiANCiAgICAgZm9yIChpID0gZ2ktPm5ncm91cHMg
LSAxOyBpID49IDA7IGktLSkgew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogCWdpZF90IGdyb3VwID0gR1JP
VVBfQVQoZ2ksIGkpOw0KKyNlbHNlDQorCWtnaWRfdCBrZ3JvdXAgPSBHUk9V
UF9BVChnaSwgaSk7DQorCWdpZF90IGdyb3VwID0ga2dyb3VwLnZhbDsNCisj
ZW5kaWYNCiAJaWYgKChubnBmc19wYWdfdClncm91cCA+PSBOTlBGU19QQUdf
TExJTSAmJiAobm5wZnNfcGFnX3QpZ3JvdXAgPCBOTlBGU19QQUdfVUxJTSkg
ew0KIAkgICAgTk5QRlNERUIoWERFQlNZUywNCiAJCSAgICAgKCJmaW5kX3Bh
ZzogRXhpc3RpbmcgcGFnICV1IGF0IHBvcyAldVxuIiwgZ3JvdXAsIGkpKTsN
CkBAIC0yMjIsMTUgKzIzOSwzMSBAQCBmaW5kX3BhZyhzdHJ1Y3QgZ3JvdXBf
aW5mbyAqZ2kpDQogc3RhdGljIG5ucGZzX3BhZ190DQogbm5wZnNfZ2V0X3Bh
Z19ncm91cCh2b2lkKQ0KIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9
IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgc3RydWN0IGdyb3VwX2lu
Zm8gKmdpID0gY3VycmVudC0+Z3JvdXBfaW5mbzsNCiAgICAgbm5wZnNfcGFn
X3QgcmV0ID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgIHN0cnVjdCBn
cm91cF9pbmZvICpnaSA9IGdldF9jdXJyZW50X2dyb3VwcygpOw0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQor
ICAgIG5ucGZzX3BhZ190IHJldCA9IGN1cnJlbnRfdWlkKCk7DQorI2Vsc2UN
CisgICAga3VpZF90IGt1aWQgPSBjdXJyZW50X3VpZCgpOw0KKyAgICBubnBm
c19wYWdfdCByZXQgPSBrdWlkLnZhbDsNCisjZW5kaWYNCisjZW5kaWYNCiAg
ICAgaW50IGk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJO
RUxfVkVSU0lPTigyLDYsMjgpDQogICAgIGdldF9ncm91cF9pbmZvKGdpKTsN
CisjZW5kaWYNCiANCiAgICAgaSA9IGZpbmRfcGFnKGdpKTsNCiAgICAgaWYg
KGkgIT0gTk5QRlNfUEFHX05PVEZPVU5EKQ0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogCXJldCA9IEdST1VQ
X0FUKGdpLCBpKTsNCisjZWxzZQ0KKwl7IGtnaWRfdCBrZ2lkID0gR1JPVVBf
QVQoZ2ksIGkpOyByZXQgPSBrZ2lkLnZhbDsgfQ0KKyNlbmRpZg0KIA0KICAg
ICBwdXRfZ3JvdXBfaW5mbyhnaSk7DQogDQpAQCAtMjQyLDEzICsyNzUsMTkg
QEAgbm5wZnNfZ2V0X3BhZ19ncm91cCh2b2lkKQ0KIHN0YXRpYyBpbnQNCiBz
dG9yZV9wYWcobm5wZnNfcGFnX3QgcGFnbnVtKQ0KIHsNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAg
c3RydWN0IGdyb3VwX2luZm8gKm9sZF9naSA9IGN1cnJlbnQtPmdyb3VwX2lu
Zm87DQorI2Vsc2UNCisgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAqb2xkX2dpID0g
Z2V0X2N1cnJlbnRfZ3JvdXBzKCk7DQorI2VuZGlmDQogICAgIHN0cnVjdCBn
cm91cF9pbmZvICpuZXdfZ2k7DQotICAgIGludCBuYmxvY2tzLCBjb3VudDsN
CisgICAgdW5zaWduZWQgaW50IG5ibG9ja3MsIGNvdW50Ow0KICAgICBpbnQg
Zm91bmQgPSAwOw0KICAgICBpbnQgaSwgazsNCiAgICAgDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpICAgIA0K
ICAgICBnZXRfZ3JvdXBfaW5mbyhvbGRfZ2kpOw0KKyNlbmRpZg0KIA0KICAg
ICBpID0gZmluZF9wYWcob2xkX2dpKTsNCiAgICAgaWYgKGkgIT0gTk5QRlNf
UEFHX05PVEZPVU5EKQ0KQEAgLTI3NCwxMCArMzEzLDE3IEBAIHN0b3JlX3Bh
ZyhubnBmc19wYWdfdCBwYWdudW0pDQogCWNvdW50IC09IE5HUk9VUFNfUEVS
X0JMT0NLOw0KICAgICB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAgICAgaWYgKGZvdW5kKQ0KIAlH
Uk9VUF9BVChuZXdfZ2ksIGkpID0gcGFnbnVtOw0KICAgICBlbHNlDQogCUdS
T1VQX0FUKG5ld19naSwgbmV3X2dpLT5uZ3JvdXBzIC0gMSkgPSBwYWdudW07
DQorI2Vsc2UNCisgICAgaWYgKGZvdW5kKQ0KKwl7IGtnaWRfdCBrZ2lkID0g
S0dJRFRfSU5JVChwYWdudW0pOyBHUk9VUF9BVChuZXdfZ2ksIGkpID0ga2dp
ZDsgfQ0KKyAgICBlbHNlDQorCXsga2dpZF90IGtnaWQgPSBLR0lEVF9JTklU
KHBhZ251bSk7IEdST1VQX0FUKG5ld19naSwgbmV3X2dpLT5uZ3JvdXBzIC0g
MSkgPSBrZ2lkOyB9DQorI2VuZGlmDQogICAgIA0KICAgICBzZXRfY3VycmVu
dF9ncm91cHMobmV3X2dpKTsNCiAgICAgcHV0X2dyb3VwX2luZm8obmV3X2dp
KTsNCkBAIC0zMTcsNyArMzYzLDEzIEBAIG5ucGZzX2dldF9wYWcoKQ0KICAg
ICByZXR1cm4gbm5wZnNfZ2V0X3BhZ19ncm91cCgpOw0KICNlbmRpZiAvKiBH
Uk9VUFBBR1MgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtF
Uk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgcmV0dXJuIGN1cnJlbnQtPnVp
ZDsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDE0LDApDQorICAgIHJldHVybiBjdXJyZW50X3VpZCgpOw0KKyNlbHNl
DQorICAgIHsga3VpZF90IGt1aWQgPSBjdXJyZW50X3VpZCgpOyByZXR1cm4g
a3VpZC52YWw7IH0NCisjZW5kaWYNCiB9DQogDQogc3RhdGljIGlubGluZSBp
bnQNCkBAIC00MjIsNyArNDc0LDcgQEAgbm5wZnNfc2V0Z3JvdXBzMTYgKGlu
dCBnaWRzZXRzaXplLCBvbGRfZw0KICNlbmRpZiAvKiBTWVNDQUxMSEFDSyAq
Lw0KICNlbmRpZiAvKiBHUk9VUFBBR1MgKi8NCiANCi1zdHJ1Y3QgZmlsZV9o
YW5kbGUgew0KK3N0cnVjdCBubnBmc19maWxlX2hhbmRsZSB7DQogICAgIG5u
cGZzX2Rldl90IGRldjsNCiAgICAgaW5vX3QgaW5vZGU7DQogICAgIF9fdTMy
IGdlbjsNCkBAIC01MTIsMTEgKzU2NCwxOSBAQCBubnBmc19kZWJ1Z19wcmlu
dCAoc3RydWN0IGFybGFWaWNlSW9jdGwNCiBzdGF0aWMgc3RydWN0IGRlbnRy
eSAqDQogdXNlcl9wYXRoMmRlbnRyeSAoc3RydWN0IG5hbWVpZGF0YSAqbmQs
IGNoYXIgKnVzZXJfcGF0aCwgaW50IGZvbGxvdykNCiB7DQotICAgIGNoYXIg
KmtuYW1lOw0KICAgICBpbnQgZmxhZ3MgPSAwOw0KICAgICBpbnQgZXJyb3Ig
PSAwOw0KIA0KLSAgICBrbmFtZSA9IGdldG5hbWUgKHVzZXJfcGF0aCk7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNyww
KQ0KKyAgICBjaGFyICprbmFtZTsNCisgICAga25hbWUgPSBnZXRuYW1lKHVz
ZXJfcGF0aCk7DQorI2Vsc2UNCisgICAgY29uc3QgY2hhciAqa25hbWU7DQor
ICAgIHN0cnVjdCBmaWxlbmFtZSAqZm5hbWU7DQorICAgIGZuYW1lID0gZ2V0
bmFtZSh1c2VyX3BhdGgpOw0KKyAgICBrbmFtZSA9IGZuYW1lLT5uYW1lOw0K
KyNlbmRpZg0KKw0KICAgICBpZiAoSVNfRVJSKGtuYW1lKSkNCiAJcmV0dXJu
IEVSUl9QVFIoUFRSX0VSUihrbmFtZSkpOw0KICAgICBpZiAoZm9sbG93KQ0K
QEAgLTUyNCwxMSArNTg0LDE5IEBAIHVzZXJfcGF0aDJkZW50cnkgKHN0cnVj
dCBuYW1laWRhdGEgKm5kLA0KIA0KICAgICBOTlBGU0RFQihYREVCTVNHLCAo
Im5ucGZzX3N5c2NhbGw6IGxvb2tpbmcgdXA6ICVzXG4iLCBrbmFtZSkpOw0K
IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzkpDQogICAgIGVycm9yID0gcGF0aF9sb29rdXAoa25hbWUsIGZsYWdz
LCBuZCk7DQorI2Vsc2UNCisgICAgZXJyb3IgPSBrZXJuX3BhdGgoa25hbWUs
IGZsYWdzLCAmKG5kLT5wYXRoKSk7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0KICAgICBwdXRu
YW1lKGtuYW1lKTsNCisjZWxzZQ0KKyAgICBrbWVtX2NhY2hlX2ZyZWUobmFt
ZXNfY2FjaGVwLCAodm9pZCAqKWtuYW1lKTsNCisjZW5kaWYNCiAgICAgaWYg
KGVycm9yKQ0KIAlyZXR1cm4gRVJSX1BUUihlcnJvcik7DQotICAgIHJldHVy
biBuZC0+ZGVudHJ5Ow0KKyAgICByZXR1cm4gbmQtPnBhdGguZGVudHJ5Ow0K
IH0NCiANCiBhc21saW5rYWdlIGxvbmcNCkBAIC01NDAsMTIgKzYwOCwyMCBA
QCBzeXNfYWZzX2ludCAoaW50IG9wZXJhdGlvbiwNCiB7DQogICAgIGxvbmcg
ZXJyb3IgPSAwOw0KICAgICBzdHJ1Y3QgYXJsYVZpY2VJb2N0bCB2aWNlX2lv
Y3RsOyANCi0gICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfcGlvY3RsIG1zZzsN
CisgICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfcGlvY3RsICptc2cgPSBOVUxM
Ow0KICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV93YWtldXAgKm1zZzI7DQog
ICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IE5VTEw7DQogICAgIHN0cnVj
dCBuYW1laWRhdGEgbmQ7DQogICAgIA0KKyAgICBtc2cgPSBrbWFsbG9jKHNp
emVvZigqbXNnKSwgR0ZQX0tFUk5FTCk7DQorICAgIGlmIChtc2cgPT0gTlVM
TCkNCisgICAgICByZXR1cm4gLUVOT01FTTsNCisNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICAgICBsb2Nr
X2tlcm5lbCgpOw0KKyNlbHNlDQorICAgIC8qIFRPRE86IGxvY2tfa2VybmVs
KCkgaXMgcmVtb3ZlZCwgY29uc2lkZXIgYWRkaW5nIGFuIHByaXZhdGUgbG9j
ayAqLw0KKyNlbmRpZg0KIA0KICAgICBOTlBGU0RFQihYREVCU1lTLCAoInN5
c19hZnMga2VybmVsIGxvY2tlZFxuIikpOw0KIA0KQEAgLTU3NSw3ICs2NTEs
NyBAQCBzeXNfYWZzX2ludCAoaW50IG9wZXJhdGlvbiwNCiAJICAgIGdvdG8g
dW5sb2NrOw0KIAl9DQogCWlmICh2aWNlX2lvY3RsLmluX3NpemUgIT0gMCkg
ew0KLQkgICAgaWYoY29weV9mcm9tX3VzZXIoJm1zZy5tc2csDQorCSAgICBp
Zihjb3B5X2Zyb21fdXNlcigmbXNnLT5tc2csDQogCQkJICAgICAgdmljZV9p
b2N0bC5pbiwNCiAJCQkgICAgICB2aWNlX2lvY3RsLmluX3NpemUpICE9IDAp
IHsNCiAJCWVycm9yID0gLUVGQVVMVDsNCkBAIC02MjgsMTkgKzcwNCwyMyBA
QCBzeXNfYWZzX2ludCAoaW50IG9wZXJhdGlvbiwNCiAJCWVycm9yID0gLUVJ
TlZBTDsNCiAJCWdvdG8gdW5sb2NrOw0KIAkgICAgfQ0KLQkgICAgbXNnLmhh
bmRsZSA9IHhuLT5oYW5kbGU7DQorCSAgICBtc2ctPmhhbmRsZSA9IHhuLT5o
YW5kbGU7DQogCX0NCiANCi0JbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19N
U0dfUElPQ1RMOw0KLQltc2cub3Bjb2RlID0gYV9vcGNvZGU7DQorCW1zZy0+
aGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19QSU9DVEw7DQorCW1zZy0+b3Bj
b2RlID0gYV9vcGNvZGU7DQogCQ0KLQltc2cuaW5zaXplICAgPSB2aWNlX2lv
Y3RsLmluX3NpemU7DQotCW1zZy5vdXRzaXplICA9IHZpY2VfaW9jdGwub3V0
X3NpemU7DQotCW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCi0JbXNn
LmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KKwltc2ctPmluc2l6ZSAg
ID0gdmljZV9pb2N0bC5pbl9zaXplOw0KKwltc2ctPm91dHNpemUgID0gdmlj
ZV9pb2N0bC5vdXRfc2l6ZTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9
IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisJbXNnLT5jcmVkLnVpZCA9IGN1
cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLT5jcmVkLnVpZCA9
IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQorCW1zZy0+Y3JlZC5wYWcgPSBu
bnBmc19nZXRfcGFnKCk7DQogCQ0KLQllcnJvciA9IG5ucGZzX21lc3NhZ2Vf
cnBjKCZubnBmc1swXSwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsgLyog
WFhYICovDQotCW1zZzIgPSAoc3RydWN0IG5ucGZzX21lc3NhZ2Vfd2FrZXVw
ICopICZtc2c7DQorCWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMoJm5ucGZz
WzBdLCAmbXNnLT5oZWFkZXIsIHNpemVvZigqbXNnKSk7IC8qIFhYWCAqLw0K
Kwltc2cyID0gKHN0cnVjdCBubnBmc19tZXNzYWdlX3dha2V1cCAqKSBtc2c7
DQogCWlmIChlcnJvciA9PSAwKQ0KIAkgICAgZXJyb3IgPSBtc2cyLT5lcnJv
cjsNCiANCkBAIC02NzUsMTIgKzc1NSwxNyBAQCBzeXNfYWZzX2ludCAoaW50
IG9wZXJhdGlvbiwNCiAgICAgDQogIHVubG9jazoNCiAgICAgaWYgKGRlbnRy
eSkNCi0JcGF0aF9yZWxlYXNlKCZuZCk7DQorCXBhdGhfcHV0KCZuZC5wYXRo
KTsNCiANCiAgICAgTk5QRlNERUIoWERFQlNZUywgKCJubnBmc19zeXNjYWxs
IHJldHVybnMgZXJyb3I6ICVsZFxuIiwgZXJyb3IpKTsNCiANCiAgICAgTk5Q
RlNERUIoWERFQlNZUywgKCJzeXNfYWZzIGtlcm5lbCB1bmxvY2tcbiIpKTsN
CisgICAga2ZyZWUobXNnKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICAgICB1bmxvY2tfa2VybmVsKCk7
DQorI2Vsc2UNCisgICAgLyogVE9ETzogc2VlIHRoZSBjb21tZW50IGF0IGxv
Y2tfa2VybmVsKCkgYWJvdmUgKi8NCisjZW5kaWYNCiANCiAgICAgcmV0dXJu
IGVycm9yOw0KIH0NCkBAIC03MjksOSArODE0LDE1IEBAIHN5c19hZnMgKGlu
dCBvcGVyYXRpb24sDQogCQkgICAgICAgYV9mb2xsb3dTeW1saW5rcyk7DQog
fQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigyLDYsMzYpDQogc3RhdGljIGludA0KIG5ucGZzX3Byb2Nmc19pb2N0bChz
dHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwNCiAJCSAg
IHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQ0KKyNlbHNl
DQorc3RhdGljIGxvbmcNCitubnBmc19wcm9jZnNfaW9jdGwoc3RydWN0IGZp
bGUgKmZpbGUsDQorCQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBs
b25nIGFyZykNCisjZW5kaWYNCiB7DQogICAgIGFmc3Byb2NkYXRhIGFyZ3M7
DQogICAgIGxvbmcgcmV0Ow0KQEAgLTc4MCwyMSArODcxLDMxIEBAIHN0YXRp
YyBpbnQgbm5wZnNfaW5pdF9wcm9jZnModm9pZCkNCiB7DQogICAgIHN0cnVj
dCBwcm9jX2Rpcl9lbnRyeSAqZW50cnk7DQogICAgIA0KLSAgICBubnBmc19w
cm9jZnNfZGlyID0gcHJvY19ta2RpcihOTlBGU19QUk9DX0RJUiwgcHJvY19y
b290X2ZzKTsNCisgICAgbm5wZnNfcHJvY2ZzX2RpciA9IHByb2NfbWtkaXIo
ImZzLyIgTk5QRlNfUFJPQ19ESVIsIE5VTEwpOw0KICAgICBpZiAobm5wZnNf
cHJvY2ZzX2RpciA9PSBOVUxMKQ0KIAlyZXR1cm4gLUVOT01FTTsNCiAgICAg
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs
NiwzMCkNCiAgICAgbm5wZnNfcHJvY2ZzX2Rpci0+b3duZXIgPSBUSElTX01P
RFVMRTsNCisjZW5kaWYNCiAgICAgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTAsMCkNCiAgICAgZW50cnkgPSBjcmVh
dGVfcHJvY19lbnRyeShOTlBGU19QUk9DX05PREUsIDA2NjYsIG5ucGZzX3By
b2Nmc19kaXIpOw0KKyNlbHNlDQorICAgIGVudHJ5ID0gcHJvY19jcmVhdGUo
Tk5QRlNfUFJPQ19OT0RFLCAwNjY2LCBOVUxMLCAmbm5wZnNfcHJvY2ZzX2Zv
cHMpOw0KKyNlbmRpZg0KICAgICBpZiAoZW50cnkgPT0gTlVMTCkgew0KIAlO
TlBGU0RFQihYREVCU1lTLCAoIm5ucGZzX2luaXRfcHJvY2ZzOiBubyBub2Rl
XG4iKSk7DQotCXJlbW92ZV9wcm9jX2VudHJ5KE5OUEZTX1BST0NfRElSLCBw
cm9jX3Jvb3RfZnMpOw0KKwlyZW1vdmVfcHJvY19lbnRyeSgiZnMvIiBOTlBG
U19QUk9DX0RJUiwgTlVMTCk7DQogCXJldHVybiAtRU5PTUVNOw0KICAgICB9
DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigyLDYsMzApDQogICAgIGVudHJ5LT5vd25lciA9IFRISVNfTU9EVUxF
Ow0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDEwLDApDQogICAgIGVudHJ5LT5wcm9jX2ZvcHMgPSAmbm5w
ZnNfcHJvY2ZzX2ZvcHM7DQorI2VuZGlmDQogDQogI2lmZGVmIFNZU0NBTExD
T01QQVQNCiAgICAgaWYgKHJlZ2lzdGVyX2lvY3RsMzJfY29udmVyc2lvbihB
UkxBX1ZJT0NfU1lTQ0FMTDMyLCBubnBmc19wcm9jZnNfaW9jdGwzMikpIHsN
CkBAIC04MTUsNyArOTE2LDcgQEAgc3RhdGljIHZvaWQgbm5wZnNfZXhpdF9w
cm9jZnModm9pZCkNCiAgICAgfQ0KICNlbmRpZiAvKiBTWVNDQUxMQ09NUEFU
ICovDQogICAgIHJlbW92ZV9wcm9jX2VudHJ5KE5OUEZTX1BST0NfTk9ERSwg
bm5wZnNfcHJvY2ZzX2Rpcik7DQotICAgIHJlbW92ZV9wcm9jX2VudHJ5KE5O
UEZTX1BST0NfRElSLCBwcm9jX3Jvb3RfZnMpOw0KKyAgICByZW1vdmVfcHJv
Y19lbnRyeSgiZnMvIiBOTlBGU19QUk9DX0RJUiwgTlVMTCk7DQogfQ0KIA0K
ICNpZmRlZiBHUk9VUFBBR1MNCkBAIC04MzksMTQgKzk0MCw2IEBAIGluc3Rh
bGxfc2V0Z3JvdXBzKHZvaWQpDQogdm9pZA0KIGluc3RhbGxfYWZzX3N5c2Nh
bGwodm9pZCkNCiB7DQotI2lmZGVmIENPTkZJR19TRUNVUklUWQ0KLSAgICBp
ZiAocmVnaXN0ZXJfc2VjdXJpdHkoJm5ucGZzX3NlY19vcHMpKQ0KLQlOTlBG
U0RFQihYREVCU1lTLA0KLQkJICgiaW5zdGFsbF9hZnNfc3lzY2FsbDogbm5w
ZnNfaW5pdF9zZWMgZmFpbGVkXG4iKSk7DQotICAgIGVsc2UNCi0Jbm5wZnNf
c2VjX3JlZ2lzdGVyZWQgPSAxOw0KLSNlbmRpZg0KLQ0KICAgICBubnBmc19p
bml0X3Byb2NmcygpOw0KIA0KICNpZmRlZiBTWVNDQUxMSEFDSw0KQEAgLTg4
NywxMiArOTgwLDYgQEAgcmVzdG9yZV9hZnNfc3lzY2FsbCAodm9pZCkNCiAj
ZW5kaWYNCiAjZW5kaWYgLyogU1lTQ0FMTEhBQ0sgKi8NCiANCi0jaWZkZWYg
Q09ORklHX1NFQ1VSSVRZDQotICAgIGlmIChubnBmc19zZWNfcmVnaXN0ZXJl
ZCkNCi0JaWYgKHVucmVnaXN0ZXJfc2VjdXJpdHkoJm5ucGZzX3NlY19vcHMp
KQ0KLQkgICAgcHJpbnRrKEtFUk5fRU1FUkcgIm5ucGZzX2V4aXRfc2VjOiBj
b3VsZG4ndCB1bnJlZ2lzdGVyXG4iKTsNCi0jZW5kaWYgLyogIUNPTkZJR19T
RUNVUklUWSAqLw0KLQ0KICNpZmRlZiBHUk9VUFBBR1MNCiAjaWZkZWYgU1lT
Q0FMTEhBQ0sNCiAgICAgaWYgKG9sZF9zZXRncm91cHMpIHsNCmRpZmYgLXVw
ck4gLVhub2RpZmYudHh0IGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19z
eXNjYWxscy1sb3NzYWdlLmMgYXJsYS1mb3ItbGludXgtMy4xOC9ubnBmcy9s
aW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMNCi0tLSBhcmxhLTAuOTAv
bm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jCTIwMDYtMTIt
MTEgMTc6MzE6NDUuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS1mb3ItbGlu
dXgtMy4xOC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMJ
MjAxNi0wMS0xMyAyMTo1MTo0OS42ODI0NTcyMTMgKzAxMDANCkBAIC00Nywx
MSArNDcsMjAgQEANCiAjaW5jbHVkZSA8bGludXgvdW5pc3RkLmg+DQogDQog
I2lmZGVmIFJDU0lEDQotUkNTSUQoIiRJZDogbm5wZnNfc3lzY2FsbHMtbG9z
c2FnZS5jLHYgMS4xNyAyMDA2LzEyLzExIDE2OjMxOjQ1IHRvbCBFeHAgJCIp
Ow0KK1JDU0lEKCIkSWQ6IG5ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyx2IDEu
MTkgMjAxMC8wOC8wOCAyMDo0MzowNSB0b2wgRXhwICQiKTsNCisjZW5kaWYN
CisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9O
KDMsNywwKQ0KKy8qIHRoZSBtZXRob2QgdG8gcmVhZCAnbG93ZXJfYm91bmQn
IGRvZXMgbm90IHdvcmsgb24ga2VybmVsIDMuNyBhbmQgbGF0ZXIgKi8NCisj
dW5kZWYgU1lTQ0FMTEhBQ0sNCiAjZW5kaWYNCiANCiAjaW5jbHVkZSA8bGlu
dXgva2FsbHN5bXMuaD4NCisjaWZkZWYgU1lTQ0FMTEhBQ0sNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw3LDApDQogc3Rh
dGljIHZvaWQgKmxvd2VyX2JvdW5kID0gJmtlcm5lbF90aHJlYWQ7DQorI2Vu
ZGlmDQorI2VuZGlmDQogDQogdm9pZCAqIF9fYXR0cmlidXRlX18oKHdlYWsp
KSBzeXNfY2FsbF90YWJsZSh2b2lkKTsNCiBubnBmc19zeXNfY2FsbF9mdW5j
dGlvbiAqbm5wZnNfc3lzX2NhbGxfdGFibGUgPQ0KQEAgLTYzLDYgKzcyLDEx
IEBAIGNvbnN0IGNoYXIgKiBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSkNCiAJCSAg
ICB1bnNpZ25lZCBsb25nICpvZmZzZXQsDQogCQkgICAgY2hhciAqKm1vZG5h
bWUsIGNoYXIgKm5hbWVidWYpOw0KIA0KKyNpZmRlZiBfX3g4Nl82NF9fDQor
ZXh0ZXJuIHJ3bG9ja190IHRhc2tsaXN0X2xvY2sgX19hdHRyaWJ1dGVfXygo
d2VhaykpOw0KKyNlbmRpZg0KKw0KKyNpZmRlZiBTWVNDQUxMSEFDSw0KIHN0
YXRpYyB2b2lkICoqDQogZ2V0X3N0YXJ0X2FkZHIodm9pZCkgew0KICNpZmRl
ZiBfX3g4Nl82NF9fDQpAQCAtNzEsNiArODUsNyBAQCBnZXRfc3RhcnRfYWRk
cih2b2lkKSB7DQogICAgIHJldHVybiAodm9pZCAqKikmbXV0ZXhfbG9jazsN
CiAjZW5kaWYNCiB9DQorI2VuZGlmDQogDQogc3RhdGljIGlubGluZSBpbnQg
DQoga2FsbHN5bV9pc19lcXVhbCh1bnNpZ25lZCBsb25nIGFkZHIsIGNvbnN0
IGNoYXIgKm5hbWUpDQpAQCAtMTM5LDYgKzE1NCw4IEBAIHZlcmlmeSh2b2lk
ICoqcCkgew0KICAgICByZXR1cm4gMTsNCiB9DQogDQorI2lmZGVmIFNZU0NB
TExIQUNLDQorDQogc3RhdGljIGlubGluZSBpbnQgbG9va3NfZ29vZCh2b2lk
ICoqcCkNCiB7DQogICAgIGlmICgqcCA8PSAodm9pZCopbG93ZXJfYm91bmQg
fHwgKnAgPj0gKHZvaWQqKXApDQpAQCAtMTg4LDMgKzIwNSw1IEBAIG5ucGZz
X2ZpeHVwX3N5c2NhbGxfbG9zc2FnZSh2b2lkKQ0KIA0KICAgICByZXR1cm4g
MDsNCiB9DQorDQorI2VuZGlmDQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBh
cmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfdmZzb3BzLmMgYXJsYS1mb3It
bGludXgtMy4xOC9ubnBmcy9saW51eC9ubnBmc192ZnNvcHMuYw0KLS0tIGFy
bGEtMC45MC9ubnBmcy9saW51eC9ubnBmc192ZnNvcHMuYwkyMDA2LTEyLTEx
IDE3OjQzOjM1LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtZm9yLWxpbnV4
LTMuMTgvbm5wZnMvbGludXgvbm5wZnNfdmZzb3BzLmMJMjAxNi0wMS0xMyAy
Mjo1NDo1NS4yMjc2ODU0MzIgKzAxMDANCkBAIC00NCwzMCArNDQsMjYgQEAN
CiAjaW5jbHVkZSA8bGludXgvbW0uaD4NCiANCiAjaWZkZWYgUkNTSUQNCi1S
Q1NJRCgiJElkOiBubnBmc192ZnNvcHMuYyx2IDEuMTA5IDIwMDYvMTIvMTEg
MTY6NDM6MzUgdG9sIEV4cCAkIik7DQorUkNTSUQoIiRJZDogbm5wZnNfdmZz
b3BzLmMsdiAxLjExMSAyMDEwLzA4LzA4IDIwOjQzOjA2IHRvbCBFeHAgJCIp
Ow0KICNlbmRpZg0KIA0KIHN0cnVjdCBubnBmcyBubnBmc1tOTk5QRlNdOw0K
IA0KLXN0YXRpYyB2b2lkIG5ucGZzX3JlYWRfaW5vZGUoc3RydWN0IGlub2Rl
ICppbm9kZSk7DQogc3RhdGljIHZvaWQgbm5wZnNfcHV0X3N1cGVyKHN0cnVj
dCBzdXBlcl9ibG9jayAqc2IpOw0KLXN0YXRpYyB2b2lkIG5ucGZzX3B1dF9p
bm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKTsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogc3RhdGljIHZvaWQg
bm5wZnNfd3JpdGVfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICogc2IpOw0K
KyNlbmRpZg0KIA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVM
X1ZFUlNJT04oMiw2LDE4KQ0KIHN0YXRpYyBpbnQgbm5wZnNfc3RhdGZzKHN0
cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGtzdGF0ZnMgKmJ1Zik7DQot
I2Vsc2UNCi1zdGF0aWMgaW50IG5ucGZzX3N0YXRmcyhzdHJ1Y3Qgc3VwZXJf
YmxvY2sgKnNiLCBzdHJ1Y3Qga3N0YXRmcyAqYnVmKTsNCi0jZW5kaWYNCiAN
CiBzdGF0aWMgc3RydWN0IHN1cGVyX29wZXJhdGlvbnMgbm5wZnNfc29wcyA9
IHsgDQotICAgIHJlYWRfaW5vZGUJCTogbm5wZnNfcmVhZF9pbm9kZSwNCi0g
ICAgcHV0X2lub2RlCQk6IG5ucGZzX3B1dF9pbm9kZSwNCiAgICAgYWxsb2Nf
aW5vZGUJCTogbm5wZnNfbm9kZV9hbGxvYywNCiAgICAgZGVzdHJveV9pbm9k
ZQk6IG5ucGZzX25vZGVfZnJlZSwNCiAgICAgZHJvcF9pbm9kZQkJOiBnZW5l
cmljX2RlbGV0ZV9pbm9kZSwNCiAgICAgcHV0X3N1cGVyCQk6IG5ucGZzX3B1
dF9zdXBlciwNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMyw2LDApDQogICAgIHdyaXRlX3N1cGVyCQk6IG5ucGZzX3dyaXRl
X3N1cGVyLA0KKyNlbmRpZg0KICAgICBzdGF0ZnMJCTogbm5wZnNfc3RhdGZz
LA0KIH07DQogDQpAQCAtOTQsNyArOTAsMTEgQEAgbm5wZnNfZmV0Y2hfcm9v
dChzdHJ1Y3QgaW5vZGUgKmkpDQogCSAqIHJvb3QncyBwcml2aWxpZ2VzICh1
c3VhbGx5IG5vbmUsIGFuZCBub25lIGlzIG5lZWRlZCkuDQogCSAqLw0KIAkN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx
NCwwKQ0KIAltc2cuY3JlZC51aWQgPSAwOw0KKyNlbHNlDQorCW1zZy5jcmVk
LnVpZCA9IEtVSURUX0lOSVQoMCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBh
ZyA9IDA7DQogCQ0KIAllcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZz
cCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCkBAIC0xMjksOCArMTI5
LDEzIEBAIG1ha2Vfcm9vdF9pbm9kZShzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCkN
CiAgICAgWEFfU0VUX01PREUoJm5vZGUuYXR0ciwgU19JRkRJUiB8IDA3Nzcp
Ow0KICAgICBYQV9TRVRfTkxJTksoJm5vZGUuYXR0ciwgMTAwKTsNCiAgICAg
WEFfU0VUX1NJWkUoJm5vZGUuYXR0ciwgMCk7DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAgICAgWEFfU0VU
X1VJRCgmbm9kZS5hdHRyLCAwKTsNCiAgICAgWEFfU0VUX0dJRCgmbm9kZS5h
dHRyLCAwKTsNCisjZWxzZQ0KKyAgICBYQV9TRVRfVUlEKCZub2RlLmF0dHIs
IEtVSURUX0lOSVQoMCkpOw0KKyAgICBYQV9TRVRfR0lEKCZub2RlLmF0dHIs
IEtHSURUX0lOSVQoMCkpOw0KKyNlbmRpZg0KICAgICBYQV9TRVRfQVRJTUUo
Jm5vZGUuYXR0ciwgMCk7DQogICAgIFhBX1NFVF9NVElNRSgmbm9kZS5hdHRy
LCAwKTsNCiAgICAgWEFfU0VUX0NUSU1FKCZub2RlLmF0dHIsIDApOw0KQEAg
LTE1OSw3ICsxNjQsMTEgQEAgbWFrZV9yb290IChzdHJ1Y3Qgc3VwZXJfYmxv
Y2sgKnNiKQ0KICAgICBubnBmcy0+cm9vdCA9IGlub2RlOw0KIA0KICAgICAv
KiBYWFggZXJyb3IgaGFuZGxpbmcgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw0LDApDQogICAgIGRwID0gZF9hbGxv
Y19yb290KGlub2RlKTsNCisjZWxzZQ0KKyAgICBkcCA9IGRfbWFrZV9yb290
KGlub2RlKTsNCisjZW5kaWYNCiAgICAgbm5wZnNfZF9pbml0KGRwKTsNCiAg
ICAgc2ItPnNfcm9vdCA9IGRwOw0KICAgICByZXR1cm4gMDsNCkBAIC0xODUs
MTEgKzE5NCwxNSBAQCBubnBmc19yZWFkX3N1cGVyIChzdHJ1Y3Qgc3VwZXJf
YmxvY2sgKiBzDQogICAgIGlmIChkYXRhICE9IE5VTEwpIHsNCiAJc3RydWN0
IG5hbWVpZGF0YSBuZDsNCiAJDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAJZXJyb3IgPSBwYXRoX2xvb2t1
cChkYXRhLCAwLCAmbmQpOw0KKyNlbHNlDQorCWVycm9yID0ga2Vybl9wYXRo
KGRhdGEsIDAsICZuZC5wYXRoKTsNCisjZW5kaWYNCiAJaWYgKGVycm9yKQ0K
IAkgICAgZGRldiA9IEVSUl9QVFIoZXJyb3IpOw0KIAllbHNlDQotCSAgICBk
ZGV2ID0gbmQuZGVudHJ5Ow0KKwkgICAgZGRldiA9IG5kLnBhdGguZGVudHJ5
Ow0KIA0KIAlpZiAoIUlTX0VSUihkZGV2KSkgew0KIAkgICAgbWlub3JkZXZp
Y2UgPSBNSU5PUihkZGV2LT5kX2lub2RlLT5pX3JkZXYpOw0KQEAgLTIzMyw3
ICsyNDYsNyBAQCBubnBmc19maWxsX3N1cGVyIChzdHJ1Y3Qgc3VwZXJfYmxv
Y2sgKnNiDQogICAgIHJldHVybiAwOw0KIH0NCiANCi0jaWYgTElOVVhfVkVS
U0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KIGlu
dA0KIG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNf
dHlwZSwNCiAJICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1l
LA0KQEAgLTI0MiwxOSArMjU1LDIyIEBAIG5ucGZzX2dldF9zYihzdHJ1Y3Qg
ZmlsZV9zeXN0ZW1fdHlwZSAqZnMNCiAgICAgcmV0dXJuIGdldF9zYl9ub2Rl
dihmc190eXBlLCBmbGFncywgZGF0YSwgbm5wZnNfZmlsbF9zdXBlciwgbW50
KTsNCiB9DQogI2Vsc2UNCi1zdHJ1Y3Qgc3VwZXJfYmxvY2sgKg0KLW5ucGZz
X2dldF9zYiAoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsDQot
CSAgICAgIGludCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUsIHZvaWQg
KmRhdGEpIA0KK3N0cnVjdCBkZW50cnkqDQorbm5wZnNfbW91bnQoc3RydWN0
IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsDQorCSAgICAgaW50IGZsYWdz
LCBjb25zdCBjaGFyICpkZXZfbmFtZSwNCisJICAgICB2b2lkICpkYXRhKSAN
CiB7DQotICAgIHJldHVybiBnZXRfc2Jfbm9kZXYoZnNfdHlwZSwgZmxhZ3Ms
IGRhdGEsIG5ucGZzX2ZpbGxfc3VwZXIpOw0KKyAgICByZXR1cm4gbW91bnRf
bm9kZXYoZnNfdHlwZSwgZmxhZ3MsIGRhdGEsIG5ucGZzX2ZpbGxfc3VwZXIp
Ow0KIH0NCiAjZW5kaWYNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMyw2LDApDQogc3RhdGljIHZvaWQNCiBubnBmc193
cml0ZV9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiBzYikNCiB7DQogICAg
IHNiLT5zX2RpcnQgPSAwOw0KIH0NCisjZW5kaWYNCiANCiAvKg0KICAqIFhY
WCBpcyB0aGlzIGdvb2Q/IA0KQEAgLTI3Myw3MyArMjg5LDYgQEAgbm5wZnNf
cHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpDQogICAgIE5OUEZT
REVCKFhERUJWRk9QUywgKCJubnBmc19wdXRfc3VwZXIgZXhpdGluZ1xuIikp
Ow0KIH0NCiANCi1zdGF0aWMgdm9pZA0KLW5ucGZzX3JlYWRfaW5vZGUoc3Ry
dWN0IGlub2RlICppbm9kZSkNCi17DQotICAgIE5OUEZTREVCKFhERUJWRk9Q
UywoIm5ucGZzX3JlYWRfaW5vZGUgc3RhcnRpbmcgaW5vZGU6ICVwXG4iLGlu
b2RlKSk7DQotICAgIE5OUEZTREVCKFhERUJWRk9QUywoIm5ucGZzX3JlYWRf
aW5vZGUgaW5vZGUtPmlfaW5vOiAlbGRcbiIsaW5vZGUtPmlfaW5vKSk7DQot
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwx
OSkNCi0gICAgaW5vZGUtPmlfYmxrc2l6ZSA9IDEwMjQ7DQotI2VuZGlmDQot
ICAgIGlub2RlLT5pX21vZGUgPSAwOw0KLSAgICBpbm9kZS0+aV9vcCA9IE5V
TEw7DQotICAgIE5OUEZTREVCKFhERUJWRk9QUywoIm5ucGZzX3JlYWRfaW5v
ZGUgZXhpdGluZ1xuIikpOw0KLX0NCi0gDQotLyoNCi0gKiBDYWxsZWQgd2hl
biBgaW5vZGUnIGlzIGRlLXJlZmVyZW5jZWQsIGllIHdoZW4gaXB1dCBpcyBj
YWxsZWQuDQotICovDQotDQotc3RhdGljIHZvaWQNCi1ubnBmc19wdXRfaW5v
ZGUoc3RydWN0IGlub2RlICppbm9kZSkNCi17DQotICAgIHN0cnVjdCBubnBm
c19ub2RlICp4biA9IFZOT0RFX1RPX1hOT0RFKGlub2RlKTsNCi0gICAgc3Ry
dWN0IG5ucGZzICpubnBmc3AgPSBOTlBGU19GUk9NX1ZOT0RFKGlub2RlKTsN
Ci0gICAgaW50IGJhZDsNCi0NCi0gICAgTk5QRlNERUIoWERFQlZGT1BTLCgi
bm5wZnNfcHV0X2lub2RlOiBpbm9kZTogJXAgY291bnQ6ICVkIGFsaWFzZXM6
IiwNCi0JCQlpbm9kZSwgbm5wZnNfaWNvdW50KGlub2RlKSkpOw0KLSAgICBu
bnBmc19wcmludF9hbGlhc2VzKGlub2RlKTsNCi0gICAgDQotICAgIGRvd24o
Jm5ucGZzcC0+aW5hY3RpdmVfc2VtKTsNCi0NCi0gICAgaWYgKChubnBmc3At
PnN0YXR1cyAmIE5OUEZTX0RFVk9QRU4pID09IDApIHsNCi0JaWYgKCFpc19i
YWRfaW5vZGUoaW5vZGUpKSB7DQotCSAgICBpZiAoaW5vZGUgIT0gbm5wZnNw
LT5yb290KSB7DQotCQltYWtlX2JhZF9pbm9kZShpbm9kZSk7DQotCQlubnBm
c19pcmVsZShpbm9kZSk7IC8qIHNlZSBubnBmc19ub2RlX2FkZCgpICovDQot
CSAgICB9DQotCSAgICB4bi0+ZmxhZ3MgfD0gTk5QRlNfU1RBTEU7DQotCX0N
Ci0JYmFkID0gMTsgLyogb3Igcm9vdCwgcmVhbGx5ICovDQotICAgIH0gZWxz
ZSB7DQotCWJhZCA9IGlzX2JhZF9pbm9kZShpbm9kZSk7DQotICAgIH0NCi0N
Ci0gICAgaWYgKHhuLT5mbGFncyAmIE5OUEZTX1NUQUxFICYmICFubnBmc19u
b2RlX3VzZXJzKGlub2RlKSkgew0KLQl4bi0+ZmxhZ3MgfD0gTk5QRlNfTk9E
RV9JUFVUOyAvKiBYWFggbG9ja2luZyAqLw0KLSAgCW5ucGZzX2ZvcmNlX2lu
dmFsaWRfbm9kZSh4bik7DQotCXhuLT5mbGFncyAmPSB+Tk5QRlNfTk9ERV9J
UFVUOw0KLSAgICB9DQotICAgIA0KLSAgICBpZiAoYmFkKSB7DQotCWlmIChu
bnBmc19pY291bnQoaW5vZGUpID09IDEpDQotCSAgICBubnBmc19ub2RlX2Ns
ZWFyKHhuKTsNCi0gICAgfSBlbHNlIGlmIChubnBmc19pY291bnQoaW5vZGUp
ID09IDIpIHsNCi0JLyogDQotCSAqIFRoZSBsYXN0IGV4dGVybmFsIHJlZmVy
ZW5jZSBpcyBiZWluZyBkcm9wcGVkLCBvbmx5IHRoZSBvbmUNCi0JICogZnJv
bSBubnBmc19ub2RlX2FkZCgpIGlzIGxlZnQuIFRpbWUgdG8gbGV0IGRhZW1v
biByZWxlYXNlDQotCSAqIHRoaXMgbm9kZSBwcm9wZXJseS4NCi0JICovDQot
CWlmICgoeG4tPmZsYWdzICYgTk5QRlNfTElNQk8pID09IDApIHsNCi0JICAg
IG5ucGZzX25vZGVfY2xlYXIoeG4pOw0KLQkgICAgbm5wZnNfcXVldWVfaW5h
Y3RpdmUoeG4pOw0KLQl9DQotICAgIH0NCi0NCi0gICAgdXAoJm5ucGZzcC0+
aW5hY3RpdmVfc2VtKTsNCi19DQotDQogc3RhdGljIGludA0KIG5ucGZzX3N0
YXRmc19pbnQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGtzdGF0
ZnMgKmJ1ZikNCiB7DQpAQCAtMzUyLDI1ICszMDEsMjEgQEAgbm5wZnNfc3Rh
dGZzX2ludChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLA0KICAgICB0bXAuZl9i
YXZhaWwgID0gMTAyNCoxMDI0KjItNTA7DQogICAgIHRtcC5mX2ZpbGVzICAg
PSAxMDI0KjEwMjQ7DQogICAgIHRtcC5mX2ZmcmVlICAgPSAxMDI0KjEwMjQt
MTAwOw0KKyAgICB0bXAuZl9mc2lkLnZhbFswXSA9IDA7DQorICAgIHRtcC5m
X2ZzaWQudmFsWzFdID0gMDsNCiAgICAgdG1wLmZfbmFtZWxlbiA9IE5BTUVf
TUFYOw0KKyAgICB0bXAuZl9mcnNpemUgID0gMDsNCisgICAgdG1wLmZfc3Bh
cmVbMF0gPSAwOw0KKyAgICB0bXAuZl9zcGFyZVsxXSA9IDA7DQorICAgIHRt
cC5mX3NwYXJlWzJdID0gMDsNCisgICAgdG1wLmZfc3BhcmVbM10gPSAwOw0K
KyAgICB0bXAuZl9zcGFyZVs0XSA9IDA7DQogICAgICpidWYgPSB0bXA7DQog
ICAgIHJldHVybiAwOw0KIH0NCiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RF
ID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCi0NCiBzdGF0aWMgaW50DQog
bm5wZnNfc3RhdGZzKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGtz
dGF0ZnMgKmJ1ZikNCiB7DQogICAgIHJldHVybiBubnBmc19zdGF0ZnNfaW50
KGRlbnRyeS0+ZF9zYiwgYnVmKTsNCiB9DQotDQotI2Vsc2UNCi0NCi1zdGF0
aWMgaW50DQotbm5wZnNfc3RhdGZzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2Is
IHN0cnVjdCBrc3RhdGZzICpidWYpDQotew0KLSAgICByZXR1cm4gbm5wZnNf
c3RhdGZzX2ludChzYiwgYnVmKTsNCi19DQotDQotI2VuZGlmDQo=

---276651502-1195004614-1452731309=:24061
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-1195004614-1452731309=:24061--

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