Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Feb 2008 04:12:27 +0000 (GMT)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        arla-drinkers@stacken.kth.se
Cc:        afs@FreeBSD.org
Subject:   Patches to get Arla running on FreeBSD 8-CURRENT
Message-ID:  <20080216035658.W93919@fledge.watson.org>

next in thread | raw e-mail | index | archive | help
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--621616949-433016993-1203135147=:93919
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed


Dear Arla folk,

I've spent the evening getting Arla (checked out of anoncvs) up and running on 
FreeBSD 8-CURRENT, and have it at least minimally running (/afs mounted, some 
directory access, read a few files, etc), although arlad core dumped fairly 
quickly during use.  I've not yet attempted to debug that problem though.

I've attached a patch that does a few things:

First, it does a few minor Arla cleanups that appear to be necessary to build 
on FreeBSD 8: A few general Arla ifdef fixes, etc, such as testing 
defined(SunOS) before using the value, likewise on __NetBSD_Version__, 
OpenBSD, etc. Fix two build dependency issues I ran into regarding building 
arlalib before dependent tools and an include that broke (at least on 
FreeBSD).

Second, it adds new autoconf and ifdef parts to get Arla building on FreeBSD 
8, such as handling VFS changes that appeared in FreeBSD 7.x and 8.x, the 
priv(9) kernel privilege framework, some include problems I ran into with 
using /usr/src/sys before /usr/include/sys (which doesn't work for generated 
files such as vnode_if.h), and things along those lines.

Unfortunately, I'm not set up to easily build test on other platforms, and 
I've also not had a chance to try this on FreeBSD 7 -- my guess is some minor 
tweaks may be required with respect to both of those, but hopefully these are 
steps in the right direction and someone with a bit more Arla experience can 
sort out what I've done into things with keeping and things with fixing :-). 
I'll investigate the arlad crash tomorrow.

Patch also up at:

   http://www.watson.org/~robert/freebsd/20080216-arla.diff

Robert N M Watson
Computer Laboratory
University of Cambridge
--621616949-433016993-1203135147=:93919
Content-Type: TEXT/x-diff; charset=US-ASCII; name=20080216-arla.diff
Content-Transfer-Encoding: BASE64
Content-ID: <20080216041227.P93919@fledge.watson.org>
Content-Description: 
Content-Disposition: attachment; filename=20080216-arla.diff

SW5kZXg6IE1ha2VmaWxlLmFtDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpS
Q1MgZmlsZTogL3N0YWNrZW4tY3ZzL2FybGEvTWFrZWZpbGUuYW0sdg0KcmV0
cmlldmluZyByZXZpc2lvbiAxLjUNCmRpZmYgLXUgLXIxLjUgTWFrZWZpbGUu
YW0NCi0tLSBNYWtlZmlsZS5hbQkyNSBKYW4gMjAwNyAxMToyMzowNSAtMDAw
MAkxLjUNCisrKyBNYWtlZmlsZS5hbQkxNiBGZWIgMjAwOCAwMzo0OTo0OSAt
MDAwMA0KQEAgLTE5LDYgKzE5LDcgQEANCiAJCWxpYi9idWZkaXIgXA0KIAkJ
JChyeGthZCkgXA0KIAkJbm5wZnMgXA0KKwkJYXBwbC9saWIgXA0KIAkJYXJs
YWQgXA0KIAkJY29uZiBcDQogCQlhcHBsIFwNCkluZGV4OiBjb25maWd1cmUu
aW4NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvc3RhY2tl
bi1jdnMvYXJsYS9jb25maWd1cmUuaW4sdg0KcmV0cmlldmluZyByZXZpc2lv
biAxLjc1OA0KZGlmZiAtdSAtcjEuNzU4IGNvbmZpZ3VyZS5pbg0KLS0tIGNv
bmZpZ3VyZS5pbgkyNSBKYW4gMjAwNyAwOToyODo0NiAtMDAwMAkxLjc1OA0K
KysrIGNvbmZpZ3VyZS5pbgkxNiBGZWIgMjAwOCAwMzo0OTo1MiAtMDAwMA0K
QEAgLTM5Niw3ICszOTYsNyBAQA0KICAgS0VSTkVMPWBzeXNjdGwgLW4ga2Vy
bi5ib290ZmlsZWANCiAgIEFDX1dFUlJPUihCU0RfV0VSUk9SKQ0KICAgTk5Q
RlNfU1VCRElSPWZyZWVic2QNCi0gIEtFUk5FTF9JTkNMVURFPS1JYChjZCAk
c3JjZGlyOyBwd2QpYC9ubnBmcy9ic2QNCisgIEtFUk5FTF9JTkNMVURFPS1J
L3Vzci9pbmNsdWRlIC1JYChjZCAkc3JjZGlyOyBwd2QpYC9ubnBmcy9ic2QN
CiAgIEtFUk5FTF9TUkNTPSdic2Qtc3Vici5jJw0KIA0KICAgS0VSTkVMPWBz
eXNjdGwgLW4ga2Vybi5ib290ZmlsZWANCkBAIC00MzMsNyArNDMzLDcgQEAN
CiAJZXNhYw0KIAlzaGlmdA0KICAgZG9uZQ0KLSAgS0VSTkVMX0NQUEZMQUdT
PSIke0tFUk5FTF9DUFBGTEFHU30gLUkuICRkZWZzJHtkZWZzOisgfSRmbGFn
cyR7ZmxhZ3M6KyB9JGluY2wiDQorICBLRVJORUxfQ1BQRkxBR1M9IiR7S0VS
TkVMX0NQUEZMQUdTfSAtSS91c3IvaW5jbHVkZSAtSS4gJGRlZnMke2RlZnM6
KyB9JGZsYWdzJHtmbGFnczorIH0kaW5jbCINCiAgIHRlc3RfS0VSTkVMX0NG
TEFHUz0iJHtLRVJORUxfQ0ZMQUdTfSINCiAgIEtFUk5FTF9MRD0nbGQnDQog
DQpAQCAtODY3LDYgKzg2Nyw3IEBADQogCQlzeXMvbXV0ZXguaAkJCVwNCiAJ
CXN5cy9wYXJhbS5oCQkJXA0KIAkJc3lzL3ByY3RsLmgJCQlcDQorCQlzeXMv
cHJpdi5oCQkJXA0KIAkJc3lzL3BvbGwuaAkJCVwNCiAJCXN5cy9wb29sLmgJ
CQlcDQogCQlzeXMvcXVldWUuaAkJCVwNCkBAIC0xMzU2LDExICsxMzU3LDEz
IEBADQogdWRldjJkZXYJCQkJCVwNCiBzbnByaW50ZgkJCQkJXA0KIHN1c2Vy
X3VjcmVkCQkJCQlcDQorcHJpdl9jaGVjawkJCQkJXA0KIG5hbWVpX2hhc2gJ
CQkJCVwNCiBub3N5cwkJCQkJCVwNCiBzeXNfbm9zeXMJCQkJCVwNCiBzeXNf
bGttbm9zeXMJCQkJCVwNCiBjYWNoZV9wdXJnZXZmcwkJCQkJXA0KK2luc21u
dHF1ZQkJCQkJXA0KIF0pDQogQUNfQ0hFQ0tfS0VSTkVMX0ZVTkMobWVtY3B5
LCBbMCwwLDBdKQ0KIA0KQEAgLTE0NDYsOCArMTQ0OSwxMiBAQA0KIEFDX0NI
RUNLX0tFUk5FTF9WT1BfVA0KIEFDX0JTRF9GVU5DX1ZGU19PQkpFQ1RfQ1JF
QVRFDQogQUNfQlNEX0ZVTkNfVk9QX0xPQ0sNCitBQ19CU0RfRlVOQ19WT1Bf
VU5MT0NLDQorQUNfQlNEX0ZVTkNfVk9QX09QRU4NCiBBQ19CU0RfRlVOQ19W
RlNfQlVTWQ0KK0FDX0JTRF9GVU5DX1ZGU19RVU9UQUNUTA0KIEFDX0JTRF9G
VU5DX1ZHRVQNCitBQ19CU0RfRlVOQ19WTk9ERV9DUkVBVEVfVk9CSkVDVA0K
IEFDX0JTRF9GVU5DX1NVU0VSDQogQUNfQlNEX0ZVTkNfVkZTX0dFVE5FV0ZT
SUQNCiBBQ19CU0RfRlVOQ19MT0NLTUdSDQpJbmRleDogYXBwbC9mcy9mc19s
b2NhbC5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL3N0
YWNrZW4tY3ZzL2FybGEvYXBwbC9mcy9mc19sb2NhbC5oLHYNCnJldHJpZXZp
bmcgcmV2aXNpb24gMS4zOA0KZGlmZiAtdSAtcjEuMzggZnNfbG9jYWwuaA0K
LS0tIGFwcGwvZnMvZnNfbG9jYWwuaAkxNiBNYXIgMjAwNiAxNDozODoyOCAt
MDAwMAkxLjM4DQorKysgYXBwbC9mcy9mc19sb2NhbC5oCTE2IEZlYiAyMDA4
IDAzOjQ5OjUzIC0wMDAwDQpAQCAtNDMsNyArNDMsNiBAQA0KICNlbmRpZg0K
ICNpbmNsdWRlIDxwYXJzZV91bml0cy5oPg0KICNpbmNsdWRlIDxubnBmcy9u
bnBmc19kZWJ1Zy5oPg0KLSNpbmNsdWRlIDxubnBmcy9ubnBmc19kZWIuaD4N
CiAjaW5jbHVkZSA8YXJsYWRlYi5oPg0KIA0KICNpbmNsdWRlIDx2ZXJzLmg+
DQpJbmRleDogY2YvYnNkLXZmcy1xdW90YWN0bC5tNA0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQ0KUkNTIGZpbGU6IGNmL2JzZC12ZnMtcXVvdGFjdGwubTQN
CmRpZmYgLU4gY2YvYnNkLXZmcy1xdW90YWN0bC5tNA0KLS0tIC9kZXYvbnVs
bAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwDQorKysgY2YvYnNkLXZmcy1x
dW90YWN0bC5tNAkxNiBGZWIgMjAwOCAwMzo0OTo1MyAtMDAwMA0KQEAgLTAs
MCArMSwzOCBAQA0KK2RubA0KK2RubCAkSWQkDQorZG5sDQorDQorZG5sDQor
ZG5sIEZpbmQgb3V0IGlmIFZGU19RVU9UQUNUTCBhY2NlcHRzIGEgdm9pZCAq
IG9yIGEgY2FkZHJfdCBhcmd1bWVudC4NCitkbmwNCisNCitBQ19ERUZVTihb
QUNfQlNEX0ZVTkNfVkZTX1FVT1RBQ1RMXSwgWw0KK0FDX0NBQ0hFX0NIRUNL
KGlmIFZGU19RVU9UQUNUTCB0YWtlcyBjYWRkcl90IGFyZ3VtZW50LCBhY19j
dl9mdW5jX3Zmc19xdW90YWN0bF9jYWRkciwNCitBQ19UUllfQ09NUElMRV9L
RVJORUwoWw0KKyNpZmRlZiBIQVZFX1NZU19DREVGU19IDQorI2luY2x1ZGUg
PHN5cy9jZGVmcy5oPg0KKyNlbmRpZg0KKyNpbmNsdWRlIDxzeXMvcGFyYW0u
aD4NCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+DQorI2luY2x1ZGUgPHN5cy90
aW1lLmg+DQorI2luY2x1ZGUgPHN5cy91aW8uaD4NCisjaW5jbHVkZSA8c3lz
L3Zub2RlLmg+DQorI2luY2x1ZGUgPHN5cy9tb3VudC5oPg0KKw0KK3Zmc19x
dW90YWN0bF90IGZvb19xdW90YWN0bDsNCisNCitpbnQNCitmb29fcXVvdGFj
dGwoc3RydWN0IG1vdW50ICptcCwgaW50IGNtZHMsIHVpZF90IHVpZCwgY2Fk
ZHJfdCBhcmcsDQorICAgIHN0cnVjdCB0aHJlYWQgKnRkKQ0KK3sNCisNCisJ
cmV0dXJuICgwKTsNCit9DQorXSxbXSwNCithY19jdl9mdW5jX3Zmc19xdW90
Y3RsX2NhZGRyPXllcywNCithY19jdl9mdW5jX3Zmc19xdW90YWN0bF9jYWRk
cj1ubykpDQoraWYgdGVzdCAiJGFjX2N2X2Z1bmNfdmZzX3F1b3RhY3RsX2Nh
ZGRyIiA9IHllczsgdGhlbg0KKwlBQ19ERUZJTkUoSEFWRV9WRlNfUVVPVEFD
VExfQ0FERFIsIDEsDQorCVtkZWZpbmUgaWYgVkZTX1FVT1RBQ1RMIHRha2Vz
IGEgY2FkZHJfdCBhcmd1bWVudF0pDQorZmkNCitdKQ0KSW5kZXg6IGNmL2Jz
ZC12bm9kZS1jcmVhdGUtdm9iamVjdC5tNA0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KUkNTIGZpbGU6IGNmL2JzZC12bm9kZS1jcmVhdGUtdm9iamVjdC5t
NA0KZGlmZiAtTiBjZi9ic2Qtdm5vZGUtY3JlYXRlLXZvYmplY3QubTQNCi0t
LSAvZGV2L251bGwJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMA0KKysrIGNm
L2JzZC12bm9kZS1jcmVhdGUtdm9iamVjdC5tNAkxNiBGZWIgMjAwOCAwMzo0
OTo1MyAtMDAwMA0KQEAgLTAsMCArMSwyOCBAQA0KK2RubA0KK2RubCAkSWQk
DQorZG5sDQorDQorZG5sDQorZG5sIEZpbmQgb3V0IGlmIHZub2RlX2NyZWF0
ZV92b2JqZWN0KCkgdGFrZXMgb25lIGFyZ3VtZW50IG9yIHR3byBvbiBCU0Q7
IGlmDQorZG5sIHR3byB0aGVuIHdlIG5lZWQgdG8gdXNlIHZub2RlX2NyZWF0
ZV92b2JqZWN0X29mZigpIGluc3RlYWQuDQorZG5sDQorDQorQUNfREVGVU4o
W0FDX0JTRF9GVU5DX1ZOT0RFX0NSRUFURV9WT0JKRUNUXSwgWw0KK0FDX0NB
Q0hFX0NIRUNLKGlmIHZub2RlX2NyZWF0ZV92b2JqZWN0IHRha2VzIHRocmVl
IGFyZ3VtZW50cywgYWNfY3ZfZnVuY192bm9kZV9jcmVhdGVfdm9iamVjdCwN
CitBQ19UUllfQ09NUElMRV9LRVJORUwoWw0KKyNpZmRlZiBIQVZFX1NZU19D
REVGU19IDQorI2luY2x1ZGUgPHN5cy9jZGVmcy5oPg0KKyNlbmRpZg0KKyNp
bmNsdWRlIDxzeXMvcGFyYW0uaD4NCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+
DQorI2luY2x1ZGUgPHN5cy90aW1lLmg+DQorI2luY2x1ZGUgPHN5cy91aW8u
aD4NCisjaW5jbHVkZSA8c3lzL3Zub2RlLmg+DQorXSxbdm5vZGVfY3JlYXRl
X3ZvYmplY3QoMCwgMCwgMCldLA0KK2FjX2N2X2Z1bmNfdm5vZGVfY3JlYXRl
X3ZvYmplY3RfdGhyZWVfYXJncz15ZXMsDQorYWNfY3ZfZnVuY192bm9kZV9j
cmVhdGVfdm9iamVjdF90aHJlZV9hcmdzPW5vKSkNCitpZiB0ZXN0ICIkYWNf
Y3ZfZnVuY192bm9kZV9jcmVhdGVfdm9iamVjdF90aHJlZV9hcmdzIiA9IHll
czsgdGhlbg0KKwlBQ19ERUZJTkUoSEFWRV9USFJFRV9BUkdVTUVOVF9WTk9E
RV9DUkVBVEVfVk9CSiwgMSwNCisJW2RlZmluZSBpZiB2bm9kZV9jcmVhdGVf
dm9iamVjdCB0YWtlcyB0aHJlZSBhcmd1bWVudHNdKQ0KK2ZpDQorXSkNCklu
ZGV4OiBjZi9ic2Qtdm9wLW9wZW4ubTQNCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NClJDUyBmaWxlOiBjZi9ic2Qtdm9wLW9wZW4ubTQNCmRpZmYgLU4gY2Yv
YnNkLXZvcC1vcGVuLm00DQotLS0gL2Rldi9udWxsCTEgSmFuIDE5NzAgMDA6
MDA6MDAgLTAwMDANCisrKyBjZi9ic2Qtdm9wLW9wZW4ubTQJMTYgRmViIDIw
MDggMDM6NDk6NTMgLTAwMDANCkBAIC0wLDAgKzEsMjggQEANCitkbmwNCitk
bmwgJElkJA0KK2RubA0KKw0KK2RubA0KK2RubCBGaW5kIG91dCBpZiBWT1Bf
T1BFTiB0YWtlcyBhIHN0cnVjdCBmaWxlIG9yIGFuIGludGVnZXIgZmluYWwg
YXJndW1lbnQgb24NCitkbmwgRnJlZUJTRC4NCitkbmwNCisNCitBQ19ERUZV
TihbQUNfQlNEX0ZVTkNfVk9QX09QRU5dLCBbDQorQUNfQ0FDSEVfQ0hFQ0so
aWYgVk9QX09QRU4gdGFrZXMgYSBzdHJ1Y3QgZmlsZSBmaW5hbCBhcmd1bWVu
dCwgYWNfY3ZfZnVuY192b3Bfb3Blbl9maWxlX2FyZywNCitBQ19UUllfQ09N
UElMRV9LRVJORUwoWw0KKyNpZmRlZiBIQVZFX1NZU19DREVGU19IDQorI2lu
Y2x1ZGUgPHN5cy9jZGVmcy5oPg0KKyNlbmRpZg0KKyNpbmNsdWRlIDxzeXMv
cGFyYW0uaD4NCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+DQorI2luY2x1ZGUg
PHN5cy90aW1lLmg+DQorI2luY2x1ZGUgPHN5cy91aW8uaD4NCisjaW5jbHVk
ZSA8c3lzL3Zub2RlLmg+DQorXSxbVk9QX09QRU4oTlVMTCwgMCwgTlVMTCwg
TlVMTCwgKHN0cnVjdCBmaWxlICopTlVMTCldLA0KK2FjX2N2X2Z1bmNfdm9w
X29wZW5fZmlsZV9hcmc9eWVzLA0KK2FjX2N2X2Z1bmNfdm9wX29wZW5fZmls
ZV9hcmc9bm8pKQ0KK2lmIHRlc3QgIiRhY19jdl9mdW5jX3ZvcF9vcGVuX2Zp
bGVfYXJnIiA9IHllczsgdGhlbg0KKwlBQ19ERUZJTkUoSEFWRV9GSU5BTF9B
UkdfRklMRV9WT1BfT1BFTiwgMSwNCisJW2RlZmluZSBpZiBWT1BfT1BFTiB0
YWtlcyBhIGZpbGUgZmluYWwgYXJndW1lbnRdKQ0KK2ZpDQorXSkNCkluZGV4
OiBjZi9ic2Qtdm9wLXVubG9jay5tNA0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KUkNTIGZpbGU6IGNmL2JzZC12b3AtdW5sb2NrLm00DQpkaWZmIC1OIGNm
L2JzZC12b3AtdW5sb2NrLm00DQotLS0gL2Rldi9udWxsCTEgSmFuIDE5NzAg
MDA6MDA6MDAgLTAwMDANCisrKyBjZi9ic2Qtdm9wLXVubG9jay5tNAkxNiBG
ZWIgMjAwOCAwMzo0OTo1MyAtMDAwMA0KQEAgLTAsMCArMSw0NSBAQA0KK2Ru
bA0KK2RubCAkSWQkDQorZG5sDQorDQorZG5sDQorZG5sIEZpbmQgb3V0IGlm
IFZPUF9VTkxPQ0sgdGFrZXMgdHdvIG9yIHRocmVlIGFyZ3VtZW50cw0KK2Ru
bA0KKw0KK0FDX0RFRlVOKFtBQ19CU0RfRlVOQ19WT1BfVU5MT0NLXSwgWw0K
K0FDX0NBQ0hFX0NIRUNLKGlmIFZPUF9VTkxPQ0sgdGFrZXMgdHdvIGFyZ3Vt
ZW50cywgYWNfY3ZfZnVuY192b3BfdW5sb2NrX3R3b19hcmdzLA0KK0FDX1RS
WV9DT01QSUxFX0tFUk5FTChbDQorI2lmZGVmIEhBVkVfU1lTX0NERUZTX0gN
CisjaW5jbHVkZSA8c3lzL2NkZWZzLmg+DQorI2VuZGlmDQorI2luY2x1ZGUg
PHN5cy9wYXJhbS5oPg0KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4NCisjaW5j
bHVkZSA8c3lzL3RpbWUuaD4NCisjaW5jbHVkZSA8c3lzL3Vpby5oPg0KKyNp
bmNsdWRlIDxzeXMvdm5vZGUuaD4NCitdLFtWT1BfVU5MT0NLKDAsIDApXSwN
CithY19jdl9mdW5jX3ZvcF91bmxvY2tfdHdvX2FyZ3M9eWVzLA0KK2FjX2N2
X2Z1bmNfdm9wX3VubG9ja190d29fYXJncz1ubykpDQoraWYgdGVzdCAiJGFj
X2N2X2Z1bmNfdm9wX3VubG9ja190d29fYXJncyIgPSB5ZXM7IHRoZW4NCisJ
QUNfREVGSU5FKEhBVkVfVFdPX0FSR1VNRU5UX1ZPUF9VTkxPQ0ssIDEsDQor
CVtkZWZpbmUgaWYgVk9QX1VOTE9DSyB0YWtlcyB0d28gYXJndW1lbnRzXSkN
CitmaQ0KKw0KK0FDX0NBQ0hFX0NIRUNLKGlmIFZPUF9VTkxPQ0sgdGFrZXMg
dGhyZWUgYXJndW1lbnRzLCBhY19jdl9mdW5jX3ZvcF91bmxvY2tfdGhyZWVf
YXJncywNCitBQ19UUllfQ09NUElMRV9LRVJORUwoWw0KKyNpZmRlZiBIQVZF
X1NZU19DREVGU19IDQorI2luY2x1ZGUgPHN5cy9jZGVmcy5oPg0KKyNlbmRp
Zg0KKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4NCisjaW5jbHVkZSA8c3lzL3R5
cGVzLmg+DQorI2luY2x1ZGUgPHN5cy90aW1lLmg+DQorI2luY2x1ZGUgPHN5
cy91aW8uaD4NCisjaW5jbHVkZSA8c3lzL3Zub2RlLmg+DQorXSxbVk9QX1VO
TE9DSygwLCAwLCAwKV0sDQorYWNfY3ZfZnVuY192b3BfdW5sb2NrX3RocmVl
X2FyZ3M9eWVzLA0KK2FjX2N2X2Z1bmNfdm9wX3VubG9ja190aHJlZV9hcmdz
PW5vKSkNCitpZiB0ZXN0ICIkYWNfY3ZfZnVuY192b3BfdW5sb2NrX3RocmVl
X2FyZ3MiID0geWVzOyB0aGVuDQorCUFDX0RFRklORShIQVZFX1RIUkVFX0FS
R1VNRU5UX1ZPUF9VTkxPQ0ssIDEsDQorCVtkZWZpbmUgaWYgVk9QX1VOTE9D
SyB0YWtlcyB0aHJlZSBhcmd1bWVudHNdKQ0KK2ZpDQorXSkNCkluZGV4OiBj
Zi90cnktY29tcGlsZS1rZXJuZWwubTQNCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NClJDUyBmaWxlOiAvc3RhY2tlbi1jdnMvYXJsYS9jZi90cnktY29tcGls
ZS1rZXJuZWwubTQsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjQNCmRpZmYg
LXUgLXIxLjQgdHJ5LWNvbXBpbGUta2VybmVsLm00DQotLS0gY2YvdHJ5LWNv
bXBpbGUta2VybmVsLm00CTEyIEZlYiAyMDA0IDE2OjI4OjE4IC0wMDAwCTEu
NA0KKysrIGNmL3RyeS1jb21waWxlLWtlcm5lbC5tNAkxNiBGZWIgMjAwOCAw
Mzo0OTo1MyAtMDAwMA0KQEAgLTgsNyArOCw3IEBADQogaWYgdGVzdCAiWCR7
S0VSTkVMX0NDfSIgIT0gIlgiOyB0aGVuDQogICBDQz0iJEtFUk5FTF9DQyIN
CiBmaQ0KLUNGTEFHUz0iJENGTEFHUyAkdGVzdF9LRVJORUxfQ0ZMQUdTICRL
RVJORUxfQ1BQRkxBR1MiDQorQ0ZMQUdTPSIkQ0ZMQUdTIC1JL3Vzci9pbmNs
dWRlICR0ZXN0X0tFUk5FTF9DRkxBR1MgJEtFUk5FTF9DUFBGTEFHUyINCiBB
Q19UUllfQ09NUElMRShbJDFdLCBbJDJdLCBbJDNdLCBbJDRdKQ0KIENGTEFH
Uz0iJHNhdmVfQ0ZMQUdTIg0KIENDPSIkc2F2ZV9DQyINCkluZGV4OiBpbmNs
dWRlL2Fmc3N5c2RlZnMuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNT
IGZpbGU6IC9zdGFja2VuLWN2cy9hcmxhL2luY2x1ZGUvYWZzc3lzZGVmcy5o
LHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS45DQpkaWZmIC11IC1yMS45IGFm
c3N5c2RlZnMuaA0KLS0tIGluY2x1ZGUvYWZzc3lzZGVmcy5oCTkgQXVnIDIw
MDQgMTM6NDI6MzIgLTAwMDAJMS45DQorKysgaW5jbHVkZS9hZnNzeXNkZWZz
LmgJMTYgRmViIDIwMDggMDM6NDk6NTMgLTAwMDANCkBAIC00Miw2ICs0Miw3
IEBADQogICogZW50cnkgcG9pbnQgc3lzY2FsbHMuDQogICovDQogDQorI2lm
IGRlZmluZWQoU3VuT1MpDQogI2lmIFN1bk9TID09IDQwDQogI2RlZmluZSBB
RlNfU1lTQ0FMTAkzMQ0KICNlbmRpZg0KQEAgLTU2LDYgKzU3LDcgQEANCiAN
CiAjaWYgU3VuT1MgPj0gNTgNCiAjZGVmaW5lIEFGU19TWVNDQUxMCTY1DQor
I2VuZGlmDQogI2VuZGlmDQogDQogI2lmIGRlZmluZWQoX19ocHV4KQ0KSW5k
ZXg6IG5ucGZzL2JzZC9ubnBmc19ibG9ja3MuYw0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KUkNTIGZpbGU6IC9zdGFja2VuLWN2cy9hcmxhL25ucGZzL2Jz
ZC9ubnBmc19ibG9ja3MuYyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTAN
CmRpZmYgLXUgLXIxLjEwIG5ucGZzX2Jsb2Nrcy5jDQotLS0gbm5wZnMvYnNk
L25ucGZzX2Jsb2Nrcy5jCTI4IE1hciAyMDA3IDEyOjA1OjQ1IC0wMDAwCTEu
MTANCisrKyBubnBmcy9ic2Qvbm5wZnNfYmxvY2tzLmMJMTYgRmViIDIwMDgg
MDM6NDk6NTQgLTAwMDANCkBAIC0zMDYsOCArMzA2LDEzIEBADQogCQkgICAg
ICBMRUFTRV9XUklURSk7DQogCSAgICANCiAJICAgIHJldCA9IG5ucGZzX2Js
b2NrX2V4dGVuZF9pbnQobm9kZSwgdnAsIHApOw0KLQkgICAgDQorDQorI2lm
ZGVmIEhBVkVfVFdPX0FSR1VNRU5UX1ZPUF9VTkxPQ0sNCisJICAgIFZPUF9V
TkxPQ0sodnAsIDApOw0KKyNlbmRpZg0KKyNpZmRlZiBIQVZFX1RIUkVFX0FS
R1VNRU5UX1ZPUF9VTkxPQ0sNCiAJICAgIFZPUF9VTkxPQ0sodnAsIDAsIHAp
Ow0KKyNlbmRpZg0KIAkgICAgdm5fZmluaXNoZWRfd3JpdGUobXApOw0KIAl9
DQogI2Vsc2UNCkBAIC01MDAsNyArNTA1LDExIEBADQogI2VuZGlmDQogDQog
I2lmZGVmIF9fRnJlZUJTRF9fDQorI2lmZGVmIEhBVkVfRklOQUxfQVJHX0ZJ
TEVfVk9QX09QRU4NCisJZXJyb3IgPSBWT1BfT1BFTigqdnBwLCBmbW9kZSwg
Y3JlZCwgcCwgTlVMTCk7DQorI2Vsc2UNCiAJZXJyb3IgPSBWT1BfT1BFTigq
dnBwLCBmbW9kZSwgY3JlZCwgcCwgLTEpOw0KKyNlbmRpZg0KICNlbHNlDQog
CWVycm9yID0gVk9QX09QRU4oKnZwcCwgZm1vZGUsIGNyZWQsIHApOw0KICNl
bmRpZg0KSW5kZXg6IG5ucGZzL2JzZC9ubnBmc19jb21tb24tYnNkLmMNCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvc3RhY2tlbi1jdnMv
YXJsYS9ubnBmcy9ic2Qvbm5wZnNfY29tbW9uLWJzZC5jLHYNCnJldHJpZXZp
bmcgcmV2aXNpb24gMS4zMw0KZGlmZiAtdSAtcjEuMzMgbm5wZnNfY29tbW9u
LWJzZC5jDQotLS0gbm5wZnMvYnNkL25ucGZzX2NvbW1vbi1ic2QuYwkyNCBP
Y3QgMjAwNiAxNjozMzowMiAtMDAwMAkxLjMzDQorKysgbm5wZnMvYnNkL25u
cGZzX2NvbW1vbi1ic2QuYwkxNiBGZWIgMjAwOCAwMzo0OTo1NCAtMDAwMA0K
QEAgLTcyLDEwICs3MiwzMyBAQA0KICNlbmRpZiAvKiBOTlBGU19ERUJVRyAq
Lw0KIA0KIGludA0KLW5ucGZzX3N1c2VyKGRfdGhyZWFkX3QgKnApDQorbm5w
ZnNfcHJpdl9jaGVja19kZWJ1ZyhkX3RocmVhZF90ICpwKQ0KIHsNCiAjaWYg
ZGVmaW5lZChfX0FQUExFX18pDQogICAgIHJldHVybiBwcm9jX3N1c2VyKHAp
Ow0KKyNlbGlmIGRlZmluZWQoSEFWRV9LRVJORUxfUFJJVl9DSEVDSykNCisg
ICAgcmV0dXJuIChwcml2X2NoZWNrKHAsIFBSSVZfTk5QRlNfREVCVUcpKTsN
CisjZWxpZiBkZWZpbmVkKEhBVkVfS0VSTkVMX0tBVVRIX0NSRURfR0VUVUlE
KQ0KKyAgICB1aWRfdCB1aWQgPSBrYXV0aF9jcmVkX2dldHVpZChwLT5sX3By
b2MtPnBfY3JlZCk7DQorICAgIGlmICh1aWQgPT0gMCkNCisJcmV0dXJuIDA7
DQorICAgIHJldHVybiBFUEVSTTsNCisjZWxpZiBkZWZpbmVkKEhBVkVfS0VS
TkVMX1NVU0VSX1VDUkVEKQ0KKyAgICByZXR1cm4gc3VzZXJfdWNyZWQgKG5u
cGZzX3Byb2NfdG9fY3JlZChwKSk7DQorI2VsaWYgZGVmaW5lZChIQVZFX1RX
T19BUkdVTUVOVF9TVVNFUikNCisgICAgcmV0dXJuIHN1c2VyIChubnBmc19w
cm9jX3RvX2NyZWQocCksIE5VTEwpOw0KKyNlbHNlDQorICAgIHJldHVybiBz
dXNlciAocCk7DQorI2VuZGlmDQorfQ0KKw0KK2ludA0KK25ucGZzX3ByaXZf
Y2hlY2tfZmhsb29rdXAoZF90aHJlYWRfdCAqcCkNCit7DQorI2lmIGRlZmlu
ZWQoX19BUFBMRV9fKQ0KKyAgICByZXR1cm4gcHJvY19zdXNlcihwKTsNCisj
ZWxpZiBkZWZpbmVkKEhBVkVfS0VSTkVMX1BSSVZfQ0hFQ0spDQorICAgIHJl
dHVybiAocHJpdl9jaGVjayhwLCBQUklWX1ZGU19HRVRGSCkpOw0KICNlbGlm
IGRlZmluZWQoSEFWRV9LRVJORUxfS0FVVEhfQ1JFRF9HRVRVSUQpDQogICAg
IHVpZF90IHVpZCA9IGthdXRoX2NyZWRfZ2V0dWlkKHAtPmxfcHJvYy0+cF9j
cmVkKTsNCiAgICAgaWYgKHVpZCA9PSAwKQ0KSW5kZXg6IG5ucGZzL2JzZC9u
bnBmc19tZXNzYWdlLmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBm
aWxlOiAvc3RhY2tlbi1jdnMvYXJsYS9ubnBmcy9ic2Qvbm5wZnNfbWVzc2Fn
ZS5jLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMDkNCmRpZmYgLXUgLXIx
LjEwOSBubnBmc19tZXNzYWdlLmMNCi0tLSBubnBmcy9ic2Qvbm5wZnNfbWVz
c2FnZS5jCTI4IE1hciAyMDA3IDEyOjA1OjQ2IC0wMDAwCTEuMTA5DQorKysg
bm5wZnMvYnNkL25ucGZzX21lc3NhZ2UuYwkxNiBGZWIgMjAwOCAwMzo0OTo1
NSAtMDAwMA0KQEAgLTQ4Myw3ICs0ODMsNyBAQA0KIAkNCiAJbm5wZnNfYmxv
Y2tfZnJlZV9hbGwoVk5PREVfVE9fWE5PREUodnApKTsNCiAJDQotI2lmIEhB
VkVfS0VSTkVMX1ZHT05FTA0KKyNpZmRlZiBIQVZFX0tFUk5FTF9WR09ORUwN
CiAJdmdvbmVsICh2cCwgcCk7DQogI2Vsc2UgLyogIWhhdmUgdmdvbmVsICov
DQogCW5ucGZzX2ludGVybG9ja191bmxvY2soJnZwLT52X2ludGVybG9jayk7
DQpJbmRleDogbm5wZnMvYnNkL25ucGZzX25vZGUtYnNkLmMNCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvc3RhY2tlbi1jdnMvYXJsYS9u
bnBmcy9ic2Qvbm5wZnNfbm9kZS1ic2QuYyx2DQpyZXRyaWV2aW5nIHJldmlz
aW9uIDEuOTkNCmRpZmYgLXUgLXIxLjk5IG5ucGZzX25vZGUtYnNkLmMNCi0t
LSBubnBmcy9ic2Qvbm5wZnNfbm9kZS1ic2QuYwkxNCBNYXIgMjAwNyAxNjo0
NDozMCAtMDAwMAkxLjk5DQorKysgbm5wZnMvYnNkL25ucGZzX25vZGUtYnNk
LmMJMTYgRmViIDIwMDggMDM6NDk6NTUgLTAwMDANCkBAIC0xNjksNiArMTY5
LDE1IEBADQogICAgIGdlbmZzX25vZGVfaW5pdCgqdnBwLCAmbm5wZnNfZ2Vu
ZnNvcHMpOw0KICNlbmRpZg0KIA0KKyNpZmRlZiBIQVZFX0tFUk5FTF9JTlNN
TlRRVUUNCisgICAgZXJyb3IgPSBpbnNtbnRxdWUoKnZwcCwgTk5QRlNfVE9f
VkZTKG5ucGZzcCkpOw0KKyAgICBpZiAoZXJyb3IpIHsNCisgICAgICBubnBm
c19mcmVlKHJlc3VsdCwgc2l6ZW9mKCpyZXN1bHQpLCBNX05OUEZTX05PREUp
Ow0KKyAgICAgICp2cHAgPSBOVUxMOw0KKyAgICAgIHJldHVybiBlcnJvcjsN
CisgICAgfQ0KKyNlbmRpZg0KKw0KICByZXRyeToNCiAgICAgZXJyb3IgPSBu
bnBmc19ub2RlX2ZpbmQobm5wZnNwLCBoYW5kbGUsICZjaGVjayk7DQogICAg
IGlmIChlcnJvciA9PSBFTk9FTlQpIHsNCkBAIC03NTYsNyArNzY1LDcgQEAN
CiAgKiBUaGUgcmVhbCBjaGFuZ2UgaXMgc3lzL2tlcm4vdmZzX2NhY2hlOjEu
MjANCiAgKi8NCiANCi0jaWYgX19OZXRCU0RfVmVyc2lvbl9fID49IDEwNDEy
MDAwMCB8fCBPcGVuQlNEID4gMjAwMjExDQorI2lmIChkZWZpbmVkKF9fTmV0
QlNEX1ZlcnNpb25fXykgJiYgX19OZXRCU0RfVmVyc2lvbl9fID49IDEwNDEy
MDAwMCkgfHwgKGRlZmluZWQoT3BlbkJTRCkgJiYgT3BlbkJTRCA+IDIwMDIx
MSkNCiAJaWYgKGNhY2hlX2xvb2t1cChkdnAsICZkdW1teSwgY25wKSAhPSAt
MSkgew0KIAkgICAgbm5wZnNfdmZzX3VubG9jayhkdW1teSwgbm5wZnNfY25w
X3RvX3Byb2MoY25wKSk7DQogCSAgICBwcmludGYgKCJOTlBGUyBQQU5JQyBX
QVJOSU5HISBubnBmc19kbmxjX2VudGVyOiAlcyBhbHJlYWR5IGluIGNhY2hl
XG4iLA0KQEAgLTgwMSw3ICs4MTAsNyBAQA0KICAgICBjbi0+Y25fbmFtZXB0
ciA9IChjaGFyICopbmFtZTsNCiAgICAgY24tPmNuX25hbWVsZW4gPSBzdHJs
ZW4obmFtZSk7DQogICAgIGNuLT5jbl9mbGFncyAgID0gMDsNCi0jaWYgX19B
UFBMRV9fDQorI2lmZGVmIF9fQVBQTEVfXw0KICAgICBjbi0+Y25faGFzaCA9
IDA7IC8qIExldCB0aGUgdmZzIGNvbXB1dGUgdGhlIGhhc2ggKi8NCiAjZWxp
ZiBkZWZpbmVkKEhBVkVfS0VSTkVMX05BTUVJX0hBU0gpDQogICAgIHsNCklu
ZGV4OiBubnBmcy9ic2Qvbm5wZnNfc3lzY2FsbHMtY29tbW9uLmMNCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvc3RhY2tlbi1jdnMvYXJs
YS9ubnBmcy9ic2Qvbm5wZnNfc3lzY2FsbHMtY29tbW9uLmMsdg0KcmV0cmll
dmluZyByZXZpc2lvbiAxLjg1DQpkaWZmIC11IC1yMS44NSBubnBmc19zeXNj
YWxscy1jb21tb24uYw0KLS0tIG5ucGZzL2JzZC9ubnBmc19zeXNjYWxscy1j
b21tb24uYwkyOCBNYXIgMjAwNyAxMjowNTo0NiAtMDAwMAkxLjg1DQorKysg
bm5wZnMvYnNkL25ucGZzX3N5c2NhbGxzLWNvbW1vbi5jCTE2IEZlYiAyMDA4
IDAzOjQ5OjU1IC0wMDAwDQpAQCAtNDg0LDcgKzQ4NCw3IEBADQogCWlmICh2
aWNlX2lvY3RsLT5pbl9zaXplIDwgc2l6ZW9mKGludDMyX3QpKQ0KIAkgICAg
cmV0dXJuIEVJTlZBTDsNCiAJDQotCWVycm9yID0gbm5wZnNfc3VzZXIocCk7
DQorCWVycm9yID0gbm5wZnNfcHJpdl9jaGVja19kZWJ1ZyhwKTsNCiAJaWYg
KGVycm9yKQ0KIAkgICAgcmV0dXJuIGVycm9yOw0KIA0KSW5kZXg6IG5ucGZz
L2JzZC9ubnBmc192ZnNvcHMtYnNkLmMNCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NClJDUyBmaWxlOiAvc3RhY2tlbi1jdnMvYXJsYS9ubnBmcy9ic2Qvbm5w
ZnNfdmZzb3BzLWJzZC5jLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMDMN
CmRpZmYgLXUgLXIxLjEwMyBubnBmc192ZnNvcHMtYnNkLmMNCi0tLSBubnBm
cy9ic2Qvbm5wZnNfdmZzb3BzLWJzZC5jCTI3IE1hciAyMDA3IDEzOjI2OjU4
IC0wMDAwCTEuMTAzDQorKysgbm5wZnMvYnNkL25ucGZzX3Zmc29wcy1ic2Qu
YwkxNiBGZWIgMjAwOCAwMzo0OTo1NiAtMDAwMA0KQEAgLTg0LDcgKzg0LDEx
IEBADQogfQ0KIA0KIGludA0KKyNpZmRlZiBIQVZFX1ZGU19RVU9UQUNUTF9D
QUREUg0KIG5ucGZzX3F1b3RhY3RsKHN0cnVjdCBtb3VudCAqbXAsIGludCBj
bWQsIHVpZF90IHVpZCwgY2FkZHJfdCBhcmcsIGRfdGhyZWFkX3QgKnApDQor
I2Vsc2UNCitubnBmc19xdW90YWN0bChzdHJ1Y3QgbW91bnQgKm1wLCBpbnQg
Y21kLCB1aWRfdCB1aWQsIHZvaWQgKmFyZywgZF90aHJlYWRfdCAqcCkNCisj
ZW5kaWYNCiB7DQogICAgIE5OUEZTREVCKFhERUJWRk9QUywgKCJubnBmc19x
dW90YWN0bDogbXAgPSAlbHgsIGNtZCA9ICVkLCB1aWQgPSAldSwgIg0KIAkJ
ICAgICAgICJhcmcgPSAlbHgsIHByb2MgPSAlbHhcbiIsIA0KQEAgLTIyNSw2
ICsyMjksNyBAQA0KICAgICByZXR1cm4gMDsNCiB9DQogDQorI2lmbmRlZiBI
QVZFX1ZPUF9WUFRPRkgNCiBpbnQNCiBubnBmc192cHRvZmgoc3RydWN0IHZu
b2RlICogdnAsDQogCSAgICAgc3RydWN0IGZpZCAqIGZocA0KQEAgLTIzNiw2
ICsyNDEsNyBAQA0KICAgICBOTlBGU0RFQihYREVCVkZPUFMsICgibm5wZnNf
dnB0b2ZoXG4iKSk7DQogICAgIHJldHVybiBFT1BOT1RTVVBQOw0KIH0NCisj
ZW5kaWYNCiANCiAjZW5kaWYgLyogIV9fQVBQTEVfXyAqLw0KIA0KQEAgLTMy
MSw3ICszMjcsNyBAQA0KIA0KICAgICBOTlBGU0RFQihYREVCVkZPUFMsICgi
bm5wZnNfZmhsb29rdXAgKG5ucGZzKVxuIikpOw0KIA0KLSAgICBlcnJvciA9
IG5ucGZzX3N1c2VyIChwcm9jKTsNCisgICAgZXJyb3IgPSBubnBmc19wcml2
X2NoZWNrX2ZobG9va3VwKHByb2MpOw0KICAgICBpZiAoZXJyb3IpDQogCXJl
dHVybiBFUEVSTTsNCiANCkBAIC00ODQsNyArNDkwLDExIEBADQogCWdvdG8g
b3V0Ow0KIA0KICNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiBfX0ZyZWVC
U0RfdmVyc2lvbiA+PSA1MDIwMDANCisjaWZkZWYgSEFWRV9GSU5BTF9BUkdf
RklMRV9WT1BfT1BFTg0KKyAgICBlcnJvciA9IFZPUF9PUEVOKHZwLCBmbGFn
cywgY3JlZCwgcHJvYywgZnApOw0KKyNlbHNlDQogICAgIGVycm9yID0gVk9Q
X09QRU4odnAsIGZsYWdzLCBjcmVkLCBwcm9jLCBpbmRleCk7DQorI2VuZGlm
DQogI2Vsc2UNCiAgICAgZXJyb3IgPSBWT1BfT1BFTih2cCwgZmxhZ3MsIGNy
ZWQsIHByb2MpOw0KICNlbmRpZg0KSW5kZXg6IG5ucGZzL2JzZC9ubnBmc192
ZnNvcHMtZnJlZWJzZC5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1Mg
ZmlsZTogL3N0YWNrZW4tY3ZzL2FybGEvbm5wZnMvYnNkL25ucGZzX3Zmc29w
cy1mcmVlYnNkLmMsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjM3DQpkaWZm
IC11IC1yMS4zNyBubnBmc192ZnNvcHMtZnJlZWJzZC5jDQotLS0gbm5wZnMv
YnNkL25ucGZzX3Zmc29wcy1mcmVlYnNkLmMJNiBNYXIgMjAwNyAxNjowMDo1
NyAtMDAwMAkxLjM3DQorKysgbm5wZnMvYnNkL25ucGZzX3Zmc29wcy1mcmVl
YnNkLmMJMTYgRmViIDIwMDggMDM6NDk6NTYgLTAwMDANCkBAIC02MCw3ICs2
MCwxMiBAQA0KICAgICAudm9wX2RlZmF1bHQgPSAmZGVmYXVsdF92bm9kZW9w
cywNCiAgICAgLnZvcF9sb29rdXAgPSBubnBmc19kZWFkX2xvb2t1cCwNCiAg
ICAgLnZvcF9yZWNsYWltID0gbm5wZnNfZGVhZF9yZWNsYWltLA0KKyNpZmRl
ZiBIQVZFX1ZPUF9MT0NLMQ0KKyAgICAudm9wX2xvY2sxID0gdm9wX3N0ZGxv
Y2ssDQorI2VuZGlmDQorI2lmZGVmIEhBVkVfVk9QX0xPQ0sNCiAgICAgLnZv
cF9sb2NrID0gdm9wX3N0ZGxvY2ssDQorI2VuZGlmDQogICAgIC52b3BfdW5s
b2NrID0gdm9wX3N0ZHVubG9jaywNCiAgICAgLnZvcF9pc2xvY2tlZCA9IHZv
cF9zdGRpc2xvY2tlZCwNCiB9Ow0KQEAgLTc2LDYgKzgxLDE1IEBADQogICAg
IGlmIChlcnJvciA9PSAwKQ0KIAlOTlBGU19NQUtFX1ZST09UKCp2cHApOw0K
IA0KKyNpZmRlZiBIQVZFX0tFUk5FTF9JTlNNTlRRVUUNCisgICAgLyogWFhY
OiBQb3NzaWJseSBzaG91bGQgbG9jayB3aXRoIGxvY2ttZ3IgaGVyZS4gKi8N
CisgICAgZXJyb3IgPSBpbnNtbnRxdWUoKnZwcCwgbXApOw0KKyAgICBpZiAo
ZXJyb3IpIHsNCisgICAgICAqdnBwID0gTlVMTDsNCisgICAgICByZXR1cm4g
ZXJyb3I7DQorICAgIH0NCisjZW5kaWYNCisNCiAgICAgbm5wZnNfdmZzX3dy
aXRlbG9jaygqdnBwLCBubnBmc19jdXJwcm9jKCkpOw0KIA0KICAgICByZXR1
cm4gZXJyb3I7DQpAQCAtMTYzLDcgKzE3Nyw5IEBADQogICAgIC52ZnNfdmdl
dCA9IG5ucGZzX3ZnZXRfZnJlZWJzZCwNCiAgICAgLnZmc19maHRvdnAgPSBu
bnBmc19maHRvdnAsDQogICAgIC52ZnNfY2hlY2tleHAgPSBubnBmc19jaGVj
a2V4cCwNCisjaWZuZGVmIEhBVkVfVk9QX1ZQVE9GSA0KICAgICAudmZzX3Zw
dG9maCA9IG5ucGZzX3ZwdG9maCwNCisjZW5kaWYNCiAgICAgLnZmc19pbml0
ID0gbm5wZnNfaW5pdA0KIH07DQogLypWRlNfU0VUKG5ucGZzX3Zmc29wcywg
YXJsYW5ucGZzZGV2LCAwKTsqLw0KSW5kZXg6IG5ucGZzL2JzZC9ubnBmc192
bm9kZW9wcy1ic2QuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZp
bGU6IC9zdGFja2VuLWN2cy9hcmxhL25ucGZzL2JzZC9ubnBmc192bm9kZW9w
cy1ic2QuYyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTYxDQpkaWZmIC11
IC1yMS4xNjEgbm5wZnNfdm5vZGVvcHMtYnNkLmMNCi0tLSBubnBmcy9ic2Qv
bm5wZnNfdm5vZGVvcHMtYnNkLmMJNiBNYXIgMjAwNyAxNjowMDo1NyAtMDAw
MAkxLjE2MQ0KKysrIG5ucGZzL2JzZC9ubnBmc192bm9kZW9wcy1ic2QuYwkx
NiBGZWIgMjAwOCAwMzo0OTo1NyAtMDAwMA0KQEAgLTg1LDcgKzg1LDExIEBA
DQogICAgIHJldCA9IG5ucGZzX29wZW5fY29tbW9uKGFwLT5hX3ZwLCBhcC0+
YV9tb2RlLCBjdHgpOw0KICNpZmRlZiBfX0ZyZWVCU0RfXw0KICAgICBpZiAo
IXJldCkNCisjaWZkZWYgSEFWRV9USFJFRV9BUkdVTUVOVF9WTk9ERV9DUkVB
VEVfVk9CSg0KKwl2bm9kZV9jcmVhdGVfdm9iamVjdChhcC0+YV92cCwNCisj
ZWxzZQ0KIAl2bm9kZV9jcmVhdGVfdm9iamVjdF9vZmYoYXAtPmFfdnAsDQor
I2VuZGlmDQogCQkJCSBubnBmc192YXR0cl9nZXRfc2l6ZSgmVk5PREVfVE9f
WE5PREUoYXAtPmFfdnApLT5hdHRyKSwNCiAJCQkJIGFwLT5hX3RkKTsNCiAj
ZW5kaWYNCkBAIC03OTMsMTYgKzc5NywyNSBAQA0KICNpZmRlZiBfX0ZyZWVC
U0RfXw0KIA0KIGludA0KKyNpZmRlZiBIQVZFX1ZPUF9MT0NLMQ0KK25ucGZz
X2xvY2sxKHN0cnVjdCB2b3BfbG9jazFfYXJncyAqIGFwKQ0KKyNlbHNlDQog
bm5wZnNfbG9jayhzdHJ1Y3Qgdm9wX2xvY2tfYXJncyAqIGFwKQ0KKyNlbmRp
Zg0KIHsgICAgICAgICAgICAgICANCiAgICAgc3RydWN0IHZub2RlICp2cCA9
IGFwLT5hX3ZwOw0KICAgICBpbnQgcmV0Ow0KIA0KICAgICBubnBmc19hc3Nl
cnQodnApOw0KKyNpZmRlZiBIQVZFX1ZPUF9MT0NLMQ0KKyAgICBOTlBGU0RF
QihYREVCVk5PUFMsICgibm5wZnNfbG9jazE6ICVseCwgZmxhZ3MgMHgleFxu
IiwNCisJCQkgKHVuc2lnbmVkIGxvbmcpdnAsIGFwLT5hX2ZsYWdzKSk7DQor
I2Vsc2UNCiAgICAgbm5wZnNfYXNzZXJ0KGFwLT5hX3RkKTsNCiAgICAgTk5Q
RlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2xvY2s6ICVseCwgdGQgJXAsIGZs
YWdzIDB4JXgsIG5sb2NrcyAlZFxuIiwNCiAJCQkgKHVuc2lnbmVkIGxvbmcp
dnAsIE5OUEZTX0FQX1BST0MoYXApLCBhcC0+YV9mbGFncywNCiAJCQkgTk5Q
RlNfQVBfUFJPQyhhcCktPnRkX2xvY2tzKSk7DQorI2VuZGlmDQogDQogICAg
IG5ucGZzX2xrX2luZm8oIm5ucGZzX2xvY2sgYmVmb3JlIiwgdnApOw0KICAg
ICByZXQgPSB2b3Bfc3RkbG9jayhhcCk7DQpAQCAtODE3LDE2ICs4MzAsMjYg
QEANCiAgICAgc3RydWN0IHZub2RlICp2cCA9IGFwLT5hX3ZwOw0KICAgICBp
bnQgcmV0Ow0KIA0KKyNpZmRlZiBIQVZFX1RXT19BUkdVTUVOVF9WT1BfVU5M
T0NLDQorICAgIE5OUEZTREVCKFhERUJWTk9QUywNCisJICAgICAoIm5ucGZz
X3VubG9jazogJWx4LCBmbGFncyAweCV4XG4iLCAodW5zaWduZWQgbG9uZyl2
cCwNCisJICAgICAgYXAtPmFfZmxhZ3MpKTsNCisjZWxzZQ0KICAgICBOTlBG
U0RFQihYREVCVk5PUFMsDQogCSAgICAgKCJubnBmc191bmxvY2s6ICVseCwg
dGQgJXAsIGZsYWdzIDB4JXgsIG5sb2NrcyAlZFxuIiwNCiAJICAgICAgKHVu
c2lnbmVkIGxvbmcpdnAsIGFwLT5hX3RkLCBhcC0+YV9mbGFncywNCiAJICAg
ICAgTk5QRlNfQVBfUFJPQyhhcCktPnRkX2xvY2tzKSk7DQorI2VuZGlmDQog
ICAgIA0KICAgICBubnBmc19sa19pbmZvKCJubnBmc191bmxvY2sgYmVmb3Jl
IiwgdnApOw0KICAgICByZXQgPSB2b3Bfc3RkdW5sb2NrKGFwKTsNCiANCisj
aWZkZWYgSEFWRV9UV09fQVJHVU1FTlRfVk9QX1VOTE9DSw0KKyAgICBOTlBG
U0RFQihYREVCVk5PUFMsICgibm5wZnNfdW5sb2NrOiByZXR1cm4gJWRcbiIs
IHJldCkpOw0KKyNlbHNlDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJu
bnBmc191bmxvY2s6IHJldHVybiAlZCwgdGQgJXAsIG5sb2NrcyAlZFxuIiwN
CiAJCQkgcmV0LCBOTlBGU19BUF9QUk9DKGFwKSwgTk5QRlNfQVBfUFJPQyhh
cCktPnRkX2xvY2tzKSk7DQorI2VuZGlmDQogICAgIHJldHVybiByZXQ7DQog
fQ0KIA0KQEAgLTEzMTMsNiArMTMzNiwyMyBAQA0KIH0NCiAjZW5kaWYNCiAN
CisjaWZkZWYgSEFWRV9WT1BfVlBUT0ZIDQoraW50DQorbm5wZnNfdnB0b2Zo
KHN0cnVjdCB2b3BfdnB0b2ZoX2FyZ3MgKmFwKQ0KKy8qDQorc3RydWN0IHZv
cF92cHRvZmhfYXJncyB7DQorCXN0cnVjdCB2bm9kZW9wX2Rlc2MgKmFfZGVz
YzsNCisJc3RydWN0IHZub2RlICphX3ZwOw0KKwlzdHJ1Y3QgZmlkICphX2Zo
cDsNCit9Ow0KKyovDQorew0KKyAgICBOTlBGU0RFQihYREVCVk5PUFMsICgi
bm5wZnNfdnB0b2ZoXG4iKSk7DQorDQorICAgIHJldHVybiBFT1BOT1RTVVBQ
Ow0KK30NCisjZW5kaWYNCisNCiANCiANCiB2b3BfdCAqKm5ucGZzX3Zub2Rl
b3BfcDsNCkBAIC0xNDY2LDcgKzE1MDYsMTIgQEANCiAJLnZvcF9ibWFwID0J
CW5ucGZzX2JtYXAsDQogDQogCS52b3BfcG9sbCA9CQlubnBmc19wb2xsLA0K
KyNpZmRlZiBIQVZFX1ZPUF9MT0NLMQ0KKwkudm9wX2xvY2sxID0JCW5ucGZz
X2xvY2sxLA0KKyNlbmRpZg0KKyNpZmRlZiBIQVZFX1ZPUF9MT0NLDQogCS52
b3BfbG9jayA9CQlubnBmc19sb2NrLCAgDQorI2VuZGlmDQogCS52b3BfdW5s
b2NrID0JCW5ucGZzX3VubG9jaywNCiAJLnZvcF9pc2xvY2tlZCA9CQlubnBm
c19pc2xvY2tlZCwNCiAJLnZvcF9yZXZva2UgPQkJbm5wZnNfcmV2b2tlLA0K
QEAgLTE2MDUsNiArMTY1MCw5IEBADQogI2VuZGlmDQogI2lmZGVmIEhBVkVf
Vk9QX1BBVEhDT05GDQogICAgIHsmdm9wX3BhdGhjb25mX2Rlc2MsICh2b3Bf
dCAqKSBubnBmc19wYXRoY29uZiB9LA0KKyNlbmRpZg0KKyNpZmRlZiBIQVZF
X1ZPUF9WUFRPRkgNCisgICAgeyZ2b3BfdnB0b2ZoX2Rlc2MsICh2b3BfdCAq
KSBubnBmc192cHRvZmggfSwNCiAjZW5kaWYNCiAgICAgeyhzdHJ1Y3Qgdm5v
ZGVvcF9kZXNjICopIE5VTEwsIChpbnQgKCopICh2b2lkICopKSBOVUxMfQ0K
IH07DQpJbmRleDogbm5wZnMvYnNkL25ucGZzX3Zub2Rlb3BzLWNvbW1vbi5j
DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL3N0YWNrZW4t
Y3ZzL2FybGEvbm5wZnMvYnNkL25ucGZzX3Zub2Rlb3BzLWNvbW1vbi5jLHYN
CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMjENCmRpZmYgLXUgLXIxLjEyMSBu
bnBmc192bm9kZW9wcy1jb21tb24uYw0KLS0tIG5ucGZzL2JzZC9ubnBmc192
bm9kZW9wcy1jb21tb24uYwkyOCBNYXIgMjAwNyAxMjowNTo0NiAtMDAwMAkx
LjEyMQ0KKysrIG5ucGZzL2JzZC9ubnBmc192bm9kZW9wcy1jb21tb24uYwkx
NiBGZWIgMjAwOCAwMzo0OTo1NyAtMDAwMA0KQEAgLTUwLDcgKzUwLDcgQEAN
CiBzdGF0aWMgdm9pZA0KIG5ucGZzX2hhbmRsZV9zdGFsZShzdHJ1Y3Qgbm5w
ZnNfbm9kZSAqeG4pDQogew0KLSNpZiBfX0FQUExFX18NCisjaWZkZWYgX19B
UFBMRV9fDQogICAgIHN0cnVjdCB2bm9kZSAqdnAgPSBYTk9ERV9UT19WTk9E
RSh4bik7DQogI2VuZGlmDQogDQpAQCAtMTQzOCw3ICsxNDM4LDkgQEANCiAg
ICAgaW50IGVycm9yID0gMDsNCiAgICAgbm5wZnNfY3JlZCBjcmVkOw0KICAg
ICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9IE5OUEZTX0ZST01fVk5PREUodnAp
Ow0KKyNpZmRlZiBIQVZFX1RIUkVFX0FSR1VNRU5UX1ZPUF9VTkxPQ0sNCiAg
ICAgZF90aHJlYWRfdCAqcHJvYyA9IG5ucGZzX3Zmc19jb250ZXh0X3Byb2Mo
Y3R4KTsNCisjZW5kaWYNCiANCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAo
Im5ucGZzX3JlYWRsaW5rXG4iKSk7DQogDQpJbmRleDogbm5wZnMvYnNkL2Jp
bi9tbnRvcHRzLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxl
OiAvc3RhY2tlbi1jdnMvYXJsYS9ubnBmcy9ic2QvYmluL21udG9wdHMuaCx2
DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNw0KZGlmZiAtdSAtcjEuNyBtbnRv
cHRzLmgNCi0tLSBubnBmcy9ic2QvYmluL21udG9wdHMuaAkyOCBEZWMgMjAw
NSAxNDozMjowMyAtMDAwMAkxLjcNCisrKyBubnBmcy9ic2QvYmluL21udG9w
dHMuaAkxNiBGZWIgMjAwOCAwMzo0OTo1OCAtMDAwMA0KQEAgLTQ4LDcgKzQ4
LDkgQEANCiAjZGVmaW5lIE1PUFRfTk9BQ0NFU1NUSU1FCXsgImFjY2Vzc3Rp
bWUiLAkxLCBNTlRfTk9BVElNRSB9DQogI2RlZmluZSBNT1BUX05PQVRJTUUJ
CXsgImF0aW1lIiwJMSwgTU5UX05PQVRJTUUgfQ0KICNlbmRpZg0KKyNpZmRl
ZiBNT1BUX05PREVWDQogI2RlZmluZSBNT1BUX05PREVWCQl7ICJkZXYiLAkx
LCBNTlRfTk9ERVYgfQ0KKyNlbmRpZg0KICNkZWZpbmUgTU9QVF9OT0VYRUMJ
CXsgImV4ZWMiLAkxLCBNTlRfTk9FWEVDIH0NCiAjZGVmaW5lIE1PUFRfTk9T
VUlECQl7ICJzdWlkIiwJMSwgTU5UX05PU1VJRCB9DQogI2RlZmluZSBNT1BU
X1JET05MWQkJeyAicmRvbmx5IiwJMCwgTU5UX1JET05MWSB9DQpAQCAtNzgs
NiArODAsNyBAQA0KIA0KIC8qIFN0YW5kYXJkIG9wdGlvbnMgd2hpY2ggYWxs
IG1vdW50cyBjYW4gdW5kZXJzdGFuZC4gKi8NCiANCisjaWZkZWYgTU9QVF9O
T0RFVg0KICNkZWZpbmUgTU9QVF9TVERPUFRTCQkJCQkJCVwNCiAJTU9QVF9V
U0VSUVVPVEEsCQkJCQkJCVwNCiAJTU9QVF9HUk9VUFFVT1RBLAkJCQkJCVwN
CkBAIC04Niw1ICs4OSwxNCBAQA0KIAlNT1BUX05PRVhFQywJCQkJCQkJXA0K
IAlNT1BUX05PU1VJRCwJCQkJCQkJXA0KIAlNT1BUX1JET05MWQ0KKyNlbHNl
DQorI2RlZmluZSBNT1BUX1NURE9QVFMJCQkJCQkJXA0KKwlNT1BUX1VTRVJR
VU9UQSwJCQkJCQkJXA0KKwlNT1BUX0dST1VQUVVPVEEsCQkJCQkJXA0KKwlN
T1BUX0ZTVEFCX0NPTVBBVCwJCQkJCQlcDQorCU1PUFRfTk9FWEVDLAkJCQkJ
CQlcDQorCU1PUFRfTk9TVUlELAkJCQkJCQlcDQorCU1PUFRfUkRPTkxZDQor
I2VuZGlmDQogDQogdm9pZCBnZXRtbnRvcHRzIChjb25zdCBjaGFyICosIGNv
bnN0IHN0cnVjdCBtbnRvcHQgKiwgaW50ICopOw0KSW5kZXg6IG5ucGZzL2Jz
ZC9ubnBmcy9ubnBmc19jb21tb24uaA0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KUkNTIGZpbGU6IC9zdGFja2VuLWN2cy9hcmxhL25ucGZzL2JzZC9ubnBm
cy9ubnBmc19jb21tb24uaCx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjIN
CmRpZmYgLXUgLXIxLjIyIG5ucGZzX2NvbW1vbi5oDQotLS0gbm5wZnMvYnNk
L25ucGZzL25ucGZzX2NvbW1vbi5oCTI0IE9jdCAyMDA2IDE2OjMzOjE0IC0w
MDAwCTEuMjINCisrKyBubnBmcy9ic2Qvbm5wZnMvbm5wZnNfY29tbW9uLmgJ
MTYgRmViIDIwMDggMDM6NDk6NTggLTAwMDANCkBAIC01OSw3ICs1OSw4IEBA
DQogI2RlZmluZSBubnBmc19mcmVlKGEsIHNpemUsdCkgZnJlZShhLCB0KQ0K
ICNlbmRpZiAvKiBOTlBGU19ERUJVRyAqLw0KIA0KLWludCBubnBmc19zdXNl
cihkX3RocmVhZF90ICpwKTsNCitpbnQgbm5wZnNfcHJpdl9jaGVja19kZWJ1
ZyhkX3RocmVhZF90ICpwKTsNCitpbnQgbm5wZnNfcHJpdl9jaGVja19maGxv
b2t1cChkX3RocmVhZF90ICpwKTsNCiANCiAjaWZuZGVmIEhBVkVfS0VSTkVM
X01FTUNQWQ0KIHZvaWQgKg0KSW5kZXg6IG5ucGZzL2JzZC9ubnBmcy9ubnBm
c19sb2NsLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAv
c3RhY2tlbi1jdnMvYXJsYS9ubnBmcy9ic2Qvbm5wZnMvbm5wZnNfbG9jbC5o
LHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMTMNCmRpZmYgLXUgLXIxLjEx
MyBubnBmc19sb2NsLmgNCi0tLSBubnBmcy9ic2Qvbm5wZnMvbm5wZnNfbG9j
bC5oCTYgTWFyIDIwMDcgMTY6MDE6NTYgLTAwMDAJMS4xMTMNCisrKyBubnBm
cy9ic2Qvbm5wZnMvbm5wZnNfbG9jbC5oCTE2IEZlYiAyMDA4IDAzOjQ5OjU4
IC0wMDAwDQpAQCAtMTIxLDYgKzEyMSw5IEBADQogI2lmZGVmIEhBVkVfU1lT
X0tBVVRIX0gNCiAjaW5jbHVkZSA8c3lzL2thdXRoLmg+DQogI2VuZGlmDQor
I2lmZGVmIEhBVkVfU1lTX1BSSVZfSA0KKyNpbmNsdWRlIDxzeXMvcHJpdi5o
Pg0KKyNlbmRpZg0KIA0KICNpZmRlZiBIQVZFX01JU0NGU19HRU5GU19HRU5G
U19IDQogI2luY2x1ZGUgPG1pc2Nmcy9nZW5mcy9nZW5mcy5oPg0KQEAgLTI5
Niw3ICsyOTksNyBAQA0KIHN0cnVjdCBnZW5mc19vcHMgbm5wZnNfZ2VuZnNv
cHM7DQogI2VuZGlmDQogDQotI2lmIF9fTmV0QlNEX1ZlcnNpb25fXyA+PSAz
OTkwMDE5MDAgLyogTmV0QlNEIDMuOTkuMTkgKi8NCisjaWYgZGVmaW5lZChf
X05ldEJTRF9fKSAmJiBfX05ldEJTRF9WZXJzaW9uX18gPj0gMzk5MDAxOTAw
IC8qIE5ldEJTRCAzLjk5LjE5ICovDQogdHlwZWRlZiBzdHJ1Y3Qga2F1dGhf
Y3JlZCAqbm5wZnNfa2VybmVsX2NyZWQ7DQogI2RlZmluZSBubnBmc19jcmVk
X2dldF91aWQoY3JlZCkga2F1dGhfY3JlZF9nZXR1aWQoY3JlZCkNCiAjZWxz
ZQ0KSW5kZXg6IG5ucGZzL2JzZC9ubnBmcy9ubnBmc192ZnNvcHMtYnNkLmgN
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvc3RhY2tlbi1j
dnMvYXJsYS9ubnBmcy9ic2Qvbm5wZnMvbm5wZnNfdmZzb3BzLWJzZC5oLHYN
CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yNQ0KZGlmZiAtdSAtcjEuMjUgbm5w
ZnNfdmZzb3BzLWJzZC5oDQotLS0gbm5wZnMvYnNkL25ucGZzL25ucGZzX3Zm
c29wcy1ic2QuaAk2IE1hciAyMDA3IDE2OjAxOjU2IC0wMDAwCTEuMjUNCisr
KyBubnBmcy9ic2Qvbm5wZnMvbm5wZnNfdmZzb3BzLWJzZC5oCTE2IEZlYiAy
MDA4IDAzOjQ5OjU4IC0wMDAwDQpAQCAtNzksNyArNzksMTEgQEANCiBubnBm
c19yb290KHN0cnVjdCBtb3VudCAqbXAsIHN0cnVjdCB2bm9kZSAqKnZwcCk7
DQogDQogaW50DQorI2lmZGVmIEhBVkVfVkZTX1FVT1RBQ1RMX0NBRERSDQog
bm5wZnNfcXVvdGFjdGwoc3RydWN0IG1vdW50ICptcCwgaW50IGNtZCwgdWlk
X3QgdWlkLCBjYWRkcl90IGFyZywgZF90aHJlYWRfdCAqcCk7DQorI2Vsc2UN
CitubnBmc19xdW90YWN0bChzdHJ1Y3QgbW91bnQgKm1wLCBpbnQgY21kLCB1
aWRfdCB1aWQsIHZvaWQgKmFyZywgZF90aHJlYWRfdCAqcCk7DQorI2VuZGlm
DQogDQogaW50DQogbm5wZnNfc3RhdGZzKHN0cnVjdCBtb3VudCAqbXAsIG5u
cGZzX3N0YXR2ZnMgKnNicCwgZF90aHJlYWRfdCAqcCk7DQpAQCAtMTE0LDYg
KzExOCw3IEBADQogCSAgICAgc3RydWN0IHVjcmVkICoqIGNyZWRhbm9ucCk7
DQogI2VuZGlmDQogDQorI2lmbmRlZiBIQVZFX1ZPUF9WUFRPRkgNCiBpbnQN
CiBubnBmc192cHRvZmgoc3RydWN0IHZub2RlICogdnAsDQogCSAgICAgc3Ry
dWN0IGZpZCAqIGZocA0KQEAgLTEyMSw2ICsxMjYsNyBAQA0KIAkgICAgICxz
aXplX3QgKiBmaWRzeg0KICNlbmRpZg0KIAkgICAgICk7DQorI2VuZGlmDQog
DQogaW50DQogbm5wZnNfZGVhZF9sb29rdXAoc3RydWN0IHZvcF9sb29rdXBf
YXJncyAqYXApOw0KSW5kZXg6IG5ucGZzL2ZyZWVic2QvRnJlZUJTRC1NYWtl
ZmlsZQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9zdGFj
a2VuLWN2cy9hcmxhL25ucGZzL2ZyZWVic2QvRnJlZUJTRC1NYWtlZmlsZSx2
DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNw0KZGlmZiAtdSAtcjEuNyBGcmVl
QlNELU1ha2VmaWxlDQotLS0gbm5wZnMvZnJlZWJzZC9GcmVlQlNELU1ha2Vm
aWxlCTYgTWFyIDIwMDcgMTI6NTQ6MDAgLTAwMDAJMS43DQorKysgbm5wZnMv
ZnJlZWJzZC9GcmVlQlNELU1ha2VmaWxlCTE2IEZlYiAyMDA4IDAzOjQ5OjU4
IC0wMDAwDQpAQCAtMjksNiArMjksNyBAQA0KIGJzZHNyY2Rpcj0JJChzcmNk
aXIpLy4uL2JzZA0KIA0KIENGTEFHUz0gLWcgXA0KKwktSS91c3IvaW5jbHVk
ZSBcDQogCS1JJHsuQ1VSRElSfSBcDQogCS1JJHsuQ1VSRElSfS8uLi8uLi9p
bmNsdWRlIFwNCiAJLUkkey5DVVJESVJ9Ly4uL2luY2x1ZGUgXA0KQEAgLTQ1
LDYgKzQ2LDYgQEANCiAuUEFUSDoJJChic2RzcmNkaXIpDQogDQogbm5wZnNf
dm9wZGVmcy5oOiB2bm9kZV9pZi5oDQotCWF3ayAnL15zdHJ1Y3Qgdm9wX1th
LXpdKl9hcmdzLyB7IHZvcD1zdWJzdHIoJCQyLDUsbGVuZ3RoKCQkMiktOSk7
IHByaW50ZigiI2RlZmluZSBIQVZFX1ZPUF8lcyAxXG4iLCB0b3VwcGVyKHZv
cCkpOyBwcmludGYoIk5OUEZTX1ZPUF9ERUYoJXMpO1xuIiwgdm9wKTsgfScg
dm5vZGVfaWYuaCA+ICR7LlRBUkdFVH0NCisJYXdrICcvXnN0cnVjdCB2b3Bf
W2EtejAtOV0qX2FyZ3MvIHsgdm9wPXN1YnN0cigkJDIsNSxsZW5ndGgoJCQy
KS05KTsgcHJpbnRmKCIjZGVmaW5lIEhBVkVfVk9QXyVzIDFcbiIsIHRvdXBw
ZXIodm9wKSk7IHByaW50ZigiTk5QRlNfVk9QX0RFRiglcyk7XG4iLCB2b3Ap
OyB9JyB2bm9kZV9pZi5oID4gJHsuVEFSR0VUfQ0KIAktbWtkaXIgbm5wZnMN
CiAJdGVzdCAtZCBubnBmcyAmJiAoIHRlc3QgLWYgbm5wZnMvbm5wZnNfdm9w
ZGVmcy5oIHx8IGxuIC1zIC4uL25ucGZzX3ZvcGRlZnMuaCBubnBmcy9ubnBm
c192b3BkZWZzLmggKQ0K

--621616949-433016993-1203135147=:93919--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080216035658.W93919>