[parisc-linux] parisc-linux.org kernel

Joel Soete jsoe0708@tiscali.be
Mon, 14 Apr 2003 11:52:29 +0000


--========/3E8AE87E00006BD1/mail.tiscali.be
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit

Hi Gerard,

For the merge of palinux tree with upstream, I would like to submit to your
attention following patches needed in parisc tree:

>-- Original Message --
>From: Grant Grundler <grundler@parisc-linux.org>
>To: Joel Soete <jsoe0708@tiscali.be>
>Cc: parisc-linux@lists.parisc-linux.org
>Subject: Re: [parisc-linux] parisc-linux.org kernel
>Date: Fri, 11 Apr 2003 09:58:50 -0600
>
>
>On Fri, Apr 11, 2003 at 07:40:32AM +0200, Joel Soete wrote:
>> Here is the rough diffstat (still have to reverse ql driver patches,
I
>will
>> try to find time this week-end :) )
>
>cool - let me add some general comments.
>You might break the diff up into chunks along the lines that
>I've commented on them below. You should end up with something like
>15-20 patches.
>
...
>>  drivers/scsi/ncr53c8xx.c                          |  341 +
>	rhirst changes for zalon support?
...
>
>>  drivers/scsi/sym53c8xx.c                          |   44
>>  drivers/scsi/sym53c8xx_2/sym_glue.c               |   14
>>  drivers/scsi/sym53c8xx_2/sym_hipd.c               |   35
>>  drivers/scsi/sym53c8xx_defs.h                     |   83
>	All of these sym53c8xx changes have been blessed by Gerard Roudier.
>	He's the maintainer. Please submit.
>

Thanks in advance for your help,
    Joel



---------------------------------
Vous surfez avec une ligne classique ?
Economisez jusqu'à 25% avec Tiscali Complete !
Offre spéciale : première année d'abonnement offerte.
... Plus d'info sur http://complete.tiscali.be



--========/3E8AE87E00006BD1/mail.tiscali.be
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="03_Sym53c8.patch"

ZGlmZiAtTmF1clggZG9udGRpZmYgbGludXgtMi40LjIxLXByZTcvZHJpdmVycy9zY3NpL3N5bTUz
Yzh4eC5jIGxpbnV4LTIuNC4yMS1wcmU3LXBhM3gvZHJpdmVycy9zY3NpL3N5bTUzYzh4eC5jCi0t
LSBsaW51eC0yLjQuMjEtcHJlNy9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4LmMJMjAwMy0wMy0yNyAx
OTo0Mzo1MS4wMDAwMDAwMDAgKzAxMDAKKysrIGxpbnV4LTIuNC4yMS1wcmU3LXBhM3gvZHJpdmVy
cy9zY3NpL3N5bTUzYzh4eC5jCTIwMDMtMDMtMjcgMTg6NTA6MjIuMDAwMDAwMDAwICswMTAwCkBA
IC00OTE1LDYgKzQ5MTUsMTEgQEAKIAl1X2xvbmcJcGVyaW9kOwogCWludCBpOwogCisjaWZkZWYg
Q09ORklHX1BBUklTQworCWNoYXIgc2NzaV9tb2RlID0gLTE7CisJc3RydWN0IGhhcmR3YXJlX3Bh
dGggaHdwYXRoOworI2VuZGlmCisKIAkvKgogCSoqCVdpZGUgPwogCSovCkBAIC00OTg2LDYgKzQ5
OTEsMjkgQEAKIAkgKi8KIAogCXBlcmlvZCA9ICg0ICogZGl2XzEwTVswXSArIG5wLT5jbG9ja19r
aHogLSAxKSAvIG5wLT5jbG9ja19raHo7CisKKyNpZiBkZWZpbmVkKENPTkZJR19QQVJJU0MpCisJ
LyogSG9zdCBmaXJtd2FyZSAoUERDKSBrZWVwcyBhIHRhYmxlIGZvciBjcmlwcGxpbmcgU0NTSSBj
YXBhYmlsaXRpZXMuCisJICogTWFueSBuZXdlciBtYWNoaW5lcyBleHBvcnQgb25lIGNoYW5uZWwg
b2YgNTNjODk2IGNoaXAKKwkgKiBhcyBTRSwgNTAtcGluIEhELiAgQWxzbyB1c2VkIGZvciBNdWx0
aS1pbml0aWF0b3IgU0NTSSBjbHVzdGVycworCSAqIHRvIHNldCB0aGUgU0NTSSBJbml0aWF0b3Ig
SUQuCisJICovCisJZ2V0X3BjaV9ub2RlX3BhdGgobnAtPnBkZXYsICZod3BhdGgpOworCWlmIChw
ZGNfZ2V0X2luaXRpYXRvcigmaHdwYXRoLCAmbnAtPm15YWRkciwgJnBlcmlvZCwgJm5wLT5tYXh3
aWRlLCAmc2NzaV9tb2RlKSkKKwl7CisJCWlmIChzY3NpX21vZGUgPj0gMCkgeworCQkJLyogQzMw
MDAgUERDIHJlcG9ydHMgcGVyaW9kL21vZGUgKi8KKwkJCWRyaXZlcl9zZXR1cC5kaWZmX3N1cHBv
cnQgPSAwOworCQkJc3dpdGNoKHNjc2lfbW9kZSkgeworCQkJY2FzZSAwOglucC0+c2NzaV9tb2Rl
ID0gU01PREVfU0U7IGJyZWFrOworCQkJY2FzZSAxOglucC0+c2NzaV9tb2RlID0gU01PREVfSFZE
OyBicmVhazsKKwkJCWNhc2UgMjoJbnAtPnNjc2lfbW9kZSA9IFNNT0RFX0xWRDsgYnJlYWs7CisJ
CQlkZWZhdWx0OglicmVhazsKKwkJCX0KKwkJfQorCX0KKyNlbmRpZgorCiAJaWYJKHBlcmlvZCA8
PSAyNTApCQlucC0+bWluc3luYyA9IDEwOwogCWVsc2UgaWYJKHBlcmlvZCA8PSAzMDMpCQlucC0+
bWluc3luYyA9IDExOwogCWVsc2UgaWYJKHBlcmlvZCA8PSA1MDApCQlucC0+bWluc3luYyA9IDEy
OwpAQCAtNTEyOCw3ICs1MTU2LDYgQEAKIAkJbnAtPnJ2X2N0ZXN0NAl8PSBNUEVFOwkvKiBNYXN0
ZXIgcGFyaXR5IGNoZWNraW5nICovCiAJaWYgKGRyaXZlcl9zZXR1cC5zY3NpX3Bhcml0eSkKIAkJ
bnAtPnJ2X3NjbnRsMAl8PSAweDBhOwkvKiAgZnVsbCBhcmIuLCBlbmEgcGFyaXR5LCBwYXItPkFU
TiAgKi8KLQogI2lmZGVmIFNDU0lfTkNSX05WUkFNX1NVUFBPUlQKIAkvKgogCSoqCUdldCBwYXJp
dHkgY2hlY2tpbmcsIGhvc3QgSUQgYW5kIHZlcmJvc2UgbW9kZSBmcm9tIE5WUkFNCkBAIC01MTk2
LDcgKzUyMjMsNyBAQAogCQkJaWYgKG5wLT5zdl9zdGVzdDIgJiAweDIwKQogCQkJCW5wLT5zY3Np
X21vZGUgPSBTTU9ERV9IVkQ7CiAJCQlicmVhazsKLQkJZGVmYXVsdDovKiBEb24ndCBjYXJlIGFi
b3V0IEhWRCAqLwkKKwkJZGVmYXVsdDogLyogRG9uJ3QgY2FyZSBhYm91dCBIVkQgKi8JCiAJCQli
cmVhazsKIAkJfQogCX0KQEAgLTUyMzksNiArNTI2Niw3IEBACiAJCXRjYl9wIHRwID0gJm5wLT50
YXJnZXRbaV07CiAKIAkJdHAtPnVzcnN5bmMgPSAyNTU7CisKICNpZmRlZiBTQ1NJX05DUl9OVlJB
TV9TVVBQT1JUCiAJCWlmIChudnJhbSkgewogCQkJc3dpdGNoKG52cmFtLT50eXBlKSB7CkBAIC01
MjU2LDEwICs1Mjg0LDExIEBACiAJCQlpZiAoZHJpdmVyX3NldHVwLnVzZV9udnJhbSAmIDB4OCkK
IAkJCQl0cC0+dXNyZmxhZyAmPSB+VUZfTk9TQ0FOOwogCQl9Ci0JCWVsc2UgeworCQllbHNlCiAj
ZWxzZQotCQlpZiAoMSkgeworCQlpZiAoMSkgCiAjZW5kaWYKKwkJewogCQkJdHAtPnVzcnN5bmMg
PSBkcml2ZXJfc2V0dXAuZGVmYXVsdF9zeW5jOwogCQkJdHAtPnVzcndpZGUgPSBkcml2ZXJfc2V0
dXAubWF4X3dpZGU7CiAJCQl0cC0+dXNydGFncyA9IE1BWF9UQUdTOwpAQCAtNzA3NCw3ICs3MTAz
LDExIEBACiAJCSgoSU5XKG5jX3NiZGwpICYgMHhmZjAwKSA8PCAxMCkgfAkvKiBkMTUtOCAgICAq
LwogCQlJTkIobmNfc2JjbCk7CS8qIHJlcSBhY2sgYnN5IHNlbCBhdG4gbXNnIGNkIGlvICAgICov
CiAKKyNpZmRlZiBDT05GSUdfUEFSSVNDCisJaWYgKCFucC0+bWF4d2lkZSkKKyNlbHNlCiAJaWYg
KCEobnAtPmZlYXR1cmVzICYgRkVfV0lERSkpCisjZW5kaWYKIAkJdGVybSAmPSAweDNmZmZmOwog
CiAJaWYgKHRlcm0gIT0gKDI8PDcpKSB7CkBAIC0xMjk3NCw2ICsxMzAwNyw3IEBACiAJCX0KIAkJ
aWYgKGkgIT0gY291bnQpCS8qIElnbm9yZSB0aGlzIGRldmljZSBpZiB3ZSBhbHJlYWR5IGhhdmUg
aXQgKi8KIAkJCWNvbnRpbnVlOworCQlwY2lfc2V0X21hc3RlcihwY2lkZXYpOwogCQlkZXZwID0g
JmRldnRibFtjb3VudF07CiAJCWRldnAtPmhvc3RfaWQgPSBkcml2ZXJfc2V0dXAuaG9zdF9pZDsK
IAkJZGV2cC0+YXR0YWNoX2RvbmUgPSAwOwpAQCAtMTMyMTcsNyArMTMyNTEsNyBAQAogCQlyZXR1
cm4gLTE7CiAJfQogCi0jaWZkZWYgX19wb3dlcnBjX18KKyNpZiBkZWZpbmVkKF9fcG93ZXJwY19f
KSB8fCBkZWZpbmVkKF9faHBwYV9fKQogCS8qCiAJKioJRml4LXVwIGZvciBwb3dlci9wYy4KIAkq
KglTaG91bGQgbm90IGJlIHBlcmZvcm1lZCBieSB0aGUgZHJpdmVyLgpkaWZmIC1OYXVyWCBkb250
ZGlmZiBsaW51eC0yLjQuMjEtcHJlNy9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIvc3ltX2dsdWUu
YyBsaW51eC0yLjQuMjEtcHJlNy1wYTN4L2RyaXZlcnMvc2NzaS9zeW01M2M4eHhfMi9z
eW1fZ2x1ZS5jCi0tLSBsaW51eC0yLjQuMjEtcHJlNy9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIv
c3ltX2dsdWUuYwkyMDAyLTExLTI5IDAwOjUzOjE0LjAwMDAwMDAwMCArMDEwMAorKysgbGludXgt
Mi40LjIxLXByZTctcGEzeC9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIvc3ltX2dsdWUuYwkyMDAy
LTEyLTIwIDE1OjU2OjIyLjAwMDAwMDAwMCArMDEwMApAQCAtMTQyLDEwICsxNDIsMjQgQEAKICNk
ZWZpbmUJU1lNX0xPQ0tfSENCKG5wLCBmbGFncykgICBzcGluX2xvY2tfaXJxc2F2ZSgmbnAtPnMu
c21wX2xvY2ssIGZsYWdzKQogI2RlZmluZQlTWU1fVU5MT0NLX0hDQihucCwgZmxhZ3MpIHNwaW5f
dW5sb2NrX2lycXJlc3RvcmUoJm5wLT5zLnNtcF9sb2NrLCBmbGFncykKIAorLyogV2FybmluZyEK
KyAqIHN5bTIgZHJpdmVyIHVzZWQgdG8gaG9sZCBpb3JsIGluIHN5bTUzYzh4eF9pbnRyIGFuZCBz
eW1fdGltZXIKKyAqIHdpdGggdGhlc2UgbWFjcm9zLiBIb3dldmVyLCB3ZSBoYXZlIG9ic2VydmVk
IHRoYXQgdGhpcyBjYXVzZXMKKyAqIGEgZGVhZGxvY2sgd2l0aCB0aGUgaW9ybCBoZWxkIGJ5IHNj
c2lfcmVnaXN0ZXJfaG9zdC4gQSBzdXJ2ZXkKKyAqIG9mIGEgY291cGxlIG9mIG90aGVyIHNjc2kg
ZHJpdmVycyB0aGF0IHVzZXMgdGhlICJuZXciIGVoCisgKiBjb2RlIHNlZW1zIHRvIHN1Z2dlc3Qg
dGhhdCB0aGlzIGlzIG5vdCByZXF1aXJlZC4gSSd2ZSBkaXNhYmxlZAorICogdGhlc2UgZm9yIG5v
dywgd2l0aG91dCBoYXZpbmcgY29tcGxldGVseSB1bmRlcnN0b29kIGlmIHRoaXMKKyAqIGlzIGNv
cnJlY3QuCisgKi8KKyNpZm5kZWYgQ09ORklHX1BBUklTQyAvKiBoYWNrICovCiAjZGVmaW5lCVNZ
TV9MT0NLX1NDU0kobnAsIGZsYWdzKSBcCiAJCXNwaW5fbG9ja19pcnFzYXZlKCZpb19yZXF1ZXN0
X2xvY2ssIGZsYWdzKQogI2RlZmluZQlTWU1fVU5MT0NLX1NDU0kobnAsIGZsYWdzKSBcCiAJCXNw
aW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvX3JlcXVlc3RfbG9jaywgZmxhZ3MpCisjZWxzZQorI2Rl
ZmluZQlTWU1fTE9DS19TQ1NJKG5wLCBmbGFncykKKyNkZWZpbmUJU1lNX1VOTE9DS19TQ1NJKG5w
LCBmbGFncykKKyNlbmRpZgogCiAvKiBVZ2x5LCBidXQgd2lsbCBtYWtlIHRoaW5ncyBlYXNpZXIg
aWYgdGhpcyBsb2NraW5nIHdpbGwgZXZlciBkaXNhcHBlYXIgKi8KICNkZWZpbmUJU1lNX0xPQ0tf
U0NTSV9OT1NBVkUobnApCXNwaW5fbG9ja19pcnEoJmlvX3JlcXVlc3RfbG9jaykKZGlmZiAtTmF1
clggZG9udGRpZmYgbGludXgtMi40LjIxLXByZTcvZHJpdmVycy9zY3NpL3N5bTUzYzh4eF8yL3N5
bV9oaXBkLmMgbGludXgtMi40LjIxLXByZTctcGEzeC9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4XzIv
c3ltX2hpcGQuYwotLS0gbGludXgtMi40LjIxLXByZTcvZHJpdmVycy9zY3NpL3N5bTUzYzh4eF8y
L3N5bV9oaXBkLmMJMjAwMy0wMy0yNyAxOTo0Mzo1MS4wMDAwMDAwMDAgKzAxMDAKKysrIGxpbnV4
LTIuNC4yMS1wcmU3LXBhM3gvZHJpdmVycy9zY3NpL3N5bTUzYzh4eF8yL3N5bV9oaXBkLmMJMjAw
My0wMy0yNyAxODo1MDoyMi4wMDAwMDAwMDAgKzAxMDAKQEAgLTI4OSw3ICsyODksMTEgQEAKIAkJ
KChJTlcobmNfc2JkbCkgJiAweGZmMDApIDw8IDEwKSB8CS8qIGQxNS04ICAgICovCiAJCUlOQihu
Y19zYmNsKTsJLyogcmVxIGFjayBic3kgc2VsIGF0biBtc2cgY2QgaW8gICAgKi8KIAorI2lmZGVm
IENPTkZJR19QQVJJU0MKKwlpZiAoIW5wLT5tYXh3aWRlKQorI2Vsc2UKIAlpZiAoIShucC0+ZmVh
dHVyZXMgJiBGRV9XSURFKSkKKyNlbmRpZgogCQl0ZXJtICY9IDB4M2ZmZmY7CiAKIAlpZiAodGVy
bSAhPSAoMjw8NykpIHsKQEAgLTc0NCw2ICs3NDgsMTIgQEAKIAl1MzIJcGVyaW9kOwogCWludCBp
OwogCisjaWZkZWYgQ09ORklHX1BBUklTQworCXVuc2lnbmVkIGxvbmcgcGRjX3BlcmlvZDsKKwlj
aGFyIHNjc2lfbW9kZSA9IC0xOworCXN0cnVjdCBoYXJkd2FyZV9wYXRoIGh3cGF0aDsKKyNlbmRp
ZgorCiAJLyoKIAkgKiAgV2lkZSA/CiAJICovCkBAIC04MDAsNiArODEwLDMxIEBACiAJICogQnR3
LCAncGVyaW9kJyBpcyBpbiB0ZW50aHMgb2YgbmFub3NlY29uZHMuCiAJICovCiAJcGVyaW9kID0g
KDQgKiBkaXZfMTBNWzBdICsgbnAtPmNsb2NrX2toeiAtIDEpIC8gbnAtPmNsb2NrX2toejsKKwor
I2lmIGRlZmluZWQoQ09ORklHX1BBUklTQykKKwkvKiBIb3N0IGZpcm13YXJlIChQREMpIGtlZXBz
IGEgdGFibGUgZm9yIGNyaXBwbGluZyBTQ1NJIGNhcGFiaWxpdGllcy4KKwkgKiBNYW55IG5ld2Vy
IG1hY2hpbmVzIGV4cG9ydCBvbmUgY2hhbm5lbCBvZiA1M2M4OTYgY2hpcAorCSAqIGFzIFNFLCA1
MC1waW4gSEQuICBBbHNvIHVzZWQgZm9yIE11bHRpLWluaXRpYXRvciBTQ1NJIGNsdXN0ZXJzCisJ
ICogdG8gc2V0IHRoZSBTQ1NJIEluaXRpYXRvciBJRC4KKwkgKi8KKwlnZXRfcGNpX25vZGVfcGF0
aChucC0+cy5kZXZpY2UsICZod3BhdGgpOworCWlmIChwZGNfZ2V0X2luaXRpYXRvcigmaHdwYXRo
LCAmbnAtPm15YWRkciwgJnBkY19wZXJpb2QsICZucC0+bWF4d2lkZSwgJnNjc2lfbW9kZSkpCisJ
eworCQlpZiAoc2NzaV9tb2RlID49IDApIHsKKwkJCS8qIEMzMDAwIFBEQyByZXBvcnRzIHBlcmlv
ZC9tb2RlICovCisJCQlTWU1fU0VUVVBfU0NTSV9ESUZGID0gMDsKKwkJCXN3aXRjaChzY3NpX21v
ZGUpIHsKKwkJCWNhc2UgMDoJbnAtPnNjc2lfbW9kZSA9IFNNT0RFX1NFOyBicmVhazsKKwkJCWNh
c2UgMToJbnAtPnNjc2lfbW9kZSA9IFNNT0RFX0hWRDsgYnJlYWs7CisJCQljYXNlIDI6CW5wLT5z
Y3NpX21vZGUgPSBTTU9ERV9MVkQ7IGJyZWFrOworCQkJZGVmYXVsdDoJYnJlYWs7CisJCQl9CisJ
CX0KKworCQlwZXJpb2QgPSAodTMyKSBwZGNfcGVyaW9kOworCX0KKyNlbmRpZgorCiAJaWYJKHBl
cmlvZCA8PSAyNTApCQlucC0+bWluc3luYyA9IDEwOwogCWVsc2UgaWYJKHBlcmlvZCA8PSAzMDMp
CQlucC0+bWluc3luYyA9IDExOwogCWVsc2UgaWYJKHBlcmlvZCA8PSA1MDApCQlucC0+bWluc3lu
YyA9IDEyOwpkaWZmIC1OYXVyWCBkb250ZGlmZiBsaW51eC0yLjQuMjEtcHJlNy9kcml2
ZXJzL3Njc2kvc3ltNTNjOHh4X2RlZnMuaCBsaW51eC0yLjQuMjEtcHJlNy1wYTN4L2RyaXZlcnMv
c2NzaS9zeW01M2M4eHhfZGVmcy5oCi0tLSBsaW51eC0yLjQuMjEtcHJlNy9kcml2ZXJzL3Njc2kv
c3ltNTNjOHh4X2RlZnMuaAkyMDAyLTA4LTAzIDAyOjM5OjQ0LjAwMDAwMDAwMCArMDIwMAorKysg
bGludXgtMi40LjIxLXByZTctcGEzeC9kcml2ZXJzL3Njc2kvc3ltNTNjOHh4X2RlZnMuaAkyMDAz
LTAzLTE5IDE0OjMzOjI1LjAwMDAwMDAwMCArMDEwMApAQCAtODIsOSArODIsMTEgQEAKIC8qCiAg
KglObyBtb3JlIGFuIG9wdGlvbiwgZW5hYmxlZCBieSBkZWZhdWx0LgogICovCisjaWZuZGVmIEVO
QUJMRV9TQ1NJX1pBTE9OCiAjaWZuZGVmIENPTkZJR19TQ1NJX05DUjUzQzhYWF9OVlJBTV9ERVRF
Q1QKICNkZWZpbmUgQ09ORklHX1NDU0lfTkNSNTNDOFhYX05WUkFNX0RFVEVDVAogI2VuZGlmCisj
ZW5kaWYKIAogLyoKICoqCVRoZXNlIG9wdGlvbnMgYXJlIG5vdCB0dW5hYmxlIGZyb20gJ21ha2Ug
Y29uZmlnJwpAQCAtMTg1LDYgKzE4NywyNCBAQAogI2VuZGlmCiAjZWxpZiBkZWZpbmVkKF9fc3Bh
cmNfXykKICN1bmRlZiBTQ1NJX05DUl9JT01BUFBFRAorI2VsaWYgZGVmaW5lZChfX2hwcGFfXykK
KyNpZiBkZWZpbmVkKEVOQUJMRV9TQ1NJX1pBTE9OKQorI3VuZGVmIFNDU0lfTkNSX0lPTUFQUEVE
CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogU2hvdWxkIHdlIGVuYWJsZSBEQUMgY3ljbGVzIG9u
IFNwYXJjNjQgcGxhdGZvcm0/CisgKiBVbnRpbCBmdXJ0aGVyIGludmVzdGlnYXRpb24gd2UgZG8g
bm90IGVuYWJsZSBpdAorICogYXQgdGhlIG1vbWVudC4KKyAqIFdlIG1heSB3YW50IHRvIGVuYWJs
ZSBpdCBmb3IgX19pYTY0X18gKHVudGVzdGVkKQorICovCisjaWYgZGVmaW5lZChfX2lhNjRfXykK
KyMgICAgaWYgIWRlZmluZWQoU0NTSV9OQ1JfVVNFXzY0QklUX0RBQykKKyMgICAgICAgIGRlZmlu
ZSBTQ1NJX05DUl9VU0VfNjRCSVRfREFDCisjICAgIGVuZGlmCisjZWxzZQorIyAgICB1bmRlZiBT
Q1NJX05DUl9VU0VfNjRCSVRfREFDCiAjZW5kaWYKIAogLyoKQEAgLTM4MywyNSArNDAzLDI0IEBA
CiAjZGVmaW5lCXJlYWRiX3JhdwlyZWFkYgogI2RlZmluZQl3cml0ZWJfcmF3CXdyaXRlYgogCi0j
aWYgZGVmaW5lZChfX2hwcGFfXykKLSNkZWZpbmUJcmVhZHdfbDJiKGEpCWxlMTZfdG9fY3B1KHJl
YWR3KGEpKQotI2RlZmluZQlyZWFkbF9sMmIoYSkJbGUzMl90b19jcHUocmVhZGwoYSkpCi0jZGVm
aW5lCXdyaXRld19iMmwodixhKQl3cml0ZXcoY3B1X3RvX2xlMTYodiksYSkKLSNkZWZpbmUJd3Jp
dGVsX2IybCh2LGEpCXdyaXRlbChjcHVfdG9fbGUzMih2KSxhKQotI2VsaWYgZGVmaW5lZChfX21p
cHNfXykKLSNkZWZpbmUgcmVhZHdfbDJiCXJlYWR3Ci0jZGVmaW5lIHJlYWRsX2wyYglyZWFkbAot
I2RlZmluZSB3cml0ZXdfYjJsCXdyaXRldwotI2RlZmluZSB3cml0ZWxfYjJsCXdyaXRlbAotI2Rl
ZmluZSBpbndfbDJiIAlpbncKLSNkZWZpbmUgaW5sX2wyYiAJaW5sCi0jZGVmaW5lIG91dHdfYjJs
CW91dHcKLSNkZWZpbmUgb3V0bF9iMmwJb3V0bAorI2lmIGRlZmluZWQoU0NTSV9OQ1JfQklHX0VO
RElBTikKKyNkZWZpbmUJcmVhZHdfbDJiCV9fcmF3X3JlYWR3CisjZGVmaW5lCXJlYWRsX2wyYglf
X3Jhd19yZWFkbAorI2RlZmluZQl3cml0ZXdfYjJsCV9fcmF3X3dyaXRldworI2RlZmluZQl3cml0
ZWxfYjJsCV9fcmF3X3dyaXRlbAorI2RlZmluZQlyZWFkd19yYXcJX19yYXdfcmVhZHcKKyNkZWZp
bmUJcmVhZGxfcmF3KGEpCV9fcmF3X3JlYWRsKCh1bnNpZ25lZCBsb25nKShhKSkKKyNkZWZpbmUJ
d3JpdGV3X3JhdwlfX3Jhd193cml0ZXcKKyNkZWZpbmUJd3JpdGVsX3Jhdyh2LGEpCV9fcmF3X3dy
aXRlbCh2LCh1bnNpZ25lZCBsb25nKShhKSkKICNlbHNlCS8qIE90aGVyIGJpZy1lbmRpYW4gKi8K
ICNkZWZpbmUJcmVhZHdfbDJiCXJlYWR3CiAjZGVmaW5lCXJlYWRsX2wyYglyZWFkbAogI2RlZmlu
ZQl3cml0ZXdfYjJsCXdyaXRldwogI2RlZmluZQl3cml0ZWxfYjJsCXdyaXRlbAorI2RlZmluZQly
ZWFkd19yYXcJcmVhZHcKKyNkZWZpbmUJcmVhZGxfcmF3CXJlYWRsCisjZGVmaW5lCXdyaXRld19y
YXcJd3JpdGV3CisjZGVmaW5lCXdyaXRlbF9yYXcJd3JpdGVsCiAjZW5kaWYKIAogI2Vsc2UJLyog
bGl0dGxlIGVuZGlhbiAqLwpAQCAtNDMwLDkgKzQ0OSwxMSBAQAogI2VuZGlmCiAjZW5kaWYKIAor
I2lmICFkZWZpbmVkKF9faHBwYV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKICNpZmRlZglTQ1NJ
X05DUl9CSUdfRU5ESUFOCiAjZXJyb3IJIlRoZSBOQ1IgaW4gQklHIEVORElBTiBhZGRyZXNzaW5n
IG1vZGUgaXMgbm90ICh5ZXQpIHN1cHBvcnRlZCIKICNlbmRpZgorI2VuZGlmCiAKIAogLyoKQEAg
LTU4NSwxMCArNjA2LDIwIEBACiAKICNlbHNlCiAKKyNpZmRlZiBFTkFCTEVfU0NTSV9aQUxPTgor
LyogT25seSA4IG9yIDMyIGJpdCB0cmFuc2ZlcnMgYWxsb3dlZCAqLworI2RlZmluZSBJTldfT0ZG
KG8pCQkocmVhZGIoKGNoYXIgKilucC0+cmVnICsgbmNyX29mZncobykpIDw8IDggfCByZWFkYigo
Y2hhciAqKW5wLT5yZWcgKyBuY3Jfb2ZmdyhvKSArIDEpKQorI2Vsc2UKICNkZWZpbmUgSU5XX09G
RihvKQkJcmVhZHdfcmF3KChjaGFyICopbnAtPnJlZyArIG5jcl9vZmZ3KG8pKQorI2VuZGlmCiAj
ZGVmaW5lIElOTF9PRkYobykJCXJlYWRsX3JhdygoY2hhciAqKW5wLT5yZWcgKyAobykpCiAKKyNp
ZmRlZiBFTkFCTEVfU0NTSV9aQUxPTgorLyogT25seSA4IG9yIDMyIGJpdCB0cmFuc2ZlcnMgYWxs
b3dlZCAqLworI2RlZmluZSBPVVRXX09GRihvLCB2YWwpCWRvIHsgd3JpdGViKChjaGFyKSgodmFs
KSA+PiA4KSwgKGNoYXIgKilucC0+cmVnICsgbmNyX29mZncobykpOyB3cml0ZWIoKGNoYXIpKHZh
bCksIChjaGFyICopbnAtPnJlZyArIG5jcl9vZmZ3KG8pICsgMSk7IH0gd2hpbGUgKDApCisjZWxz
ZQogI2RlZmluZSBPVVRXX09GRihvLCB2YWwpCXdyaXRld19yYXcoKHZhbCksIChjaGFyICopbnAt
PnJlZyArIG5jcl9vZmZ3KG8pKQorI2VuZGlmCiAjZGVmaW5lIE9VVExfT0ZGKG8sIHZh
bCkJd3JpdGVsX3JhdygodmFsKSwgKGNoYXIgKilucC0+cmVnICsgKG8pKQogCiAjZW5kaWYKQEAg
LTYzNiw2ICs2NjcsMTAgQEAKICoqCU5DUjUzQzhYWCBEZXZpY2UgSWRzCiAqLwogCisjaWZuZGVm
IFBTRVVET19aQUxPTl83MjBfSUQKKyNkZWZpbmUgUFNFVURPX1pBTE9OXzcyMF9JRCAweDVhMDAK
KyNlbmRpZgorCiAjaWZuZGVmIFBDSV9ERVZJQ0VfSURfTkNSXzUzQzgxMAogI2RlZmluZSBQQ0lf
REVWSUNFX0lEX05DUl81M0M4MTAgMQogI2VuZGlmCkBAIC03MzksNiArNzc0LDkgQEAKICNkZWZp
bmUgRkVfREFDCSAJKDE8PDI0KSAgIC8qIFN1cHBvcnQgREFDIGN5Y2xlcyAoNjQgYml0IGFkZHJl
c3NpbmcpICovCiAjZGVmaW5lIEZFX0lTVEFUMSAJKDE8PDI1KSAgIC8qIEhhdmUgSVNUQVQxLCBN
Qk9YMCwgTUJPWDEgcmVnaXN0ZXJzICovCiAjZGVmaW5lIEZFX0RBQ19JTl9VU0UJKDE8PDI2KQkg
IC8qIFBsYXRmb3JtIGRvZXMgREFDIGN5Y2xlcyAqLworI2RlZmluZSBGRV9FSFAJCSgxPDwyNykg
ICAvKiA3MjA6IEV2ZW4gaG9zdCBwYXJpdHkgKi8KKyNkZWZpbmUgRkVfTVVYCQkoMTw8MjgpICAg
LyogNzIwOiBNdWx0aXBsZXhlZCBidXMgKi8KKyNkZWZpbmUgRkVfRUEJCSgxPDwyOSkgICAvKiA3
MjA6IEVuYWJsZSBBY2sgKi8KIAogI2RlZmluZSBGRV9DQUNIRV9TRVQJKEZFX0VSTHxGRV9DTFNF
fEZFX1dSSUV8RkVfRVJNUCkKICNkZWZpbmUgRkVfU0NTSV9TRVQJKEZFX1dJREV8RkVfVUxUUkF8
RkVfVUxUUkEyfEZFX0RCTFJ8RkVfUVVBRHxGX0NMSzgwKQpAQCAtNzYwLDYgKzc5OCw5IEBACiAK
ICNkZWZpbmUgU0NTSV9OQ1JfQ0hJUF9UQUJMRQkJCQkJCVwKIHsJCQkJCQkJCQlcCisge1BTRVVE
T19aQUxPTl83MjBfSUQsIDB4MGYsICI3MjAiLCAgMywgIDgsIDQsCQkJCVwKKyBGRV9XSURFfEZF
X0RJRkZ8RkVfRUhQfEZFX01VWHxGRV9FQX0JCQkJCVwKKyAsCQkJCQkJCQkJXAogIHtQQ0lfREVW
SUNFX0lEX05DUl81M0M4MTAsIDB4MGYsICI4MTAiLCAgNCwgIDgsIDQsCQkJXAogIEZFX0VSTH0J
CQkJCQkJCVwKICAsCQkJCQkJCQkJXApAQCAtODMyLDYgKzg3Myw3IEBACiAgKi8KICNkZWZpbmUg
U0NTSV9OQ1JfQ0hJUF9JRFMJCVwKIHsJCQkJCVwKKwlQU0VVRE9fWkFMT05fNzIwX0lELAkJXAog
CVBDSV9ERVZJQ0VfSURfTkNSXzUzQzgxMCwJXAogCVBDSV9ERVZJQ0VfSURfTkNSXzUzQzgxNSwJ
XAogCVBDSV9ERVZJQ0VfSURfTkNSXzUzQzgyMCwJXApAQCAtMTE4Myw2ICsxMjI1LDcgQEAKIC8q
MTcqLyAgdV9jaGFyICAgIG5jX21ib3gxOwkvKiA4OTYgYW5kIGxhdGVyIGNvcmVzIG9ubHkgKi8K
IAogLyoxOCovCXVfY2hhcgkgIG5jX2N0ZXN0MDsKKwkjZGVmaW5lICAgRUhQICAgICAweDA0CS8q
IDcyMCBldmVuIGhvc3QgcGFyaXR5ICAgICAgICAgICAgICovCiAvKjE5Ki8gIHVfY2hhciAgICBu
Y19jdGVzdDE7CiAKIC8qMWEqLyAgdV9jaGFyICAgIG5jX2N0ZXN0MjsKQEAgLTEyMDAsNiArMTI0
Myw3IEBACiAKIC8qMjAqLwl1X2NoYXIJICBuY19kZmlmbzsKIC8qMjEqLyAgdV9jaGFyICAgIG5j
X2N0ZXN0NDsKKwkjZGVmaW5lICAgTVVYICAgICAweDgwICAvKiA3MjAgaG9zdCBidXMgbXVsdGlw
bGV4IG1vZGUgICAgICAqLwogCSNkZWZpbmUgICBCRElTICAgIDB4ODAgIC8qIG1vZDogYnVyc3Qg
ZGlzYWJsZSAgICAgICAgICAgICAgICovCiAJI2RlZmluZSAgIE1QRUUgICAgMHgwOCAgLyogbW9k
OiBtYXN0ZXIgcGFyaXR5IGVycm9yIGVuYWJsZSAgKi8KIApAQCAtMTIzMiw2ICsxMjc2LDcgQEAK
IAkjZGVmaW5lICAgQ0xTRSAgICAweDgwICAvKiBtb2Q6IGNhY2hlIGxpbmUgc2l6ZSBlbmFibGUg
ICAgICAqLwogCSNkZWZpbmUgICBQRkYgICAgIDB4NDAgIC8qIGNtZDogcHJlLWZldGNoIGZsdXNo
ICAgICAgICAgICAgICovCiAJI2RlZmluZSAgIFBGRU4gICAgMHgyMCAgLyogbW9kOiBwcmUtZmV0
Y2ggZW5hYmxlICAgICAgICAgICAgKi8KKwkjZGVmaW5lICAgRUEgICAgICAweDIwCS8qIG1vZDog
NzIwIGVuYWJsZS1hY2sgICAgICAgICAgICAgICovCiAJI2RlZmluZSAgIFNTTSAgICAgMHgxMCAg
LyogbW9kOiBzaW5nbGUgc3RlcCBtb2RlICAgICAgICAgICAgKi8KIAkjZGVmaW5lICAgSVJRTSAg
ICAweDA4ICAvKiBtb2Q6IGlycSBtb2RlICgxID0gdG90ZW0gcG9sZSAhKSAqLwogCSNkZWZpbmUg
ICBTVEQgICAgIDB4MDQgIC8qIGNtZDogc3RhcnQgZG1hIG1vZGUgICAgICAgICAgICAgICovCkBA
IC0xMjc0LDYgKzEzMTksNyBAQAogCiAvKjRlKi8gIHVfY2hhciAgICBuY19zdGVzdDI7CiAJI2Rl
ZmluZSAgIFJPRiAgICAgMHg0MAkvKiByZXNldCBzY3NpIG9mZnNldCAoYWZ0ZXIgZ3Jvc3MgZXJy
b3IhKSAqLworCSNkZWZpbmUgICBESUYgICAgIDB4MjAgIC8qIDcyMCBTQ1NJIGRpZmZlcmVudGlh
bCBtb2RlICAgICAgICAgICAgICovCiAJI2RlZmluZSAgIEVYVCAgICAgMHgwMiAgLyogZXh0ZW5k
ZWQgZmlsdGVyaW5nICAgICAgICAgICAgICAgICAgICAgKi8KIAogLyo0ZiovICB1X2NoYXIgICAg
bmNfc3Rlc3QzOwpAQCAtMTQ1MiwxMiArMTQ5OCwyMSBAQAogI2RlZmluZQlTQ1JfU0VMX1RCTAkw
eDQyMDAwMDAwCiAjZGVmaW5lCVNDUl9TRUxfVEJMX0FUTgkweDQzMDAwMDAwCiAKKyNpZmRlZiBT
Q1NJX05DUl9CSUdfRU5ESUFOCitzdHJ1Y3Qgc2NyX3RibHNlbCB7CisgICAgICAgIHVfY2hhciAg
c2VsX3NjbnRsMzsKKyAgICAgICAgdV9jaGFyICBzZWxfaWQ7CisgICAgICAgIHVfY2hhciAgc2Vs
X3N4ZmVyOworICAgICAgICB1X2NoYXIgIHNlbF9zY250bDQ7CQorfTsKKyNlbHNlCiBzdHJ1Y3Qg
c2NyX3RibHNlbCB7CiAgICAgICAgIHVfY2hhciAgc2VsX3NjbnRsNDsJCiAgICAgICAgIHVfY2hh
ciAgc2VsX3N4ZmVyOwogICAgICAgICB1X2NoYXIgIHNlbF9pZDsKICAgICAgICAgdV9jaGFyICBz
ZWxfc2NudGwzOwogfTsKKyNlbmRpZgogCiAjZGVmaW5lIFNDUl9KTVBfUkVMICAgICAweDA0MDAw
MDAwCiAjZGVmaW5lIFNDUl9JRChpZCkJKCgodV9pbnQzMikoaWQpKSA8PCAxNikKZGlmZiAtTmF1
clggZG9udGRpZmYgbGludXgtMi40LjIxLXByZTcvZHJpdmVycy9zY3NpL25jcjUzYzh4
eC5jIGxpbnV4LTIuNC4yMS1wcmU3LXBhM3gvZHJpdmVycy9zY3NpL25jcjUzYzh4eC5jCi0tLSBs
aW51eC0yLjQuMjEtcHJlNy9kcml2ZXJzL3Njc2kvbmNyNTNjOHh4LmMJMjAwMi0xMS0yOSAwMDo1
MzoxNC4wMDAwMDAwMDAgKzAxMDAKKysrIGxpbnV4LTIuNC4yMS1wcmU3LXBhM3gvZHJpdmVycy9z
Y3NpL25jcjUzYzh4eC5jCTIwMDItMTItMjAgMTU6NTY6MjEuMDAwMDAwMDAwICswMTAwCkBAIC04
Miw2ICs4Miw3IEBACiAqKgkgICAgRXRjLi4uCiAqKgogKioJU3VwcG9ydGVkIE5DUi9TWU1CSU9T
IGNoaXBzOgorKioJCTUzQzcyMAkJKFdpZGUsICAgRmFzdCBTQ1NJLTIsIEhQIFphbG9uKQogKioJ
CTUzQzgxMAkJKDggYml0cywgRmFzdCBTQ1NJLTIsIG5vIHJvbSBCSU9TKSAKICoqCQk1M0M4MTUJ
CSg4IGJpdHMsIEZhc3QgU0NTSS0yLCBvbiBib2FyZCByb20gQklPUykKICoqCQk1M0M4MjAJCShX
aWRlLCAgIEZhc3QgU0NTSS0yLCBubyByb20gQklPUykKQEAgLTE4MCw2ICsxODEsMjMgQEAKIHR5
cGVkZWYgdTMyIHVfaW50MzI7CiB0eXBlZGVmIHU2NCB1X2ludDY0OwogdHlwZWRlZgl1X2xvbmcJ
CXZtX29mZnNldF90OworCisjaWZkZWYgX19ocHBhX18KKy8qIFl1Y2suICBDdXJyZW50IHBsYW4g
aXMgdG8gdXNlIG5jcjU4Yzh4eC5jIGZvciBub24tcGNpIGJpZyBlbmRpYW4KKyoqIGNoaXBzLCBh
bmQgc3ltNTNjOHh4LmMgZm9yIHBjaSBsaXR0bGUgZW5kaWFuIGNoaXBzLiAgRGVmaW5lIHRoaXMK
KyoqIGhlcmUgc28gaXQgZ2V0cyBzZWVuIGJ5IHN5bTUzYzh4eF9kZWZzLmgsIHB1bGxlZCBpbiB2
aWEgbmNyNTNjOHh4LmguCisqLworI2RlZmluZSBTQ1NJX05DUl9CSUdfRU5ESUFOCisvKiBJTlRG
TFkgaW50ZXJydXB0cyBkb24ndCBhbHdheXMgc2VlbSB0byBnZXQgc2VydmljZWQgYXRtLi4uLi4K
KyovCisjZGVmaW5lIFNJTVVMQVRFRF9JTlRGTFkKKyNlbmRpZgorCisjaWYgZGVmaW5lZChDT05G
SUdfU0NTSV9aQUxPTikgfHwgZGVmaW5lZChDT05GSUdfU0NTSV9aQUxPTl9NT0RVTEUpCisjZGVm
aW5lIEVOQUJMRV9TQ1NJX1pBTE9OCisjaW5jbHVkZSAiemFsb243eHguaCIKKyNlbmRpZgorCiAj
aW5jbHVkZSAibmNyNTNjOHh4LmgiCiAKIC8qCkBAIC0zODMsNiArNDAxLDggQEAKIAlzdHJ1Y3Qg
U2NzaV9Ib3N0ICpob3N0LCBzdHJ1Y3Qgc2NzaV9kZXZpY2UgKmRldmxpc3QpOwogc3RhdGljIHZv
aWQgbmNyNTNjOHh4X2ludHIoaW50IGlycSwgdm9pZCAqZGV2X2lkLCBzdHJ1Y3QgcHRfcmVncyAq
IHJlZ3MpOwogc3RhdGljIHZvaWQgbmNyNTNjOHh4X3RpbWVvdXQodW5zaWduZWQgbG9uZyBucCk7
CitzdGF0aWMgaW50IG5jcjUzYzh4eF9wcm9jX2luZm8oY2hhciAqYnVmZmVyLCBjaGFyICoqc3Rh
cnQsIG9mZl90IG9mZnNldCwKKwkJCWludCBsZW5ndGgsIGludCBob3N0bm8sIGludCBmdW5jKTsK
IAogI2RlZmluZSBpbml0dmVyYm9zZSAoZHJpdmVyX3NldHVwLnZlcmJvc2UpCiAjZGVmaW5lIGJv
b3R2ZXJib3NlIChucC0+dmVyYm9zZSkKQEAgLTQ1NCw3ICs0NzQsOCBAQAogI2RlZmluZQlTSVJf
UkVTRUxfQkFEX0lfVF9MCSgxNSkKICNkZWZpbmUJU0lSX1JFU0VMX0JBRF9JX1RfTF9RCSgxNikK
ICNkZWZpbmUJU0lSX0RPTkVfT1ZFUkZMT1cJKDE3KQotI2RlZmluZQlTSVJfTUFYCQkJKDE3KQor
I2RlZmluZQlTSVJfSU5URkxZCQkoMTgpCisjZGVmaW5lCVNJUl9NQVgJCQkoMTgpCiAKIC8qPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog
KioKQEAgLTYyNiw2ICs2NDcsMTUgQEAKIAkqKgluZWdvdGlhdGlvbiBvZiB3aWRlIGFuZCBzeW5j
aCB0cmFuc2ZlciBhbmQgZGV2aWNlIHF1aXJrcy4KIAkqKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAkqLworI2lmZGVmIFND
U0lfTkNSX0JJR19FTkRJQU4KKy8qMCovCXVfc2hvcnQJcGVyaW9kOworLyoyKi8JdV9jaGFyCXN2
YWw7CisvKjMqLwl1X2NoYXIJbWluc3luYzsKKy8qMCovCXVfY2hhcgl3dmFsOworLyoxKi8JdV9j
aGFyCXdpZGVkb25lOworLyoyKi8JdV9jaGFyCXF1aXJrczsKKy8qMyovCXVfY2hhcgltYXhvZmZz
OworI2Vsc2UKIC8qMCovCXVfY2hhcgltaW5zeW5jOwogLyoxKi8JdV9jaGFyCXN2YWw7CiAvKjIq
Lwl1X3Nob3J0CXBlcmlvZDsKQEAgLTYzMyw2ICs2NjMsNyBAQAogLyoxKi8JdV9jaGFyCXF1aXJr
czsKIC8qMiovCXVfY2hhcgl3aWRlZG9uZTsKIC8qMyovCXVfY2hhcgl3dmFsOworI2VuZGlmCiAK
ICNpZmRlZiBTQ1NJX05DUl9JTlRFR1JJVFlfQ0hFQ0tJTkcKIAl1X2NoYXIgCWljX21pbl9zeW5j
OwpAQCAtODQzLDEwICs4NzQsMTcgQEAKIC8qCiAqKglMYXN0IGZvdXIgYnl0ZXMgKGhvc3QpCiAq
LworI2lmZGVmCVNDU0lfTkNSX0JJR19FTkRJQU4KKyNkZWZpbmUgIGFjdHVhbHF1aXJrcyAgcGh5
cy5oZWFkZXIuc3RhdHVzWzNdCisjZGVmaW5lICBob3N0X3N0YXR1cyAgIHBoeXMuaGVhZGVyLnN0
YXR1c1syXQorI2RlZmluZSAgc2NzaV9zdGF0dXMgICBwaHlzLmhlYWRlci5zdGF0dXNbMV0KKyNk
ZWZpbmUgIHBhcml0eV9zdGF0dXMgcGh5cy5oZWFkZXIuc3RhdHVzWzBdCisjZWxzZQogI2RlZmlu
ZSAgYWN0dWFscXVpcmtzICBwaHlzLmhlYWRlci5zdGF0dXNbMF0KICNkZWZpbmUgIGhvc3Rfc3Rh
dHVzICAgcGh5cy5oZWFkZXIuc3RhdHVzWzFdCiAjZGVmaW5lICBzY3NpX3N0YXR1cyAgIHBoeXMu
aGVhZGVyLnN0YXR1c1syXQogI2RlZmluZSAgcGFyaXR5X3N0YXR1cyBwaHlzLmhlYWRlci5zdGF0
dXNbM10KKyNlbmRpZgogCiAvKgogKioJRmlyc3QgZm91ciBieXRlcyAoc2NyaXB0KQpAQCAtMTAz
MCw4ICsxMDY4LDggQEAKIAkqKgliZSB1c2VkIGZvciBwcm9iaW5nIGFkYXB0ZXIgaW1wbGVtZW50
YXRpb24gZGlmZmVyZW5jZXMuCiAJKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAJKi8KLQl1X2NoYXIJc3Zfc2NudGwwLCBz
dl9zY250bDMsIHN2X2Rtb2RlLCBzdl9kY250bCwgc3ZfY3Rlc3QzLCBzdl9jdGVzdDQs
Ci0JCXN2X2N0ZXN0NSwgc3ZfZ3BjbnRsLCBzdl9zdGVzdDIsIHN2X3N0ZXN0NDsKKwl1X2NoYXIJ
c3Zfc2NudGwwLCBzdl9zY250bDMsIHN2X2Rtb2RlLCBzdl9kY250bCwgc3ZfY3Rlc3QwLCBzdl9j
dGVzdDMsCisJCXN2X2N0ZXN0NCwgc3ZfY3Rlc3Q1LCBzdl9ncGNudGwsIHN2X3N0ZXN0Miwgc3Zf
c3Rlc3Q0OwogCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAJKioJQWN0dWFsIGluaXRpYWwgdmFsdWUgb2YgSU8gcmVn
aXN0ZXIgYml0cyB1c2VkIGJ5IHRoZSAKQEAgLTEwMzksOCArMTA3Nyw4IEBACiAJKioJZmVhdHVy
ZXMgdGhhdCBhcmUgdG8gYmUgZW5hYmxlZC4KIAkqKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAkqLwotCXVfY2hhcglydl9z
Y250bDAsIHJ2X3NjbnRsMywgcnZfZG1vZGUsIHJ2X2RjbnRsLCBydl9jdGVzdDMsIHJ2X2N0ZXN0
NCwgCi0JCXJ2X2N0ZXN0NSwgcnZfc3Rlc3QyOworCXVfY2hhcglydl9zY250bDAsIHJ2X3NjbnRs
MywgcnZfZG1vZGUsIHJ2X2RjbnRsLCBydl9jdGVzdDAsIHJ2X2N0ZXN0MywKKwlydl9jdGVzdDQs
IHJ2X2N0ZXN0NSwgcnZfc3Rlc3QyOwogCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAJKioJVGFyZ2V0cyBtYW5hZ2Vt
ZW50LgpAQCAtMTE2Miw3ICsxMjAwLDcgQEAKIAkqLwogCXN0cnVjdCBjY2IJKmNjYjsJCS8qIEds
b2JhbCBDQ0IJCQkqLwogCXN0cnVjdCB1c3JjbWQJdXNlcjsJCS8qIENvbW1hbmQgZnJvbSB1c2Vy
CQkqLwotCXVfY2hhcgkJcmVsZWFzZV9zdGFnZTsJLyogU3luY2hyb25pc2F0aW9uIHN0YWdlIG9u
IHJlbGVhc2UgICovCisJdm9sYXRpbGUgdV9jaGFyCXJlbGVhc2Vfc3RhZ2U7CS8qIFN5bmNocm9u
aXNhdGlvbiBzdGFnZSBvbiByZWxlYXNlICAqLwogCiAjaWZkZWYgU0NTSV9OQ1JfSU5URUdSSVRZ
X0NIRUNLSU5HCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMjAxLDYgKzEyMzksMjMgQEAKICovCiAKIC8qCisq
KglGb3IgSFAgWmFsb24vNTNjNzIwIHN5c3RlbXMsIHRoZSBaYWxvbiBpbnRlcmZhY2UKKyoqCWJl
dHdlZW4gQ1BVIGFuZCA1M2M3MjAgZG9lcyBwcmVmZXRjaGVzLCB3aGljaCBjYXVzZXMKKyoqCXBy
b2JsZW1zIHdpdGggc2VsZiBtb2RpZnlpbmcgc2NyaXB0cy4gIFRoZSBwcm9ibGVtCisqKglpcyBv
dmVyY29tZSBieSBjYWxsaW5nIGEgZHVtbXkgc3Vicm91dGluZSBhZnRlciBlYWNoCisqKgltb2Rp
ZmljYXRpb24sIHRvIGZvcmNlIGEgcmVmZXRjaCBvZiB0aGUgc2NyaXB0IG9uCisqKglyZXR1cm4g
ZnJvbSB0aGUgc3Vicm91dGluZS4KKyovCisKKyNpZmRlZiBFTkFCTEVfU0NTSV9aQUxPTgorI2Rl
ZmluZSBQUkVGRVRDSF9GTFVTSF9DTlQJMgorI2RlZmluZQlQUkVGRVRDSF9GTFVTSAkJU0NSX0NB
TEwsIFBBRERSSCAod2FpdF9kbWEpLAorI2Vsc2UKKyNkZWZpbmUgUFJFRkVUQ0hfRkxVU0hfQ05U
CTAKKyNkZWZpbmUgUFJFRkVUQ0hfRkxVU0gKKyNlbmRpZgorCisvKgogKioJU2NyaXB0IGZyYWdt
ZW50cyB3aGljaCBhcmUgbG9hZGVkIGludG8gdGhlIG9uLWNoaXAgUkFNIAogKioJb2YgODI1QSwg
ODc1IGFuZCA4OTUgY2hpcHMuCiAqLwpAQCAtMTIwOCw3ICsxMjYzLDcgQEAKIAluY3JjbWQJc3Rh
cnQJCVsgIDVdOwogCW5jcmNtZCAgc3RhcnRwb3MJWyAgMV07CiAJbmNyY21kCXNlbGVjdAkJWyAg
Nl07Ci0JbmNyY21kCXNlbGVjdDIJCVsgIDldOworCW5jcmNtZAlzZWxlY3QyCQlbICA5ICsgUFJF
RkVUQ0hfRkxVU0hfQ05UXTsKIAluY3JjbWQJbG9hZHBvcwkJWyAgNF07CiAJbmNyY21kCXNlbmRf
aWRlbnQJWyAgOV07CiAJbmNyY21kCXByZXBhcmUJCVsgIDZdOwpAQCAtMTIyNCw3ICsxMjc5LDcg
QEAKIAluY3JjbWQJc2V0bXNnCQlbICA3XTsKIAluY3JjbWQJY2xlYW51cAkJWyAgNl07CiAJbmNy
Y21kICBjb21wbGV0ZQlbICA5XTsKLQluY3JjbWQJY2xlYW51cF9vawlbICA4XTsKKwluY3JjbWQJ
Y2xlYW51cF9vawlbICA4ICsgUFJFRkVUQ0hfRkxVU0hfQ05UXTsKIAluY3JjbWQJY2xlYW51cDAJ
WyAgMV07CiAjaWZuZGVmIFNDU0lfTkNSX0NDQl9ET05FX1NVUFBPUlQKIAluY3JjbWQJc2lnbmFs
CQlbIDEyXTsKQEAgLTEyNDIsMTEgKzEyOTcsMTEgQEAKIAluY3JjbWQgIGlkbGUJCVsgIDJdOwog
CW5jcmNtZAlyZXNlbGVjdAlbICA4XTsKIAluY3JjbWQJcmVzZWxlY3RlZAlbICA4XTsKLQluY3Jj
bWQJcmVzZWxfZHNhCVsgIDZdOworCW5jcmNtZAlyZXNlbF9kc2EJWyAgNiArIFBSRUZFVENIX0ZM
VVNIX0NOVF07CiAJbmNyY21kCWxvYWRwb3MxCVsgIDRdOwogCW5jcmNtZCAgcmVzZWxfbHVuCVsg
IDZdOwogCW5jcmNtZAlyZXNlbF90YWcJWyAgNl07Ci0JbmNyY21kCWp1bXBfdG9fbmV4dXMJWyAg
NF07CisJbmNyY21kCWp1bXBfdG9fbmV4dXMJWyAgNCArIFBSRUZFVENIX0ZMVVNIX0NOVF07CiAJ
bmNyY21kCW5leHVzX2luZGlyZWN0CVsgIDRdOwogCW5jcmNtZAlyZXNlbF9ub3RhZwlbICA0XTsK
IAluY3JjbWQgIGRhdGFfaW4JCVtNQVhfU0NBVFRFUkwgKiA0XTsKQEAgLTEyNjcsNyArMTMyMiw3
IEBACiAjZW5kaWYKIAluY3JjbWQJc2VsZWN0X25vX2F0bglbICA4XTsKIAluY3JjbWQJY2FuY2Vs
CQlbICA0XTsKLQluY3JjbWQJc2tpcAkJWyAgOV07CisJbmNyY21kCXNraXAJCVsgIDkgKyBQUkVG
RVRDSF9GTFVTSF9DTlRdOwogCW5jcmNtZAlza2lwMgkJWyAxOV07CiAJbmNyY21kCXBhcl9lcnJf
ZGF0YV9pbglbICA2XTsKIAluY3JjbWQJcGFyX2Vycl9vdGhlcglbICA0XTsKQEAgLTEzMDAsOSAr
MTM1NSwxMCBAQAogCW5jcmNtZAliYWRfaV90X2xfcQlbICA0XTsKIAluY3JjbWQJYmFkX3Rhcmdl
dAlbICA4XTsKIAluY3JjbWQJYmFkX3N0YXR1cwlbICA4XTsKLQluY3JjbWQJc3RhcnRfcmFtCVsg
IDRdOworCW5jcmNtZAlzdGFydF9yYW0JWyAgNCArIFBSRUZFVENIX0ZMVVNIX0NOVF07
CiAJbmNyY21kCXN0YXJ0X3JhbTAJWyAgNF07CiAJbmNyY21kCXN0b19yZXN0YXJ0CVsgIDVdOwor
CW5jcmNtZAl3YWl0X2RtYQlbICAyXTsKIAluY3JjbWQJc25vb3B0ZXN0CVsgIDldOwogCW5jcmNt
ZAlzbm9vcGVuZAlbICAyXTsKIH07CkBAIC0xMzI4LDYgKzEzODQsNyBAQAogc3RhdGljCXZvaWQJ
bmNyX2dldGNsb2NrCShuY2JfcCBucCwgaW50IG11bHQpOwogc3RhdGljCXZvaWQJbmNyX3NlbGVj
dGNsb2NrCShuY2JfcCBucCwgdV9jaGFyIHNjbnRsMyk7CiBzdGF0aWMJY2NiX3AJbmNyX2dldF9j
Y2IJKG5jYl9wIG5wLCB1X2NoYXIgdG4sIHVfY2hhciBsbik7CitzdGF0aWMgIHZvaWQJbmNyX2No
aXBfcmVzZXQJKG5jYl9wIG5wLCBpbnQgZGVsYXkpOwogc3RhdGljCXZvaWQJbmNyX2luaXQJKG5j
Yl9wIG5wLCBpbnQgcmVzZXQsIGNoYXIgKiBtc2csIHVfbG9uZyBjb2RlKTsKIHN0YXRpYwlpbnQJ
bmNyX2ludF9zYm1jCShuY2JfcCBucCk7CiBzdGF0aWMJaW50CW5jcl9pbnRfcGFyCShuY2JfcCBu
cCk7CkBAIC0xNTI3LDYgKzE1ODQsMTAgQEAKIAkJUkFERFIgKGRzYSksCiAJCVBBRERSIChsb2Fk
cG9zKSwKIAkvKgorCSoqCUZsdXNoIHNjcmlwdCBwcmVmZXRjaCBpZiByZXF1aXJlZAorCSovCisJ
UFJFRkVUQ0hfRkxVU0gKKwkvKgogCSoqCXRoZW4gd2UgZG8gdGhlIGFjdHVhbCBjb3B5LgogCSov
CiAJU0NSX0NPUFkgKHNpemVvZiAoc3RydWN0IGhlYWQpKSwKQEAgLTE4MjcsNiArMTg4OCwxMCBA
QAogCVNDUl9DT1BZX0YgKDQpLAogCQlSQUREUiAoZHNhKSwKIAkJUEFERFIgKGNsZWFudXAwKSwK
KwkvKgorCSoqCUZsdXNoIHNjcmlwdCBwcmVmZXRjaCBpZiByZXF1aXJlZAorCSovCisJUFJFRkVU
Q0hfRkxVU0gKIAlTQ1JfQ09QWSAoc2l6ZW9mIChzdHJ1Y3QgaGVhZCkpLAogCQlOQUREUiAoaGVh
ZGVyKSwKIH0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08IENMRUFOVVAwID4tLS0tLS0tLS0t
LS0tLS0tLS0tLSovLHsKQEAgLTE4NTYsOCArMTkyMSwxMyBAQAogCS8qCiAJKioJLi4uIHNpZ25h
bCBjb21wbGV0aW9uIHRvIHRoZSBob3N0CiAJKi8KKyNpZmRlZiBTSU1VTEFURURfSU5URkxZCisJ
U0NSX0lOVCwKKwkJU0lSX0lOVEZMWSwKKyNlbHNlCiAJU0NSX0lOVF9GTFksCiAJCTAsCisjZW5k
aWYKIAkvKgogCSoqCUF1ZiB6dSBuZXVlbiBTY2hhbmR0YXRlbiEKIAkqLwpAQCAtMTg3Niw4ICsx
OTQ2LDEzIEBACiAJU0NSX0lOVCwKIAkJU0lSX0RPTkVfT1ZFUkZMT1csCiB9LyotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS08IERPTkVfRU5EID4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLyx7CisjaWZk
ZWYgU0lNVUxBVEVEX0lOVEZMWQorCVNDUl9JTlQsCisJCVNJUl9JTlRGTFksCisjZWxzZQogCVND
Ul9JTlRfRkxZLAogCQkwLAorI2VuZGlmCiAJU0NSX0NPUFkgKDQpLAogCQlSQUREUiAodGVtcCks
CiAJCVBBRERSIChkb25lX3BvcyksCkBAIC0yMDU1LDYgKzIxMzAsMTAgQEAKIAkJUkFERFIgKGRz
YSksCiAJCVBBRERSIChsb2FkcG9zMSksCiAJLyoKKwkqKglGbHVzaCBzY3JpcHQgcHJlZmV0Y2gg
aWYgcmVxdWlyZWQKKwkqLworCVBSRUZFVENIX0ZMVVNICisJLyoKIAkqKgl0aGVuIHdlIGRvIHRo
ZSBhY3R1YWwgY29weS4KIAkqLwogCVNDUl9DT1BZIChzaXplb2YgKHN0cnVjdCBoZWFkKSksCkBA
IC0yMTE2LDYgKzIxOTUsMTAgQEAKIAlTQ1JfQ09QWV9GICg0KSwKIAkJUkFERFIgKHRlbXApLAog
CQlQQUREUiAobmV4dXNfaW5kaXJlY3QpLAorCS8qCisJKioJRmx1c2ggc2NyaXB0IHByZWZldGNo
IGlmIHJlcXVpcmVkCisJKi8KKwlQUkVGRVRDSF9GTFVTSAogCVNDUl9DT1BZICg0KSwKIH0vKi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08IE5FWFVTX0lORElSRUNUID4tLS0tLS0tLS0tLS0tLS0t
LS0tKi8sewogCQkwLApAQCAtMjI3Miw2ICsyMzU1LDEwIEBACiAJCVJBRERSIChkc2EpLAogCQlQ
QUREUkggKHNraXAyKSwKIAkvKgorCSoqCUZsdXNoIHNjcmlwdCBwcmVmZXRjaCBpZiByZXF1aXJl
ZAorCSovCisJUFJFRkVUQ0hfRkxVU0gKKwkvKgogCSoqCXRoZW4gd2UgZG8gdGhlIGFjdHVhbCBj
b3B5LgogCSovCiAJU0NSX0NPUFkgKHNpemVvZiAoc3RydWN0IGhlYWQpKSwKQEAgLTI3ODIsNiAr
Mjg2OSwxMCBAQAogCVNDUl9DT1BZX0YgKDQpLAogCQlSQUREUiAoc2NyYXRjaGEpLAogCQlQQURE
UkggKHN0YXJ0X3JhbTApLAorCS8qCisJKioJRmx1c2ggc2NyaXB0IHByZWZldGNoIGlmIHJlcXVp
cmVkCisJKi8KKwlQUkVGRVRDSF9GTFVTSAogCVNDUl9DT1BZIChzaXplb2YgKHN0cnVjdCBzY3Jp
cHQpKSwKIH0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08IFNUQVJUX1JBTTAgPi0tLS0tLS0t
LS0tLS0tLS0tLS0tKi8sewogCQkwLApAQCAtMjc5OSw2ICsyODkwLDE3IEBACiAJCVBBRERSIChz
dGFydHBvcyksCiAJU0NSX0pVTVAsCiAJCVBBRERSIChzdGFydCksCit9LyotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tPCBXQUlUX0RNQSA+LS0tLS0tLS0tLS0tLS0tLS0tLSovLHsKKwkvKgorCSoq
CUZvciBIUCBaYWxvbi81M2M3MjAgc3lzdGVtcywgdGhlIFphbG9uIGludGVyZmFjZQorCSoqCWJl
dHdlZW4gQ1BVIGFuZCA1M2M3MjAgZG9lcyBwcmVmZXRjaGVzLCB3aGljaCBjYXVzZXMKKwkqKglw
cm9ibGVtcyB3aXRoIHNlbGYgbW9kaWZ5aW5nIHNjcmlwdHMuICBUaGUgcHJvYmxlbQorCSoqCWlz
IG92ZXJjb21lIGJ5IGNhbGxpbmcgYSBkdW1teSBzdWJyb3V0aW5lIGFmdGVyIGVhY2gKKwkqKglt
b2RpZmljYXRpb24sIHRvIGZvcmNlIGEgcmVmZXRjaCBvZiB0aGUgc2NyaXB0IG9uCisJKioJcmV0
dXJuIGZyb20gdGhlIHN1YnJvdXRpbmUuCisJKi8KKwlTQ1JfUkVUVVJOLAorCQkwLAogfS8qLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLTwgU05PT1BURVNUID4tLS0tLS0tLS0tLS0tLS0tLS0tKi8s
ewogCS8qCiAJKioJUmVhZCB0aGUgdmFyaWFibGUuCkBAIC0zMTMyLDkgKzMyMzQsMTIgQEAKICNk
ZWZpbmUgYnVyc3RfbGVuZ3RoKGJjKSAoIShiYykpPyAwIDogMSA8PCAoYmMpCiAKIC8qCi0gKglC
dXJzdCBjb2RlIGZyb20gaW8gcmVnaXN0ZXIgYml0cy4KKyAqCUJ1cnN0IGNvZGUgZnJv
bSBpbyByZWdpc3RlciBiaXRzLiAgQnVyc3QgZW5hYmxlIGlzIGN0ZXN0MCBmb3IgYzcyMCwKKyAq
CWN0ZXN0NCBmb3Igb3RoZXJzLgogICovCi0jZGVmaW5lIGJ1cnN0X2NvZGUoZG1vZGUsIGN0ZXN0
NCwgY3Rlc3Q1KSBcCisjZGVmaW5lIGJ1cnN0X2NvZGUoZG1vZGUsIGN0ZXN0MCwgY3Rlc3Q0LCBj
dGVzdDUpIFwKKwkobnAtPmRldmljZV9pZCA9PSBQU0VVRE9fWkFMT05fNzIwX0lEKSA/IFwKKwko
Y3Rlc3QwKSAmIDB4ODA/IDAgOiAoKChkbW9kZSkgJiAweGMwKSA+PiA2KSArIDEgOiBcCiAJKGN0
ZXN0NCkgJiAweDgwPyAwIDogKCgoZG1vZGUpICYgMHhjMCkgPj4gNikgKyAoKGN0ZXN0NSkgJiAw
eDA0KSArIDEKIAogLyoKQEAgLTMxNDIsMTIgKzMyNDcsMTUgQEAKICAqLwogc3RhdGljIGlubGlu
ZSB2b2lkIG5jcl9pbml0X2J1cnN0KG5jYl9wIG5wLCB1X2NoYXIgYmMpCiB7Ci0JbnAtPnJ2X2N0
ZXN0NAkmPSB+MHg4MDsKKwl1X2NoYXIgKmJlID0gKG5wLT5kZXZpY2VfaWQgPT0gUFNFVURPX1pB
TE9OXzcyMF9JRCkgPworCQkmbnAtPnJ2X2N0ZXN0MCA6ICZucC0+cnZfY3Rlc3Q0OworCisJKmJl
CQkmPSB+MHg4MDsKIAlucC0+cnZfZG1vZGUJJj0gfigweDMgPDwgNik7CiAJbnAtPnJ2X2N0ZXN0
NQkmPSB+MHg0OwogCiAJaWYgKCFiYykgewotCQlucC0+cnZfY3Rlc3Q0CXw9IDB4ODA7CisJCSpi
ZQkJfD0gMHg4MDsKIAl9CiAJZWxzZSB7CiAJCS0tYmM7CkBAIC0zMjI0LDYgKzMzMzIsNyBAQAog
CW5wLT5zdl9zY250bDMJPSBJTkIobmNfc2NudGwzKSAmIDB4MDc7CiAJbnAtPnN2X2Rtb2RlCT0g
SU5CKG5jX2Rtb2RlKSAgJiAweGNlOwogCW5wLT5zdl9kY250bAk9IElOQihuY19kY250bCkgICYg
MHhhODsKKwlucC0+c3ZfY3Rlc3QwCT0gSU5CKG5jX2N0ZXN0MCkgJiAweDg0OwogCW5wLT5zdl9j
dGVzdDMJPSBJTkIobmNfY3Rlc3QzKSAmIDB4MDE7CiAJbnAtPnN2X2N0ZXN0NAk9IElOQihuY19j
dGVzdDQpICYgMHg4MDsKIAlucC0+c3ZfY3Rlc3Q1CT0gSU5CKG5jX2N0ZXN0NSkgJiAweDI0OwpA
QCAtMzMxMCwxMCArMzQxOSwxMSBAQAogCW5wLT5ydl9zY250bDAJPSBucC0+c3Zfc2NudGwwOwog
CW5wLT5ydl9kbW9kZQk9IG5wLT5zdl9kbW9kZTsKIAlucC0+cnZfZGNudGwJPSBucC0+c3ZfZGNu
dGw7CisJbnAtPnJ2X2N0ZXN0MAk9IG5wLT5zdl9jdGVzdDA7CiAJbnAtPnJ2X2N0ZXN0Mwk9IG5w
LT5zdl9jdGVzdDM7CiAJbnAtPnJ2X2N0ZXN0NAk9IG5wLT5zdl9jdGVzdDQ7CiAJbnAtPnJ2X2N0
ZXN0NQk9IG5wLT5zdl9jdGVzdDU7Ci0JYnVyc3RfbWF4CT0gYnVyc3RfY29kZShucC0+c3ZfZG1v
ZGUsIG5wLT5zdl9jdGVzdDQsIG5wLT5zdl9jdGVzdDUpOworCWJ1cnN0X21heAk9IGJ1cnN0X2Nv
ZGUobnAtPnN2X2Rtb2RlLCBucC0+c3ZfY3Rlc3QwLCBucC0+c3ZfY3Rlc3Q0LCBucC0+c3ZfY3Rl
c3Q1KTsKICNlbHNlCiAKIAkvKgpAQCAtMzMyMSw3ICszNDMxLDcgQEAKIAkqLwogCWJ1cnN0X21h
eAk9IGRyaXZlcl9zZXR1cC5idXJzdF9tYXg7CiAJaWYgKGJ1cnN0X21heCA9PSAyNTUpCi0JCWJ1
cnN0X21heCA9IGJ1cnN0X2NvZGUobnAtPnN2X2Rtb2RlLCBucC0+c3ZfY3Rlc3Q0LCBucC0+c3Zf
Y3Rlc3Q1KTsKKwkJYnVyc3RfbWF4ID0gYnVyc3RfY29kZShucC0+c3ZfZG1vZGUsIG5wLT5zdl9j
dGVzdDAsIG5wLT5zdl9jdGVzdDQsIG5wLT5zdl9jdGVzdDUpOwogCWlmIChidXJzdF9tYXggPiA3
KQogCQlidXJzdF9tYXggPSA3OwogCWlmIChidXJzdF9tYXggPiBucC0+bWF4YnVyc3QpCkBAIC0z
MzQ0LDYgKzM0NTQsMTIgQEAKIAkJbnAtPnJ2X2N0ZXN0Mwl8PSBXUklFOwkvKiBXcml0ZSBhbmQg
SW52YWxpZGF0ZSAqLwogCWlmIChucC0+ZmVhdHVyZXMgJiBGRV9ERlMpCiAJCW5wLT5ydl9jdGVz
dDUJfD0gREZTOwkJLyogRG1hIEZpZm8gU2l6ZSAqLworCWlmIChucC0+ZmVhdHVyZXMgJiBGRV9N
VVgpCisJCW5wLT5ydl9jdGVzdDQJfD0gTVVYOwkJLyogSG9zdCBidXMgbXVsdGlwbGV4IG1vZGUg
Ki8KKwlpZiAobnAtPmZlYXR1cmVzICYgRkVfRUEpCisJCW5wLT5ydl9kY250bAl8PSBFQTsJCS8q
IEVuYWJsZSBBQ0sgKi8KKwlpZiAobnAtPmZlYXR1cmVzICYgRkVfRUhQKQorCQlucC0+cnZfY3Rl
c3QwCXw9IEVIUDsJCS8qIEV2ZW4gaG9zdCBwYXJpdHkgKi8KIAogCS8qCiAJKioJU2VsZWN0IHNv
bWUgb3RoZXIKQEAgLTM1MjMsNiArMzYzOSw3IEBACiAJcmV0dXJuIDA7CiB9CiAKKwogLyoKICoq
CUhvc3QgYXR0YWNoIGFuZCBpbml0aWFsaXNhdGlvbnMuCiAqKgpAQCAtMzU0Myw2ICszNjYwLDcg
QEAKIAluY3JfbnZyYW0gKm52cmFtID0gZGV2aWNlLT5udnJhbTsKIAlpbnQgaTsKIAorI2lmbmRl
ZiBFTkFCTEVfU0NTSV9aQUxPTgogCXByaW50ayhLRVJOX0lORk8gIm5jcjUzYyVzLSVkOiByZXYg
MHgleCBvbiBwY2kgYnVzICVkIGRldmljZSAlZCBmdW5jdGlvbiAlZCAiCiAjaWZkZWYgX19zcGFy
Y19fCiAJCSJpcnEgJXNcbiIsCkBAIC0zNTU3LDYgKzM2NzUsNyBAQAogI2Vsc2UKIAkJZGV2aWNl
LT5zbG90LmlycSk7CiAjZW5kaWYKKyNlbmRpZgogCiAJLyoKIAkqKglBbGxvY2F0ZSBob3N0X2Rh
dGEgc3RydWN0dXJlCkBAIC0zNjQ1LDcgKzM3NjQsNiBAQAogCSoqCU5vdyB0aGUgSU5CIElOVyBJ
TkwgT1VUQiBPVVRXIE9VVEwgbWFjcm9zCiAJKioJY2FuIGJlIHVzZWQgc2FmZWx5LgogCSovCi0K
IAlucC0+cmVnID0gKHN0cnVjdCBuY3JfcmVnKikgbnAtPnZhZGRyOwogCiAjZW5kaWYgLyogIWRl
ZmluZWQgU0NTSV9OQ1JfSU9NQVBQRUQgKi8KQEAgLTM2NTQsNyArMzc3Miw5IEBACiAJKioJVHJ5
IHRvIG1hcCB0aGUgY29udHJvbGxlciBjaGlwIGludG8gaW9zcGFjZS4KIAkqLwogCisjaWZuZGVm
IEVOQUJMRV9TQ1NJX1pBTE9OCiAJcmVxdWVzdF9yZWdpb24oZGV2aWNlLT5zbG90LmlvX3BvcnQs
IDEyOCwgIm5jcjUzYzh4eCIpOworI2VuZGlmCiAJbnAtPmJhc2VfaW8gPSBkZXZpY2UtPnNsb3Qu
aW9fcG9ydDsKIAogI2lmZGVmIFNDU0lfTkNSX05WUkFNX1NVUFBPUlQKQEAgLTM3NjgsOSArMzg4
OCw3IEBACiAJKioJUmVzZXQgY2hpcC4KIAkqLwogCi0JT1VUQiAobmNfaXN0YXQsICBT
UlNUKTsKLQlVREVMQVkgKDEwMCk7Ci0JT1VUQiAobmNfaXN0YXQsICAwICAgKTsKKwluY3JfY2hp
cF9yZXNldChucCwgMTAwKTsKIAogCS8qCiAJKioJTm93IGNoZWNrIHRoZSBjYWNoZSBoYW5kbGlu
ZyBvZiB0aGUgcGNpIGNoaXBzZXQuCkBAIC0zODg3LDcgKzQwMDUsOSBAQAogI2lmZGVmIERFQlVH
X05DUjUzQzhYWAogCQlwcmludGsoS0VSTl9ERUJVRyAiJXM6IHJlbGVhc2luZyBJTyByZWdpb24g
JXhbJWRdXG4iLCBuY3JfbmFtZShucCksIG5wLT5iYXNlX2lvLCAxMjgpOwogI2VuZGlmCisjaWZu
ZGVmIEVOQUJMRV9TQ1NJX1pBTE9OCiAJCXJlbGVhc2VfcmVnaW9uKG5wLT5iYXNlX2lvLCAxMjgp
OworI2VuZGlmCiAJfQogCWlmIChucC0+aXJxKSB7CiAjaWZkZWYgREVCVUdfTkNSNTNDOFhYCkBA
IC0zOTEyLDcgKzQwMzIsNyBAQAogCXNjc2lfdW5yZWdpc3RlcihpbnN0YW5jZSk7CiAKICAgICAg
ICAgcmV0dXJuIC0xOwotIH0KK30KIAogCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTQ2OTksOSArNDgxOSw3IEBACiAJCQki
Y29tbWFuZCBwcm9jZXNzaW5nIHN1c3BlbmRlZCBmb3IgJWQgc2Vjb25kc1xuIiwKIAkJCW5jcl9u
YW1lKG5wKSwgc2V0dGxlX2RlbGF5KTsKIAotCU9VVEIgKG5jX2lzdGF0LCBTUlNUKTsKLQlVREVM
QVkgKDEwMCk7Ci0JT1VUQiAobmNfaXN0YXQsIDApOworCW5jcl9jaGlwX3Jlc2V0KG5wLCAxMDAp
OwogCVVERUxBWSAoMjAwMCk7CS8qIFRoZSA4OTUgbmVlZHMgdGltZSBmb3IgdGhlIGJ1cyBtb2Rl
IHRvIHNldHRsZSAqLwogCWlmIChlbmFiX2ludCkKIAkJT1VUVyAobmNfc2llbiwgUlNUKTsKQEAg
LTQ3MTAsNyArNDgyOCw4IEBACiAJKioJcHJvcGVybHkgc2V0IElSUSBtb2RlLCBwcmlvciB0byBy
ZXNldHRpbmcgdGhlIGJ1cy4KIAkqLwogCU9VVEIgKG5jX3N0ZXN0MywgVEUpOwotCU9VVEIgKG5j
X2RjbnRsLCAobnAtPnJ2X2RjbnRsICYgSVJRTSkpOworCWlmIChucC0+ZGV2aWNlX2lkICE9IFBT
RVVET19aQUxPTl83MjBfSUQpCisJCU9VVEIgKG5jX2RjbnRsLCAobnAtPnJ2X2RjbnRsICYgSVJR
TSkpOwogCU9VVEIgKG5jX3NjbnRsMSwgQ1JTVCk7CiAJVURFTEFZICgyMDApOwogCkBAIC00OTE3
LDYgKzUwMzYsMTAgQEAKIAlsY2JfcCBscDsKIAlpbnQgdGFyZ2V0LCBsdW47CiAJaW50IGk7CisJ
Y2hhciBpbnN0X25hbWVbMTZdOworCisJLyogTG9jYWwgY29weSBzbyB3ZSBkb24ndCBhY2Nlc3Mg
bnAgYWZ0ZXIgZnJlZWluZyBpdCEgKi8KKwlzdHJuY3B5KGluc3RfbmFtZSwgbmNyX25hbWUobnAp
LCAxNik7CiAKIAlwcmludGsoIiVzOiByZWxlYXNpbmcgaG9zdCByZXNvdXJjZXNcbiIsIG5jcl9u
YW1lKG5wKSk7CiAKQEAgLTQ5NjMsMTIgKzUwODYsMTEgQEAKIAkqLwogCiAJcHJpbnRrKCIlczog
cmVzZXR0aW5nIGNoaXBcbiIsIG5jcl9uYW1lKG5wKSk7Ci0JT1VUQiAobmNfaXN0YXQsICBTUlNU
KTsKLQlVREVMQVkgKDEwMCk7Ci0JT1VUQiAobmNfaXN0YXQsICAwICAgKTsKKwluY3JfY2hpcF9y
ZXNldChucCwgMTAwKTsKIAogCU9VVEIobmNfZG1vZGUsCW5wLT5zdl9kbW9kZSk7CiAJT1VUQihu
Y19kY250bCwJbnAtPnN2X2RjbnRsKTsKKwlPVVRCKG5jX2N0ZXN0MCwJbnAtPnN2X2N0ZXN0MCk7
CiAJT1VUQihuY19jdGVzdDMsCW5wLT5zdl9jdGVzdDMpOwogCU9VVEIobmNfY3Rlc3Q0LAlucC0+
c3ZfY3Rlc3Q0KTsKIAlPVVRCKG5jX2N0ZXN0NSwJbnAtPnN2X2N0ZXN0NSk7CkBAIC00OTkxLDcg
KzUxMTMsOSBAQAogI2lmZGVmIERFQlVHX05DUjUzQzhYWAogCXByaW50aygiJXM6IHJlbGVhc2lu
ZyBJTyByZWdpb24gJXhbJWRdXG4iLCBuY3JfbmFtZShucCksIG5wLT5iYXNlX2lvLCAxMjgpOwog
I2VuZGlmCisjaWZuZGVmIEVOQUJMRV9TQ1NJX1pBTE9OCiAJcmVsZWFzZV9yZWdpb24obnAtPmJh
c2VfaW8sIDEyOCk7CisjZW5kaWYKIAogCS8qCiAJKioJRnJlZSBhbGxvY2F0ZWQgY2NiKHMpCkBA
IC01MDM2LDcgKzUxNjAsNyBAQAogCQltX2ZyZWVfZG1hKG5wLT5jY2IsIHNpemVvZihzdHJ1Y3Qg
Y2NiKSwgIkNDQiIpOwogCW1fZnJlZV9kbWEobnAsIHNpemVvZihzdHJ1Y3QgbmNiKSwgIk5DQiIp
OwogCi0JcHJpbnRrKCIlczogaG9zdCByZXNvdXJjZXMgc3VjY2Vzc2Z1bGx5IHJlbGVhc2VkXG4i
LCBuY3JfbmFtZShucCkpOworCXByaW50aygiJXM6IGhvc3QgcmVzb3VyY2VzIHN1Y2Nlc3NmdWxs
eSByZWxlYXNlZFxuIiwgaW5zdF9uYW1lKTsKIAogCXJldHVybiAxOwogfQpAQCAtNTA2MSw3ICs1
MTg1LDYgQEAKIAkvKgogCSoqCVNhbml0eSBjaGVjawogCSovCi0KIAlpZiAoIWNwIHx8IGNwLT5t
YWdpYyAhPSBDQ0JfTUFHSUMgfHwgIWNwLT5jbWQpCiAJCXJldHVybjsKIApAQCAtNTQyOCw2ICs1
NTUxLDI4IEBACiAJfQogfQogCisvKgorKiogUmVzZXQgbmNyIGNoaXAuCisqLworCisvKiBTb21l
IGluaXRpYWxpc2F0aW9uIG11c3QgYmUgZG9uZSBpbW1lZGlhdGVseSBmb2xsb3dpbmcgcmVzZXQs
IGZvciA1M2M3MjAsCisgKiBhdCBsZWFzdC4gIEVBIChkY250bCBiaXQgNSkgaXNuJ3Qgc2V0IGhl
cmUgYXMgaXQgaXMgc2V0IG9uY2Ugb25seSBpbgorICogdGhlIF9kZXRlY3QgZnVuY3Rpb24uCisg
Ki8KKworc3RhdGljIHZvaWQgbmNyX2NoaXBfcmVzZXQobmNiX3AgbnAsIGludCBkZWxheSkKK3sK
KwlPVVRCIChuY19pc3RhdCwgIFNSU1QpOworCVVERUxBWSAoZGVsYXkpOworCU9VVEIgKG5jX2lz
dGF0LCAgMCAgICk7CisKKwlpZiAobnAtPmZlYXR1cmVzICYgRkVfRUhQKQorCQlPVVRCIChuY19j
dGVzdDAsIEVIUCk7CisJaWYgKG5wLT5mZWF0dXJlcyAmIEZFX01VWCkKKwkJT1VUQiAobmNfY3Rl
c3Q0LCBNVVgpOworfQorCisKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQogKioKICoqCkBAIC01NDczLDcgKzU2MTgsNyBAQAogCSov
CiAJbnAtPnNxdWV1ZXB1dCA9IDA7CiAJbnAtPnNjcmlwdDAtPnN0YXJ0cG9zWzBdID0gY3B1X3Rv
X3NjcihOQ0JfU0NSSVBUSF9QSFlTIChucCwgdHJ5bG9vcCkpOwotCisjaWZkZWYgU0NT
SV9OQ1JfQ0NCX0RPTkVfU1VQUE9SVAogCS8qCiAJKioJQ2xlYXIgRG9uZSBRdWV1ZQogCSovCkBA
IC01NDkwLDcgKzU2MzUsNyBAQAogCW5wLT5jY2JfZG9uZV9pYyA9IE1BWF9ET05FLTE7CiAJbnAt
PnNjcmlwdGgwLT5kb25lX3F1ZXVlWzUqKE1BWF9ET05FLTEpICsgNF0gPQogCQkJY3B1X3RvX3Nj
cihOQ0JfU0NSSVBUX1BIWVMgKG5wLCBkb25lX3BsdWcpKTsKLQorI2VuZGlmCiAJLyoKIAkqKglX
YWtldXAgYWxsIHBlbmRpbmcgam9icy4KIAkqLwpAQCAtNTUwMCw4ICs1NjQ1LDEwIEBACiAJKioJ
SW5pdCBjaGlwLgogCSovCiAKLQlPVVRCIChuY19pc3RhdCwgIDB4MDAgICApOwkvKiAgUmVtb3Zl
IFJlc2V0LCBhYm9ydCAqLwotCVVERUxBWSAoMjAwMCk7CS8qIFRoZSA4OTUgbmVlZHMgdGltZSBm
b3IgdGhlIGJ1cyBtb2RlIHRvIHNldHRsZSAqLworCS8qIFJlbW92ZSByZXNldDsgYmlnIGRlbGF5
IGJlY2F1c2UgdGhlIDg5NSBuZWVkcyB0aW1lIGZvciB0aGUKKwkgKiBidXMgbW9kZSB0byBzZXR0
bGUKKwkgKi8KKwluY3JfY2hpcF9yZXNldChucCwgMjAwMCk7CiAKIAlPVVRCIChuY19zY250bDAs
IG5wLT5ydl9zY250bDAgfCAweGMwKTsKIAkJCQkJLyogIGZ1bGwgYXJiLiwgZW5hIHBhcml0eSwg
cGFyLT5BVE4gICovCkBAIC01NTE2LDYgKzU2NjMsNyBAQAogCU9VVEIgKG5jX2N0ZXN0NSwgbnAt
PnJ2X2N0ZXN0NSk7CS8qIExhcmdlIGZpZm8gKyBsYXJnZSBidXJzdCAqLwogCiAJT1VUQiAobmNf
ZGNudGwgLCBOT0NPTXxucC0+cnZfZGNudGwpOwkvKiBQcm90ZWN0IFNGQlIgKi8KKwlPVVRCIChu
Y19jdGVzdDAsIG5wLT5ydl9jdGVzdDApOwkvKiA3MjA6IENESVMgYW5kIEVIUCAqLwogCU9VVEIg
KG5jX2N0ZXN0MywgbnAtPnJ2X2N0ZXN0Myk7CS8qIFdyaXRlIGFuZCBpbnZhbGlkYXRlICovCiAJ
T1VUQiAobmNfY3Rlc3Q0LCBucC0+cnZfY3Rlc3Q0KTsJLyogTWFzdGVyIHBhcml0eSBjaGVja2lu
ZyAqLwogCkBAIC03MTAwLDYgKzcyNDgsMTggQEAKIAlpZiAoREVCVUdfRkxBR1MgJiBERUJVR19U
SU5ZKSBwcmludGsgKCJJIyVkIiwgbnVtKTsKIAogCXN3aXRjaCAobnVtKSB7CisJY2FzZSBTSVJf
SU5URkxZOgorCQkvKgorCQkqKglUaGlzIGlzIHVzZWQgZm9yIEhQIFphbG9uLzUzYzcyMCB3aGVy
ZSBJTlRGTFkKKwkJKioJb3BlcmF0aW9uIGlzIGN1cnJlbnRseSBicm9rZW4uCisJCSovCisJCW5j
cl93YWtldXBfZG9uZShucCk7CisjaWZkZWYgU0NTSV9OQ1JfQ0NCX0RPTkVfU1VQUE9SVAorCQlP
VVRMKG5jX2RzcCwgTkNCX1NDUklQVF9QSFlTIChucCwgZG9uZV9lbmQpICsgOCk7CisjZWxzZQor
CQlPVVRMKG5jX2RzcCwgTkNCX1NDUklQVF9QSFlTIChucCwgc3RhcnQpKTsKKyNlbmRpZgorCQly
ZXR1cm47CiAJY2FzZSBTSVJfUkVTRUxfTk9fTVNHX0lOOgogCWNhc2UgU0lSX1JFU0VMX05PX0lE
RU5USUZZOgogCQkvKgpAQCAtNzg0Niw3ICs4MDA2LDExIEBACiAJKi8KIAl0cC0+Z2V0c2NyWzBd
ID0JY3B1X3RvX3Njcihjb3B5XzEpOwogCXRwLT5nZXRzY3JbMV0gPSBjcHVfdG9fc2NyKHZ0b2J1
cyAoJnRwLT5zdmFsKSk7CisjaWZkZWYgU0NTSV9OQ1JfQklHX0VORElBTgorCXRwLT5nZXRzY3Jb
Ml0gPSBjcHVfdG9fc2NyKG5jcl9yZWdfYnVzX2FkZHIobmNfc3hmZXIpIF4gMyk7CisjZWxzZQog
CXRwLT5nZXRzY3JbMl0gPSBjcHVfdG9fc2NyKG5jcl9yZWdfYnVzX2FkZHIobmNfc3hmZXIpKTsK
KyNlbmRpZgogICAKIAkvKgogCSoqCUxvYWQgdGhlIHRpbWluZyByZWdpc3Rlci4KQEAgLTc4NTQs
NyArODAxOCwxMSBAQAogCSovCiAJdHAtPmdldHNjclszXSA9CWNwdV90b19zY3IoY29weV8xKTsK
IAl0cC0+Z2V0c2NyWzRdID0gY3B1X3RvX3Njcih2dG9idXMgKCZ0cC0+d3ZhbCkpOworI2lmZGVm
IFNDU0lfTkNSX0JJR19FTkRJQU4KKwl0cC0+Z2V0c2NyWzVdID0gY3B1X3RvX3NjcihuY3JfcmVn
X2J1c19hZGRyKG5jX3NjbnRsMykgXiAzKTsKKyNlbHNlCiAJdHAtPmdldHNjcls1XSA9IGNwdV90
b19zY3IobmNyX3JlZ19idXNfYWRkcihuY19zY250bDMpKTsKKyNlbmRpZgogCiAJLyoKIAkqKglH
ZXQgdGhlIElERU5USUZZIG1lc3NhZ2UgYW5kIHRoZSBsdW4uCkBAIC03ODgzLDEwICs4MDUxLDE3
IEBACiAJLyoKIAkqKglUaGVzZSBhc3NlcnQncyBzaG91bGQgYmUgbW92ZWQgYXQgZHJpdmVyIGlu
aXRpYWxpc2F0aW9ucy4KIAkqLworI2lmZGVmIFNDU0lfTkNSX0JJR19FTkRJQU4KKwlhc3NlcnQg
KCggKG9mZnNldG9mKHN0cnVjdCBuY3JfcmVnLCBuY19zeGZlcikgXgorCQlvZmZzZXRvZihzdHJ1
Y3QgdGNiICAgICwgc3ZhbCAgICApKSAmMykgPT0gMyk7CisJYXNzZXJ0ICgoIChvZmZzZXRvZihz
dHJ1Y3QgbmNyX3JlZywgbmNfc2NudGwzKSBeCisJCW9mZnNldG9mKHN0cnVjdCB0Y2IgICAgLCB3
dmFsICAgICkpICYzKSA9PSAzKTsKKyNlbHNlCiAJYXNzZXJ0ICgoIChvZmZzZXRvZihzdHJ1Y3Qg
bmNyX3JlZywgbmNfc3hmZXIpIF4KIAkJb2Zmc2V0b2Yoc3RydWN0IHRjYiAgICAsIHN2YWwgICAg
KSkgJjMpID09IDApOwogCWFzc2VydCAoKCAob2Zmc2V0b2Yoc3RydWN0IG5jcl9yZWcsIG5jX3Nj
bnRsMykgXgogCQlvZmZzZXRvZihzdHJ1Y3QgdGNiICAgICwgd3ZhbCAgICApKSAmMykgPT0gMCk7
CisjZW5kaWYKIH0KIAogCkBAIC04MjMwLDkgKzg0MDUsNyBAQAogCS8qCiAJKioJUmVzZXQgbmNy
IGNoaXAKIAkqLwotCU9VVEIgKG5jX2lzdGF0LCAgU1JTVCk7Ci0JVURFTEFZICgxMDApOwotCU9V
VEIgKG5jX2lzdGF0LCAgMCAgICk7CisJbmNyX2NoaXBfcmVzZXQobnAsIDEwMCk7CiAJLyoKIAkq
KgljaGVjayBmb3IgdGltZW91dAogCSovCkBAIC04NDU5LDcgKzg2MzIsNyBAQAogCWlmIChucC0+
bXVsdGlwbGllciAhPSBtdWx0IHx8IChzY250bDMgJiA3KSA8IDMgfHwgIShzY250bDMgJiAxKSkg
ewogCQl1bnNpZ25lZCBmMjsKIAotCQlPVVRCKG5jX2lzdGF0LCBTUlNUKTsgVURFTEFZICg1KTsg
T1VUQihuY19pc3RhdCwgMCk7CisJCW5jcl9jaGlwX3Jlc2V0KG5wLCA1KTsKIAogCQkodm9pZCkg
bmNyZ2V0ZnJlcSAobnAsIDExKTsJLyogdGhyb3cgYXdheSBmaXJzdCByZXN1bHQgKi8K
IAkJZjEgPSBuY3JnZXRmcmVxIChucCwgMTEpOwpAQCAtOTIxMCw2ICs5MzgzLDcgQEAKICovCiAK
IHN0YXRpYyB1X3Nob3J0CW5jcl9jaGlwX2lkc1tdICAgX19pbml0ZGF0YSA9IHsKKwlQU0VVRE9f
WkFMT05fNzIwX0lELAogCVBDSV9ERVZJQ0VfSURfTkNSXzUzQzgxMCwKIAlQQ0lfREVWSUNFX0lE
X05DUl81M0M4MTUsCiAJUENJX0RFVklDRV9JRF9OQ1JfNTNDODIwLApAQCAtOTIyNCw2ICs5Mzk4
LDg5IEBACiAJUENJX0RFVklDRV9JRF9OQ1JfNTNDMTUxMEQKIH07CiAKKyNpZmRlZiBFTkFCTEVf
U0NTSV9aQUxPTgorLyoKKyoqCUF0dGFjaCBhIDUzYzcyMCBpbnRlcmZhY2VkIHZpYSBaYWxvbiBj
aGlwIG9uIEhQIGJveGVzLiAgCisqLworCitpbnQKK3phbG9uX2F0dGFjaChTY3NpX0hvc3RfVGVt
cGxhdGUgKnRwbnQsIHVuc2lnbmVkIGxvbmcgaW9fcG9ydCwgCisJICAgICBzdHJ1Y3QgcGFyaXNj
X2RldmljZSAqZGV2LCBpbnQgaXJxLCBpbnQgdW5pdCkKK3sKKwl1X3Nob3J0IGRldmljZV9pZDsK
Kwl1X2NoYXIgcmV2aXNpb247CisJaW50IGk7CisJbmNyX2NoaXAgKmNoaXA7CisJbmNyX2Rldmlj
ZSBkZXZpY2U7CisKKwl0cG50LT5wcm9jX25hbWUgPSBOQU1FNTNDOFhYOworCXRwbnQtPnByb2Nf
aW5mbyA9IG5jcjUzYzh4eF9wcm9jX2luZm87CisKKyNpZglkZWZpbmVkKFNDU0lfTkNSX0JPT1Rf
Q09NTUFORF9MSU5FX1NVUFBPUlQpICYmIGRlZmluZWQoTU9EVUxFKQorCWlmIChuY3I1M2M4eHgp
CisJCW5jcjUzYzh4eF9zZXR1cChuY3I1M2M4eHgpOworI2VuZGlmCisKKyNpZmRlZiBTQ1NJX05D
Ul9ERUJVR19JTkZPX1NVUFBPUlQKKwluY3JfZGVidWcgPSBkcml2ZXJfc2V0dXAuZGVidWc7Cisj
ZW5kaWYKKwlpZiAoaW5pdHZlcmJvc2UgPj0gMikKKwkJbmNyX3ByaW50X2RyaXZlcl9zZXR1cCgp
OworCisJbWVtc2V0KCZkZXZpY2UsIDAsIHNpemVvZihuY3JfZGV2aWNlKSk7CisJY2hpcCA9IDA7
CisJZGV2aWNlX2lkID0gUFNFVURPX1pBTE9OXzcyMF9JRDsKKwlyZXZpc2lvbiA9IDA7CisJZm9y
IChpID0gMDsgaSA8IHNpemVvZihuY3JfY2hpcF90YWJsZSkvc2l6ZW9mKG5jcl9jaGlwX3RhYmxl
WzBdKTsgaSsrKSB7CisJCWlmIChkZXZpY2VfaWQgIT0gbmNyX2NoaXBfdGFibGVbaV0uZGV2aWNl
X2lkKQorCQkJY29udGludWU7CisJCWNoaXAgPSAmZGV2aWNlLmNoaXA7CisJCW1lbWNweShjaGlw
LCAmbmNyX2NoaXBfdGFibGVbaV0sIHNpemVvZigqY2hpcCkpOworCQljaGlwLT5yZXZpc2lvbl9p
ZCA9IHJldmlzaW9uOworCQlicmVhazsKKwl9CisKKwlpZiAoIWNoaXApIHsKKwkJcHJpbnRrKE5B
TUU1M0M4WFggIjogbm90IGluaXRpYWxpemluZywgZGV2aWNlIG5vdCBzdXBwb3J0ZWRcbiIpOwor
CQlyZXR1cm4gLTE7CisJfQorCisJLyoKKwkqKiAgICBGaXggc29tZSBmZWF0dXJlcyBhY2NvcmRp
bmcgdG8gZHJpdmVyIHNldHVwLgorCSovCisKKwlkcml2ZXJfc2V0dXAuZGlmZl9zdXBwb3J0ID0g
MjsKKworCS8qCisJKiogICAgVGhlIGZvbGxvd2luZyB0aHJlZSBhcmUgbmVlZGVkIGJlZm9yZSBh
bnkgb3RoZXIgYWNjZXNzLgorCSovCisKKwl3cml0ZWIoMHgyMCwgaW9fcG9ydCArIDB4MzgpOyAv
KiBEQ05UTF9SRUcsICBFQSAgKi8KKwl3cml0ZWIoMHgwNCwgaW9fcG9ydCArIDB4MWIpOyAvKiBD
VEVTVDBfUkVHLCBFSFAgKi8KKwl3cml0ZWIoMHg4MCwgaW9fcG9ydCArIDB4MjIpOyAvKiBDVEVT
VDRfUkVHLCBNVVggKi8KKworIAkvKgorCSoqICAgIEluaXRpYWxpc2UgbmNyX2RldmljZSBzdHJ1
Y3R1cmUgd2l0aCBpdGVtcyByZXF1aXJlZCBieSBuY3JfYXR0YWNoLgorCSovCisJZGV2aWNlLmhv
c3RfaWQJCT0gZHJpdmVyX3NldHVwLmhvc3RfaWQ7CisJZGV2aWNlLnBkZXYJCT0gY2Npb19nZXRf
ZmFrZShkZXYpOworCWRldmljZS5zbG90LmJ1cwkJPSAwOworCWRldmljZS5zbG90LmRldmljZV9m
bgk9IDA7CisJZGV2aWNlLnNsb3QuYmFzZQk9ICh1X2xvbmcpaW9fcG9ydDsKKwlkZXZpY2Uuc2xv
dC5iYXNlX2MJPSAodV9sb25nKWlvX3BvcnQ7CisJZGV2aWNlLnNsb3QuYmFzZV8yCT0gMDsKKwlk
ZXZpY2Uuc2xvdC5iYXNlXzJfYwk9IDA7CisJZGV2aWNlLnNsb3QuaW9fcG9ydAk9IGlvX3BvcnQ7
CisJZGV2aWNlLnNsb3QuaXJxCQk9IGlycTsKKwlkZXZpY2UuYXR0YWNoX2RvbmUJPSAwOworCisJ
cHJpbnRrKEtFUk5fSU5GTyBOQU1FNTNDOFhYICI6IDUzYyVzIGRldGVjdGVkXG4iLCBkZXZpY2Uu
Y2hpcC5uYW1lKTsKKworCXJldHVybiBuY3JfYXR0YWNoKHRwbnQsIHVuaXQsICZkZXZpY2UpOwor
fQorI2VuZGlmCisKKwogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CiAqKgogKioJQ2hpcCBkZXRlY3Rpb24gZW50cnkgcG9pbnQuCkBA
IC05MjczLDYgKzk1MzAsMTAgQEAKIHN0YXRpYwogI2VuZGlmCiAjaWYgTElOVVhfVkVSU0lPTl9D
T0RFID49IExpbnV4VmVyc2lvbkNvZGUoMiw0LDApIHx8IGRlZmluZWQoTU9EVUxFKQorI2lmZGVm
IEVOQUJMRV9TQ1NJX1pBTE9OCitTY3NpX0hvc3RfVGVtcGxhdGUgZHJpdmVyX3RlbXBsYXRlID0g
U0NTSV9aQUxPTjsKKyNlbHNlCiBTY3NpX0hvc3RfVGVtcGxhdGUgZHJpdmVyX3RlbXBsYXRlID0g
TkNSNTNDOFhYOworI2VuZGlmCiAjaW5jbHVkZSAic2NzaV9tb2R1bGUuYyIKICNlbmRpZgpkaWZm
IC1OYXVyWCBkb250ZGlmZiBsaW51eC0yLjQuMjEtcHJlNy9kcml2ZXJzL3Njc2kvQ29uZmlnLmlu
IGxpbnV4LTIuNC4yMS1wcmU3LXBhM3gvZHJpdmVycy9zY3NpL0NvbmZpZy5pbgotLS0gbGludXgt
Mi40LjIxLXByZTcvZHJpdmVycy9zY3NpL0NvbmZpZy5pbgkyMDAzLTAzLTI3IDE5OjQzOjUwLjAw
MDAwMDAwMCArMDEwMAorKysgbGludXgtMi40LjIxLXByZTctcGEzeC9kcml2ZXJzL3Njc2kvQ29u
ZmlnLmluCTIwMDMtMDQtMTEgMTE6MTg6NDIuMDAwMDAwMDAwICswMjAwCkBAIC0xNDUsMjcgKzE0
NSw0NiBAQAogICAgICAgYm9vbCAnICB1c2Ugbm9ybWFsIElPJyBDT05GSUdfU0NTSV9TWU01M0M4
WFhfSU9NQVBQRUQKICAgIGZpCiBmaQorZGVmaW5lX2Jvb2wgQ09ORklHX0FTS19aQUxP
TiBuCitkZWZpbmVfYm9vbCBDT05GSUdfQVNLX05DUjUzQzhYWCBuCitkZWZpbmVfYm9vbCBDT05G
SUdfQVNLX1NZTTUzQzhYWCBuCitpZiBbICIkQ09ORklHX1BBUklTQyIgPSAieSIgXTsgdGhlbgor
ICAgZGVwX3RyaXN0YXRlICdaYWxvbiBTQ1NJIHN1cHBvcnQnIENPTkZJR19TQ1NJX1pBTE9OICRD
T05GSUdfR1NDICRDT05GSUdfU0NTSQorICAgaWYgWyAiJENPTkZJR19TQ1NJX1pBTE9OIiAhPSAi
biIgXTsgdGhlbgorICAgICAgZGVmaW5lX2Jvb2wgQ09ORklHX0FTS19aQUxPTiB5CisgICBmaQor
ZWxzZQorICBpZiBbICIkQ09ORklHX1BDSSIgPSAieSIgLWEgIiRDT05GSUdfU0NTSV9TWU01M0M4
WFhfMiIgIT0gInkiIF07IHRoZW4KKyAgICAgZGVwX3RyaXN0YXRlICdOQ1I1M0M4WFggU0NTSSBz
dXBwb3J0JyBDT05GSUdfU0NTSV9OQ1I1M0M4WFggJENPTkZJR19TQ1NJCisgICAgIGlmIFsgIiRD
T05GSUdfU0NTSV9OQ1I1M0M4WFgiICE9ICJuIiBdOyB0aGVuCisgICAgICAgIGRlZmluZV9ib29s
IENPTkZJR19BU0tfTkNSNTNDOFhYIHkKKyAgICAgZmkKKyAgZmkKK2ZpCiBpZiBbICIkQ09ORklH
X1BDSSIgPSAieSIgLWEgIiRDT05GSUdfU0NTSV9TWU01M0M4WFhfMiIgIT0gInkiIF07IHRoZW4K
LSAgIGRlcF90cmlzdGF0ZSAnTkNSNTNDOFhYIFNDU0kgc3VwcG9ydCcgQ09ORklHX1NDU0lfTkNS
NTNDOFhYICRDT05GSUdfU0NTSQogICAgZGVwX3RyaXN0YXRlICdTWU01M0M4WFggU0NTSSBzdXBw
b3J0JyBDT05GSUdfU0NTSV9TWU01M0M4WFggJENPTkZJR19TQ1NJCi0gICBpZiBbICIkQ09ORklH
X1BBUklTQyIgPSAieSIgXTsgdGhlbgotICAgICAgZGVwX3RyaXN0YXRlICdaYWxvbiBTQ1NJIHN1
cHBvcnQnIENPTkZJR19TQ1NJX1pBTE9OICRDT05GSUdfR1NDICRDT05GSUdfU0NTSQorICAgaWYg
WyAiJENPTkZJR19TQ1NJX1NZTTUzQzhYWCIgIT0gIm4iIF07IHRoZW4KKyAgICAgIGRlZmluZV9i
b29sIENPTkZJR19BU0tfU1lNNTNDOFhYIHkKICAgIGZpCi0gICBpZiBbICIkQ09ORklHX1NDU0lf
TkNSNTNDOFhYIiAhPSAibiIgLW8gIiRDT05GSUdfU0NTSV9aQUxPTiIgPSAieSIgLW8gIiRDT05G
SUdfU0NTSV9aQUxPTiIgPSAibSIgLW8gIiRDT05GSUdfU0NTSV9TWU01M0M4WFgiICE9ICJuIiBd
OyB0aGVuCi0gICAgICBpbnQgICcgIGRlZmF1bHQgdGFnZ2VkIGNvbW1hbmQgcXVldWUgZGVwdGgn
IENPTkZJR19TQ1NJX05DUjUzQzhYWF9ERUZBVUxUX1RBR1MgOAotICAgICAgaW50ICAnICBtYXhp
bXVtIG51bWJlciBvZiBxdWV1ZWQgY29tbWFuZHMnIENPTkZJR19TQ1NJX05DUjUzQzhYWF9NQVhf
VEFHUyAzMgotICAgICAgaW50ICAnICBzeW5jaHJvbm91cyB0cmFuc2ZlcnMgZnJlcXVlbmN5IGlu
IE1IeicgQ09ORklHX1NDU0lfTkNSNTNDOFhYX1NZTkMgMjAKLSAgICAgIGJvb2wgJyAgZW5hYmxl
IHByb2ZpbGluZycgQ09ORklHX1NDU0lfTkNSNTNDOFhYX1BST0ZJTEUKK2ZpCitpZiBbICIkQ09O
RklHX0FTS19aQUxPTiIgPSAieSIgLW8gIiRDT05GSUdfQVNLX05DUjUzQzhYWCIgPSAieSIgLW8g
IiRDT05GSUdfQVNLX1NZTTUzQzhYWCIgPSAieSIgXTsgdGhlbgorICAgaW50ICAnICBkZWZhdWx0
IHRhZ2dlZCBjb21tYW5kIHF1ZXVlIGRlcHRoJyBDT05GSUdfU0NTSV9OQ1I1M0M4WFhfREVGQVVM
VF9UQUdTIDgKKyAgIGludCAgJyAgbWF4aW11bSBudW1iZXIgb2YgcXVldWVkIGNvbW1hbmRzJyBD
T05GSUdfU0NTSV9OQ1I1M0M4WFhfTUFYX1RBR1MgMzIKKyAgIGludCAgJyAgc3luY2hyb25vdXMg
dHJhbnNmZXJzIGZyZXF1ZW5jeSBpbiBNSHonIENPTkZJR19TQ1NJX05DUjUzQzhYWF9TWU5DIDIw
CisgICBib29sICcgIGVuYWJsZSBwcm9maWxpbmcnIENPTkZJR19TQ1NJX05DUjUzQzhYWF9QUk9G
SUxFCisgICBpZiBbICIkQ09ORklHX0FTS19aQUxPTiIgPSAieSIgXTsgdGhlbgorICAgICAgZGVm
aW5lX2Jvb2wgQ09ORklHX1NDU0lfTkNSNTNDOFhYX0lPTUFQUEVEIG4KKyAgIGVsc2UKICAgICAg
IGJvb2wgJyAgdXNlIG5vcm1hbCBJTycgQ09ORklHX1NDU0lfTkNSNTNDOFhYX0lPTUFQUEVECi0g
ICAgICBpZiBbICIkQ09ORklHX1NDU0lfU1lNNTNDOFhYIiAhPSAibiIgXTsgdGhlbgotCSBib29s
ICcgIGluY2x1ZGUgc3VwcG9ydCBmb3IgdGhlIE5DUiBQUVMvUERTIFNDU0kgY2FyZCcgQ09ORklH
X1NDU0lfTkNSNTNDOFhYX1BRU19QRFMKLSAgICAgIGZpCi0gICAgICBpZiBbICIkQ09ORklHX1ND
U0lfTkNSNTNDOFhYX0RFRkFVTFRfVEFHUyIgPSAiMCIgXTsgdGhlbgotCSBib29sICcgIG5vdCBh
bGxvdyB0YXJnZXRzIHRvIGRpc2Nvbm5lY3QnIENPTkZJR19TQ1NJX05DUjUzQzhYWF9OT19ESVND
T05ORUNUCi0gICAgICBmaQotICAgICAgaWYgWyAiJENPTkZJR19FWFBFUklNRU5UQUwiID0gInki
IF07IHRoZW4KLQkgYm9vbCAnICBhc3N1bWUgYm9hcmRzIGFyZSBTWU1CSU9TIGNvbXBhdGlibGUg
KEVYUEVSSU1FTlRBTCknIENPTkZJR19TQ1NJX05DUjUzQzhYWF9TWU1CSU9TX0NPTVBBVAotICAg
ICAgZmkKKyAgIGZpCisgICBpZiBbICIkQ09ORklHX0FTS19TWU01M0M4WFgiID0gInkiIF07IHRo
ZW4KKyAgICAgIGJvb2wgJyAgaW5jbHVkZSBzdXBwb3J0IGZvciB0aGUgTkNSIFBRUy9QRFMgU0NT
SSBjYXJkJyBDT05GSUdfU0NTSV9OQ1I1M0M4WFhfUFFTX1BEUworICAgZmkKKyAgIGlmIFsgIiRD
T05GSUdfU0NTSV9OQ1I1M0M4WFhfREVGQVVMVF9UQUdTIiA9ICIwIiBdOyB0aGVuCisgICAgICBi
b29sICcgIG5vdCBhbGxvdyB0YXJnZXRzIHRvIGRpc2Nvbm5lY3QnIENPTkZJR19TQ1NJX05DUjUz
QzhYWF9OT19ESVNDT05ORUNUCisgICBmaQorICAgaWYgWyAiJENPTkZJR19FWFBFUklNRU5UQUwi
ID0gInkiIF07IHRoZW4KKyAgICAgIGJvb2wgJyAgYXNzdW1lIGJvYXJkcyBhcmUgU1lNQklPUyBj
b21wYXRpYmxlIChFWFBFUklNRU5UQUwpJyBDT05GSUdfU0NTSV9OQ1I1M0M4WFhfU1lNQklPU19D
T01QQVQKICAgIGZpCiBmaQogaWYgWyAiJENPTkZJR19NQ0EiID0gInkiIF07IHRoZW4K

--========/3E8AE87E00006BD1/mail.tiscali.be--