Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 Apr 2009 21:06:13 +0300
From:      Andriy Gapon <avg@icyb.net.ua>
To:        freebsd-multimedia@FreeBSD.org, John Baldwin <jhb@FreeBSD.org>, Rui Paulo <rpaulo@FreeBSD.org>, "M. Warner Losh" <imp@bsdimp.com>
Subject:   strict signatures for kobj methods in sound subsystem
Message-ID:  <49E62215.4010309@icyb.net.ua>

next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------060901080909010407040201
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit


Please review the attached, largely mechanical, patch for sound subsystem.
This patch is supposed to make all functions that implement kobj methods have
strictly the same signatures as defined by the interfaces.

The only non-mechanical change is in sys/dev/sound/pcm/channel_if.m: usage of
setformat method in channel.c shows that this method is supposed to return error
number and so int is more appropriate return type than u_int32_t.
E.g.:
                 r = CHANNEL_SETFORMAT(c->methods, c->devinfo, sndbuf_getfmt(b));
                 if (r == 0)
                         r = chn_tryspeed(c, c->speed);
         }
         return r;
 } else
         return EINVAL;


-- 
Andriy Gapon

--------------060901080909010407040201
Content-Type: text/plain;
 name="sound_kobj.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="sound_kobj.diff"

ZGlmZiAtLWdpdCBhL3N5cy9kZXYvc291bmQvaXNhL2FkMTgxNi5jIGIvc3lzL2Rldi9zb3Vu
ZC9pc2EvYWQxODE2LmMKaW5kZXggNGM1ZWNhYi4uNzIzNzc4NCAxMDA2NDQKLS0tIGEvc3lz
L2Rldi9zb3VuZC9pc2EvYWQxODE2LmMKKysrIGIvc3lzL2Rldi9zb3VuZC9pc2EvYWQxODE2
LmMKQEAgLTI2OSw3ICsyNjksNyBAQCBhZDE4MTZtaXhfc2V0KHN0cnVjdCBzbmRfbWl4ZXIg
Km0sIHVuc2lnbmVkIGRldiwgdW5zaWduZWQgbGVmdCwgdW5zaWduZWQgcmlnaHQpCiAgICAg
CXJldHVybiBsZWZ0IHwgKHJpZ2h0IDw8IDgpOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMg
dV9pbnQzMl90CiBhZDE4MTZtaXhfc2V0cmVjc3JjKHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVf
aW50MzJfdCBzcmMpCiB7CiAJc3RydWN0IGFkMTgxNl9pbmZvICphZDE4MTYgPSBtaXhfZ2V0
ZGV2aW5mbyhtKTsKQEAgLTM4Miw3ICszODIsNyBAQCBhZDE4MTZjaGFuX3NldGZvcm1hdChr
b2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3QgZm9ybWF0KQogI2VuZGlmCiB9CiAK
LXN0YXRpYyBpbnQKK3N0YXRpYyB1X2ludDMyX3QKIGFkMTgxNmNoYW5fc2V0c3BlZWQoa29i
al90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IHNwZWVkKQogewogCXN0cnVjdCBhZDE4
MTZfY2hpbmZvICpjaCA9IGRhdGE7CkBAIC0zOTUsNyArMzk1LDcgQEAgYWQxODE2Y2hhbl9z
ZXRzcGVlZChrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3Qgc3BlZWQpCiAgICAg
CXJldHVybiBzcGVlZDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogYWQx
ODE2Y2hhbl9zZXRibG9ja3NpemUoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90
IGJsb2Nrc2l6ZSkKIHsKIAlzdHJ1Y3QgYWQxODE2X2NoaW5mbyAqY2ggPSBkYXRhOwpAQCAt
NDU2LDcgKzQ1Niw3IEBAIGFkMTgxNmNoYW5fdHJpZ2dlcihrb2JqX3Qgb2JqLCB2b2lkICpk
YXRhLCBpbnQgZ28pCiAgICAgCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMg
dV9pbnQzMl90CiBhZDE4MTZjaGFuX2dldHB0cihrb2JqX3Qgb2JqLCB2b2lkICpkYXRhKQog
ewogCXN0cnVjdCBhZDE4MTZfY2hpbmZvICpjaCA9IGRhdGE7CmRpZmYgLS1naXQgYS9zeXMv
ZGV2L3NvdW5kL2lzYS9lc3MuYyBiL3N5cy9kZXYvc291bmQvaXNhL2Vzcy5jCmluZGV4IDRl
NTk3NzcuLjk4ZTFhYzcgMTAwNjQ0Ci0tLSBhL3N5cy9kZXYvc291bmQvaXNhL2Vzcy5jCisr
KyBiL3N5cy9kZXYvc291bmQvaXNhL2Vzcy5jCkBAIC01ODMsNyArNTgzLDcgQEAgZXNzY2hh
bl9zZXRmb3JtYXQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IGZvcm1hdCkK
IAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogZXNzY2hh
bl9zZXRzcGVlZChrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3Qgc3BlZWQpCiB7
CiAJc3RydWN0IGVzc19jaGluZm8gKmNoID0gZGF0YTsKQEAgLTU5Nyw3ICs1OTcsNyBAQCBl
c3NjaGFuX3NldHNwZWVkKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBzcGVl
ZCkKIAlyZXR1cm4gY2gtPnNwZDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJf
dAogZXNzY2hhbl9zZXRibG9ja3NpemUoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQz
Ml90IGJsb2Nrc2l6ZSkKIHsKIAlzdHJ1Y3QgZXNzX2NoaW5mbyAqY2ggPSBkYXRhOwpAQCAt
NjMwLDcgKzYzMCw3IEBAIGVzc2NoYW5fdHJpZ2dlcihrb2JqX3Qgb2JqLCB2b2lkICpkYXRh
LCBpbnQgZ28pCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1X2ludDMy
X3QKIGVzc2NoYW5fZ2V0cHRyKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEpCiB7CiAJc3RydWN0
IGVzc19jaGluZm8gKmNoID0gZGF0YTsKQEAgLTc0MSw3ICs3NDEsNyBAQCBlc3NtaXhfc2V0
KHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVuc2lnbmVkIGRldiwgdW5zaWduZWQgbGVmdCwgdW5z
aWduZWQgcmlnaHQpCiAgICAgCXJldHVybiBsZWZ0IHwgKHJpZ2h0IDw8IDgpOwogfQogCi1z
dGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBlc3NtaXhfc2V0cmVjc3JjKHN0cnVjdCBz
bmRfbWl4ZXIgKm0sIHVfaW50MzJfdCBzcmMpCiB7CiAgICAgCXN0cnVjdCBlc3NfaW5mbyAq
c2MgPSBtaXhfZ2V0ZGV2aW5mbyhtKTsKZGlmZiAtLWdpdCBhL3N5cy9kZXYvc291bmQvaXNh
L21zcy5jIGIvc3lzL2Rldi9zb3VuZC9pc2EvbXNzLmMKaW5kZXggNDExMjk2Yi4uODZjYjgw
MSAxMDA2NDQKLS0tIGEvc3lzL2Rldi9zb3VuZC9pc2EvbXNzLmMKKysrIGIvc3lzL2Rldi9z
b3VuZC9pc2EvbXNzLmMKQEAgLTUyMCw3ICs1MjAsNyBAQCBtc3NtaXhfc2V0KHN0cnVjdCBz
bmRfbWl4ZXIgKm0sIHVuc2lnbmVkIGRldiwgdW5zaWduZWQgbGVmdCwgdW5zaWduZWQgcmln
aHQpCiAJcmV0dXJuIGxlZnQgfCAocmlnaHQgPDwgOCk7CiB9CiAKLXN0YXRpYyBpbnQKK3N0
YXRpYyB1X2ludDMyX3QKIG1zc21peF9zZXRyZWNzcmMoc3RydWN0IHNuZF9taXhlciAqbSwg
dV9pbnQzMl90IHNyYykKIHsKIAlzdHJ1Y3QgbXNzX2luZm8gKm1zcyA9IG1peF9nZXRkZXZp
bmZvKG0pOwpAQCAtNjA0LDcgKzYwNCw3IEBAIHltbWl4X3NldChzdHJ1Y3Qgc25kX21peGVy
ICptLCB1bnNpZ25lZCBkZXYsIHVuc2lnbmVkIGxlZnQsIHVuc2lnbmVkIHJpZ2h0KQogCXJl
dHVybiBsZWZ0IHwgKHJpZ2h0IDw8IDgpOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9p
bnQzMl90CiB5bW1peF9zZXRyZWNzcmMoc3RydWN0IHNuZF9taXhlciAqbSwgdV9pbnQzMl90
IHNyYykKIHsKIAlzdHJ1Y3QgbXNzX2luZm8gKm1zcyA9IG1peF9nZXRkZXZpbmZvKG0pOwpA
QCAtMTE3MCw3ICsxMTcwLDcgQEAgbXNzY2hhbl9zZXRmb3JtYXQoa29ial90IG9iaiwgdm9p
ZCAqZGF0YSwgdV9pbnQzMl90IGZvcm1hdCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGlu
dAorc3RhdGljIHVfaW50MzJfdAogbXNzY2hhbl9zZXRzcGVlZChrb2JqX3Qgb2JqLCB2b2lk
ICpkYXRhLCB1X2ludDMyX3Qgc3BlZWQpCiB7CiAJc3RydWN0IG1zc19jaGluZm8gKmNoID0g
ZGF0YTsKQEAgLTExODQsNyArMTE4NCw3IEBAIG1zc2NoYW5fc2V0c3BlZWQoa29ial90IG9i
aiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IHNwZWVkKQogCXJldHVybiByOwogfQogCi1zdGF0
aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBtc3NjaGFuX3NldGJsb2Nrc2l6ZShrb2JqX3Qg
b2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3QgYmxvY2tzaXplKQogewogCXN0cnVjdCBtc3Nf
Y2hpbmZvICpjaCA9IGRhdGE7CkBAIC0xMjExLDcgKzEyMTEsNyBAQCBtc3NjaGFuX3RyaWdn
ZXIoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgaW50IGdvKQogCXJldHVybiAwOwogfQogCi1z
dGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBtc3NjaGFuX2dldHB0cihrb2JqX3Qgb2Jq
LCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBtc3NfY2hpbmZvICpjaCA9IGRhdGE7CmRpZmYg
LS1naXQgYS9zeXMvZGV2L3NvdW5kL2lzYS9zYjE2LmMgYi9zeXMvZGV2L3NvdW5kL2lzYS9z
YjE2LmMKaW5kZXggZWIzNzMzNy4uZTU3Y2U2ZCAxMDA2NDQKLS0tIGEvc3lzL2Rldi9zb3Vu
ZC9pc2Evc2IxNi5jCisrKyBiL3N5cy9kZXYvc291bmQvaXNhL3NiMTYuYwpAQCAtMzY2LDcg
KzM2Niw3IEBAIHNiMTZtaXhfc2V0KHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVuc2lnbmVkIGRl
diwgdW5zaWduZWQgbGVmdCwgdW5zaWduZWQgcmlnaHQpCiAgICAgCXJldHVybiBsZWZ0IHwg
KHJpZ2h0IDw8IDgpOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBzYjE2
bWl4X3NldHJlY3NyYyhzdHJ1Y3Qgc25kX21peGVyICptLCB1X2ludDMyX3Qgc3JjKQogewog
ICAgIAlzdHJ1Y3Qgc2JfaW5mbyAqc2IgPSBtaXhfZ2V0ZGV2aW5mbyhtKTsKQEAgLTcwMCw3
ICs3MDAsNyBAQCBzYjE2Y2hhbl9zZXRmb3JtYXQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwg
dV9pbnQzMl90IGZvcm1hdCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGlj
IHVfaW50MzJfdAogc2IxNmNoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwg
dV9pbnQzMl90IHNwZWVkKQogewogCXN0cnVjdCBzYl9jaGluZm8gKmNoID0gZGF0YTsKQEAg
LTcwOSw3ICs3MDksNyBAQCBzYjE2Y2hhbl9zZXRzcGVlZChrb2JqX3Qgb2JqLCB2b2lkICpk
YXRhLCB1X2ludDMyX3Qgc3BlZWQpCiAJcmV0dXJuIHNwZWVkOwogfQogCi1zdGF0aWMgaW50
CitzdGF0aWMgdV9pbnQzMl90CiBzYjE2Y2hhbl9zZXRibG9ja3NpemUoa29ial90IG9iaiwg
dm9pZCAqZGF0YSwgdV9pbnQzMl90IGJsb2Nrc2l6ZSkKIHsKIAlzdHJ1Y3Qgc2JfY2hpbmZv
ICpjaCA9IGRhdGE7CkBAIC03MzcsNyArNzM3LDcgQEAgc2IxNmNoYW5fdHJpZ2dlcihrb2Jq
X3Qgb2JqLCB2b2lkICpkYXRhLCBpbnQgZ28pCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBp
bnQKK3N0YXRpYyB1X2ludDMyX3QKIHNiMTZjaGFuX2dldHB0cihrb2JqX3Qgb2JqLCB2b2lk
ICpkYXRhKQogewogCXN0cnVjdCBzYl9jaGluZm8gKmNoID0gZGF0YTsKZGlmZiAtLWdpdCBh
L3N5cy9kZXYvc291bmQvaXNhL3NiOC5jIGIvc3lzL2Rldi9zb3VuZC9pc2Evc2I4LmMKaW5k
ZXggM2IwZjI5NS4uNzM0N2M2MyAxMDA2NDQKLS0tIGEvc3lzL2Rldi9zb3VuZC9pc2Evc2I4
LmMKKysrIGIvc3lzL2Rldi9zb3VuZC9pc2Evc2I4LmMKQEAgLTM3Miw3ICszNzIsNyBAQCBz
YnByb21peF9zZXQoc3RydWN0IHNuZF9taXhlciAqbSwgdW5zaWduZWQgZGV2LCB1bnNpZ25l
ZCBsZWZ0LCB1bnNpZ25lZCByaWdodCkKICAgICAJcmV0dXJuIGxlZnQgfCAocmlnaHQgPDwg
OCk7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1X2ludDMyX3QKIHNicHJvbWl4X3NldHJl
Y3NyYyhzdHJ1Y3Qgc25kX21peGVyICptLCB1X2ludDMyX3Qgc3JjKQogewogICAgIAlzdHJ1
Y3Qgc2JfaW5mbyAqc2IgPSBtaXhfZ2V0ZGV2aW5mbyhtKTsKQEAgLTQ1Myw3ICs0NTMsNyBA
QCBzYm1peF9zZXQoc3RydWN0IHNuZF9taXhlciAqbSwgdW5zaWduZWQgZGV2LCB1bnNpZ25l
ZCBsZWZ0LCB1bnNpZ25lZCByaWdodCkKICAgICAJcmV0dXJuIGxlZnQgfCAobGVmdCA8PCA4
KTsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogc2JtaXhfc2V0cmVjc3Jj
KHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVfaW50MzJfdCBzcmMpCiB7CiAJcmV0dXJuIDA7CkBA
IC02MTQsNyArNjE0LDcgQEAgc2JjaGFuX3NldGZvcm1hdChrb2JqX3Qgb2JqLCB2b2lkICpk
YXRhLCB1X2ludDMyX3QgZm9ybWF0KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50Citz
dGF0aWMgdV9pbnQzMl90CiBzYmNoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0
YSwgdV9pbnQzMl90IHNwZWVkKQogewogCXN0cnVjdCBzYl9jaGluZm8gKmNoID0gZGF0YTsK
QEAgLTYyMyw3ICs2MjMsNyBAQCBzYmNoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAq
ZGF0YSwgdV9pbnQzMl90IHNwZWVkKQogCXJldHVybiBzYl9zcGVlZChjaCk7CiB9CiAKLXN0
YXRpYyBpbnQKK3N0YXRpYyB1X2ludDMyX3QKIHNiY2hhbl9zZXRibG9ja3NpemUoa29ial90
IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IGJsb2Nrc2l6ZSkKIHsKIAlzdHJ1Y3Qgc2Jf
Y2hpbmZvICpjaCA9IGRhdGE7CkBAIC02NDgsNyArNjQ4LDcgQEAgc2JjaGFuX3RyaWdnZXIo
a29ial90IG9iaiwgdm9pZCAqZGF0YSwgaW50IGdvKQogCXJldHVybiAwOwogfQogCi1zdGF0
aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBzYmNoYW5fZ2V0cHRyKGtvYmpfdCBvYmosIHZv
aWQgKmRhdGEpCiB7CiAJc3RydWN0IHNiX2NoaW5mbyAqY2ggPSBkYXRhOwpkaWZmIC0tZ2l0
IGEvc3lzL2Rldi9zb3VuZC9tYWNpby9hb2EuYyBiL3N5cy9kZXYvc291bmQvbWFjaW8vYW9h
LmMKaW5kZXggNTRlZmU0Zi4uNjFhM2Q3MSAxMDA2NDQKLS0tIGEvc3lzL2Rldi9zb3VuZC9t
YWNpby9hb2EuYworKysgYi9zeXMvZGV2L3NvdW5kL21hY2lvL2FvYS5jCkBAIC0xMzgsNyAr
MTM4LDcgQEAgYW9hX2RtYV9kZWxldGUoc3RydWN0IGFvYV9kbWEgKmRtYSkKIAlmcmVlKGRt
YSwgTV9ERVZCVUYpOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBhb2Ff
Y2hhbl9zZXRibG9ja3NpemUoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IGJs
b2Nrc3opCiB7CiAJc3RydWN0IGFvYV9kbWEgCQkqZG1hID0gZGF0YTsKQEAgLTE5Miw3ICsx
OTIsNyBAQCBhb2FfY2hhbl9zZXRmb3JtYXQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9p
bnQzMl90IGZvcm1hdCkKIAlyZXR1cm4gKDApOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMg
dV9pbnQzMl90CiBhb2FfY2hhbl9zZXRzcGVlZChrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1
X2ludDMyX3Qgc3BlZWQpCiB7CiAJRFBSSU5URigoImFvYV9jaGFuX3NldHNwZWVkOiBzcGVl
ZCA9ICV1XG4iLCBzcGVlZCkpOwpAQCAtMjAwLDcgKzIwMCw3IEBAIGFvYV9jaGFuX3NldHNw
ZWVkKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBzcGVlZCkKIAlyZXR1cm4g
KDQ0MTAwKTsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogYW9hX2NoYW5f
Z2V0cHRyKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEpCiB7CiAJc3RydWN0IGFvYV9kbWEgCSAq
ZG1hID0gZGF0YTsKZGlmZiAtLWdpdCBhL3N5cy9kZXYvc291bmQvbWFjaW8vZGF2YnVzLmMg
Yi9zeXMvZGV2L3NvdW5kL21hY2lvL2RhdmJ1cy5jCmluZGV4IDE1OTA5ZjguLjFhZmI3ZWUg
MTAwNjQ0Ci0tLSBhL3N5cy9kZXYvc291bmQvbWFjaW8vZGF2YnVzLmMKKysrIGIvc3lzL2Rl
di9zb3VuZC9tYWNpby9kYXZidXMuYwpAQCAtMTE1LDcgKzExNSw3IEBAIHN0YXRpYyB2b2lk
CWJ1cmd1bmR5X3NldF9vdXRwdXRzKHN0cnVjdCBkYXZidXNfc29mdGMgKmQsIHVfaW50IG1h
c2spOwogc3RhdGljIHVfaW50CWJ1cmd1bmR5X3JlYWRfc3RhdHVzKHN0cnVjdCBkYXZidXNf
c29mdGMgKmQsIHVfaW50IHN0YXR1cyk7CiBzdGF0aWMgaW50CWJ1cmd1bmR5X3NldChzdHJ1
Y3Qgc25kX21peGVyICptLCB1bnNpZ25lZCBkZXYsIHVuc2lnbmVkIGxlZnQsCiAJCSAgICB1
bnNpZ25lZCByaWdodCk7Ci1zdGF0aWMgaW50CWJ1cmd1bmR5X3NldHJlY3NyYyhzdHJ1Y3Qg
c25kX21peGVyICptLCB1X2ludDMyX3Qgc3JjKTsKK3N0YXRpYyB1X2ludDMyX3QJYnVyZ3Vu
ZHlfc2V0cmVjc3JjKHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVfaW50MzJfdCBzcmMpOwogCiBz
dGF0aWMga29ial9tZXRob2RfdCBidXJndW5keV9taXhlcl9tZXRob2RzW10gPSB7CiAJS09C
Sk1FVEhPRChtaXhlcl9pbml0LCAJCWJ1cmd1bmR5X2luaXQpLApAQCAtMjkzLDcgKzI5Myw3
IEBAIGJ1cmd1bmR5X3NldChzdHJ1Y3Qgc25kX21peGVyICptLCB1bnNpZ25lZCBkZXYsIHVu
c2lnbmVkIGxlZnQsIHVuc2lnbmVkIHJpZ2h0KQogCXJldHVybiAoMCk7CiB9CiAKLXN0YXRp
YyBpbnQKK3N0YXRpYyB1X2ludDMyX3QKIGJ1cmd1bmR5X3NldHJlY3NyYyhzdHJ1Y3Qgc25k
X21peGVyICptLCB1X2ludDMyX3Qgc3JjKQogewogCXJldHVybiAoMCk7CkBAIC0zMTEsNyAr
MzExLDcgQEAgc3RhdGljIHZvaWQJc2NyZWFtZXJfc2V0X291dHB1dHMoc3RydWN0IGRhdmJ1
c19zb2Z0YyAqZCwgdV9pbnQgbWFzayk7CiBzdGF0aWMgdV9pbnQJc2NyZWFtZXJfcmVhZF9z
dGF0dXMoc3RydWN0IGRhdmJ1c19zb2Z0YyAqZCwgdV9pbnQgc3RhdHVzKTsKIHN0YXRpYyBp
bnQJc2NyZWFtZXJfc2V0KHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVuc2lnbmVkIGRldiwgdW5z
aWduZWQgbGVmdCwKIAkJICAgIHVuc2lnbmVkIHJpZ2h0KTsKLXN0YXRpYyBpbnQJc2NyZWFt
ZXJfc2V0cmVjc3JjKHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVfaW50MzJfdCBzcmMpOworc3Rh
dGljIHVfaW50MzJfdCBzY3JlYW1lcl9zZXRyZWNzcmMoc3RydWN0IHNuZF9taXhlciAqbSwg
dV9pbnQzMl90IHNyYyk7CiAKIHN0YXRpYyBrb2JqX21ldGhvZF90IHNjcmVhbWVyX21peGVy
X21ldGhvZHNbXSA9IHsKIAlLT0JKTUVUSE9EKG1peGVyX2luaXQsIAkJc2NyZWFtZXJfaW5p
dCksCkBAIC00NzksNyArNDc5LDcgQEAgc2NyZWFtZXJfc2V0KHN0cnVjdCBzbmRfbWl4ZXIg
Km0sIHVuc2lnbmVkIGRldiwgdW5zaWduZWQgbGVmdCwgdW5zaWduZWQgcmlnaHQpCiAJcmV0
dXJuICgwKTsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogc2NyZWFtZXJf
c2V0cmVjc3JjKHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVfaW50MzJfdCBzcmMpCiB7CiAJcmV0
dXJuICgwKTsKZGlmZiAtLWdpdCBhL3N5cy9kZXYvc291bmQvbWFjaW8vc25hcHBlci5jIGIv
c3lzL2Rldi9zb3VuZC9tYWNpby9zbmFwcGVyLmMKaW5kZXggOGFjY2ExMC4uZjkwNmIxOCAx
MDA2NDQKLS0tIGEvc3lzL2Rldi9zb3VuZC9tYWNpby9zbmFwcGVyLmMKKysrIGIvc3lzL2Rl
di9zb3VuZC9tYWNpby9zbmFwcGVyLmMKQEAgLTkwLDExICs5MCwxMSBAQCBzdHJ1Y3Qgc25h
cHBlcl9zb2Z0Ywogc3RhdGljIGludAlzbmFwcGVyX3Byb2JlKGRldmljZV90KTsKIHN0YXRp
YyBpbnQgCXNuYXBwZXJfYXR0YWNoKGRldmljZV90KTsKIHN0YXRpYyBpbnQJc25hcHBlcl9p
bml0KHN0cnVjdCBzbmRfbWl4ZXIgKm0pOwotc3RhdGljIHZvaWQJc25hcHBlcl91bmluaXQo
c3RydWN0IHNuZF9taXhlciAqbSk7CitzdGF0aWMgaW50CXNuYXBwZXJfdW5pbml0KHN0cnVj
dCBzbmRfbWl4ZXIgKm0pOwogc3RhdGljIGludAlzbmFwcGVyX3JlaW5pdChzdHJ1Y3Qgc25k
X21peGVyICptKTsKIHN0YXRpYyBpbnQJc25hcHBlcl9zZXQoc3RydWN0IHNuZF9taXhlciAq
bSwgdW5zaWduZWQgZGV2LCB1bnNpZ25lZCBsZWZ0LAogCQkgICAgdW5zaWduZWQgcmlnaHQp
Owotc3RhdGljIGludAlzbmFwcGVyX3NldHJlY3NyYyhzdHJ1Y3Qgc25kX21peGVyICptLCB1
X2ludDMyX3Qgc3JjKTsKK3N0YXRpYyB1X2ludDMyX3QJc25hcHBlcl9zZXRyZWNzcmMoc3Ry
dWN0IHNuZF9taXhlciAqbSwgdV9pbnQzMl90IHNyYyk7CiAKIHN0YXRpYyBkZXZpY2VfbWV0
aG9kX3Qgc25hcHBlcl9tZXRob2RzW10gPSB7CiAJLyogRGV2aWNlIGludGVyZmFjZS4gKi8K
QEAgLTQxNywxMCArNDE3LDEwIEBAIHNuYXBwZXJfaW5pdChzdHJ1Y3Qgc25kX21peGVyICpt
KQogCXJldHVybiAoMCk7CiB9CiAKLXN0YXRpYyB2b2lkCitzdGF0aWMgaW50CiBzbmFwcGVy
X3VuaW5pdChzdHJ1Y3Qgc25kX21peGVyICptKQogewotCXJldHVybjsKKwlyZXR1cm4gKDAp
OwogfQogCiBzdGF0aWMgaW50CkBAIC00NzgsNyArNDc4LDcgQEAgc25hcHBlcl9zZXQoc3Ry
dWN0IHNuZF9taXhlciAqbSwgdW5zaWduZWQgZGV2LCB1bnNpZ25lZCBsZWZ0LCB1bnNpZ25l
ZCByaWdodCkKIAlyZXR1cm4gKDApOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQz
Ml90CiBzbmFwcGVyX3NldHJlY3NyYyhzdHJ1Y3Qgc25kX21peGVyICptLCB1X2ludDMyX3Qg
c3JjKQogewogCXJldHVybiAoMCk7CmRpZmYgLS1naXQgYS9zeXMvZGV2L3NvdW5kL21hY2lv
L3R1bWJsZXIuYyBiL3N5cy9kZXYvc291bmQvbWFjaW8vdHVtYmxlci5jCmluZGV4IDMwMDdl
Y2UuLmZiYzBlZjkgMTAwNjQ0Ci0tLSBhL3N5cy9kZXYvc291bmQvbWFjaW8vdHVtYmxlci5j
CisrKyBiL3N5cy9kZXYvc291bmQvbWFjaW8vdHVtYmxlci5jCkBAIC05MCwxMSArOTAsMTEg
QEAgc3RydWN0IHR1bWJsZXJfc29mdGMKIHN0YXRpYyBpbnQJdHVtYmxlcl9wcm9iZShkZXZp
Y2VfdCk7CiBzdGF0aWMgaW50IAl0dW1ibGVyX2F0dGFjaChkZXZpY2VfdCk7CiBzdGF0aWMg
aW50CXR1bWJsZXJfaW5pdChzdHJ1Y3Qgc25kX21peGVyICptKTsKLXN0YXRpYyB2b2lkCXR1
bWJsZXJfdW5pbml0KHN0cnVjdCBzbmRfbWl4ZXIgKm0pOworc3RhdGljIGludAl0dW1ibGVy
X3VuaW5pdChzdHJ1Y3Qgc25kX21peGVyICptKTsKIHN0YXRpYyBpbnQJdHVtYmxlcl9yZWlu
aXQoc3RydWN0IHNuZF9taXhlciAqbSk7CiBzdGF0aWMgaW50CXR1bWJsZXJfc2V0KHN0cnVj
dCBzbmRfbWl4ZXIgKm0sIHVuc2lnbmVkIGRldiwgdW5zaWduZWQgbGVmdCwKIAkJICAgIHVu
c2lnbmVkIHJpZ2h0KTsKLXN0YXRpYyBpbnQJdHVtYmxlcl9zZXRyZWNzcmMoc3RydWN0IHNu
ZF9taXhlciAqbSwgdV9pbnQzMl90IHNyYyk7CitzdGF0aWMgdV9pbnQzMl90CXR1bWJsZXJf
c2V0cmVjc3JjKHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVfaW50MzJfdCBzcmMpOwogCiBzdGF0
aWMgZGV2aWNlX21ldGhvZF90IHR1bWJsZXJfbWV0aG9kc1tdID0gewogCS8qIERldmljZSBp
bnRlcmZhY2UuICovCkBAIC0zNjMsMTAgKzM2MywxMCBAQCB0dW1ibGVyX2luaXQoc3RydWN0
IHNuZF9taXhlciAqbSkKIAlyZXR1cm4gKDApOwogfQogCi1zdGF0aWMgdm9pZAorc3RhdGlj
IGludAogdHVtYmxlcl91bmluaXQoc3RydWN0IHNuZF9taXhlciAqbSkKIHsKLQlyZXR1cm47
CisJcmV0dXJuICgwKTsKIH0KIAogc3RhdGljIGludApAQCAtNDI0LDcgKzQyNCw3IEBAIHR1
bWJsZXJfc2V0KHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVuc2lnbmVkIGRldiwgdW5zaWduZWQg
bGVmdCwgdW5zaWduZWQgcmlnaHQpCiAJcmV0dXJuICgwKTsKIH0KIAotc3RhdGljIGludAor
c3RhdGljIHVfaW50MzJfdAogdHVtYmxlcl9zZXRyZWNzcmMoc3RydWN0IHNuZF9taXhlciAq
bSwgdV9pbnQzMl90IHNyYykKIHsKIAlyZXR1cm4gKDApOwpkaWZmIC0tZ2l0IGEvc3lzL2Rl
di9zb3VuZC9taWRpL21wdTQwMS5jIGIvc3lzL2Rldi9zb3VuZC9taWRpL21wdTQwMS5jCmlu
ZGV4IGRmZGY5NjkuLmU2OWNhZjYgMTAwNjQ0Ci0tLSBhL3N5cy9kZXYvc291bmQvbWlkaS9t
cHU0MDEuYworKysgYi9zeXMvZGV2L3NvdW5kL21pZGkvbXB1NDAxLmMKQEAgLTc1LDE0ICs3
NSwxNCBAQCBzdHJ1Y3QgbXB1NDAxIHsKIHN0YXRpYyB2b2lkIG1wdTQwMV90aW1lb3V0KHZv
aWQgKm0pOwogc3RhdGljIG1wdTQwMV9pbnRyX3QgbXB1NDAxX2ludHI7CiAKLXN0YXRpYyBp
bnQgbXB1NDAxX21pbml0KGtvYmpfdCBvYmosIHN0cnVjdCBtcHU0MDEgKm0pOwotc3RhdGlj
IGludCBtcHU0MDFfbXVuaW5pdChrb2JqX3Qgb2JqLCBzdHJ1Y3QgbXB1NDAxICptKTsKLXN0
YXRpYyBpbnQgbXB1NDAxX21pbnFzaXplKGtvYmpfdCBvYmosIHN0cnVjdCBtcHU0MDEgKm0p
Owotc3RhdGljIGludCBtcHU0MDFfbW91dHFzaXplKGtvYmpfdCBvYmosIHN0cnVjdCBtcHU0
MDEgKm0pOwotc3RhdGljIHZvaWQgbXB1NDAxX21jYWxsYmFjayhrb2JqX3Qgb2JqLCBzdHJ1
Y3QgbXB1NDAxICptLCBpbnQgZmxhZ3MpOwotc3RhdGljIHZvaWQgbXB1NDAxX21jYWxsYmFj
a3Aoa29ial90IG9iaiwgc3RydWN0IG1wdTQwMSAqbSwgaW50IGZsYWdzKTsKLXN0YXRpYyBj
b25zdCBjaGFyICptcHU0MDFfbWRlc2NyKGtvYmpfdCBvYmosIHN0cnVjdCBtcHU0MDEgKm0s
IGludCB2ZXJib3NpdHkpOwotc3RhdGljIGNvbnN0IGNoYXIgKm1wdTQwMV9tcHJvdmlkZXIo
a29ial90IG9iaiwgc3RydWN0IG1wdTQwMSAqbSk7CitzdGF0aWMgaW50IG1wdTQwMV9taW5p
dChzdHJ1Y3Qgc25kX21pZGkgKm9iaiwgdm9pZCAqbSk7CitzdGF0aWMgaW50IG1wdTQwMV9t
dW5pbml0KHN0cnVjdCBzbmRfbWlkaSAqb2JqLCB2b2lkICptKTsKK3N0YXRpYyBpbnQgbXB1
NDAxX21pbnFzaXplKHN0cnVjdCBzbmRfbWlkaSAqb2JqLCB2b2lkICptKTsKK3N0YXRpYyBp
bnQgbXB1NDAxX21vdXRxc2l6ZShzdHJ1Y3Qgc25kX21pZGkgKm9iaiwgdm9pZCAqbSk7Citz
dGF0aWMgdm9pZCBtcHU0MDFfbWNhbGxiYWNrKHN0cnVjdCBzbmRfbWlkaSAqb2JqLCB2b2lk
ICptLCBpbnQgZmxhZ3MpOworc3RhdGljIHZvaWQgbXB1NDAxX21jYWxsYmFja3Aoc3RydWN0
IHNuZF9taWRpICpvYmosIHZvaWQgKm0sIGludCBmbGFncyk7CitzdGF0aWMgY29uc3QgY2hh
ciAqbXB1NDAxX21kZXNjcihzdHJ1Y3Qgc25kX21pZGkgKm9iaiwgdm9pZCAqbSwgaW50IHZl
cmJvc2l0eSk7CitzdGF0aWMgY29uc3QgY2hhciAqbXB1NDAxX21wcm92aWRlcihzdHJ1Y3Qg
c25kX21pZGkgKm9iaiwgdm9pZCAqbSk7CiAKIHN0YXRpYyBrb2JqX21ldGhvZF90IG1wdTQw
MV9tZXRob2RzW10gPSB7CiAJS09CSk1FVEhPRChtcHVfaW5pdCwgbXB1NDAxX21pbml0KSwK
QEAgLTIwOCw4ICsyMDgsOSBAQCBtcHU0MDFfdW5pbml0KHN0cnVjdCBtcHU0MDEgKm0pCiB9
CiAKIHN0YXRpYyBpbnQKLW1wdTQwMV9taW5pdChrb2JqX3Qgb2JqLCBzdHJ1Y3QgbXB1NDAx
ICptKQorbXB1NDAxX21pbml0KHN0cnVjdCBzbmRfbWlkaSAqb2JqLCB2b2lkICpjb29raWUp
CiB7CisJc3RydWN0IG1wdTQwMSAqbSA9IGNvb2tpZTsKIAlpbnQgaTsKIAogCUNNRChtLCBN
UFVfUkVTRVQpOwpAQCAtMjMyLDI3ICsyMzMsMzAgQEAgbXB1NDAxX21pbml0KGtvYmpfdCBv
YmosIHN0cnVjdCBtcHU0MDEgKm0pCiAKIAogaW50Ci1tcHU0MDFfbXVuaW5pdChrb2JqX3Qg
b2JqLCBzdHJ1Y3QgbXB1NDAxICptKQorbXB1NDAxX211bmluaXQoc3RydWN0IHNuZF9taWRp
ICpvYmosIHZvaWQgKmNvb2tpZSkKIHsKKwlzdHJ1Y3QgbXB1NDAxICptID0gY29va2llOwog
CiAJcmV0dXJuIE1QVUZPSV9VTklOSVQobSwgbS0+Y29va2llKTsKIH0KIAogaW50Ci1tcHU0
MDFfbWlucXNpemUoa29ial90IG9iaiwgc3RydWN0IG1wdTQwMSAqbSkKK21wdTQwMV9taW5x
c2l6ZShzdHJ1Y3Qgc25kX21pZGkgKm9iaiwgdm9pZCAqY29va2llKQogewogCXJldHVybiAx
Mjg7CiB9CiAKIGludAotbXB1NDAxX21vdXRxc2l6ZShrb2JqX3Qgb2JqLCBzdHJ1Y3QgbXB1
NDAxICptKQorbXB1NDAxX21vdXRxc2l6ZShzdHJ1Y3Qgc25kX21pZGkgKm9iaiwgdm9pZCAq
Y29va2llKQogewogCXJldHVybiAxMjg7CiB9CiAKIHN0YXRpYyB2b2lkCi1tcHU0MDFfbWNh
bGxiYWNrKGtvYmpfdCBvYmosIHN0cnVjdCBtcHU0MDEgKm0sIGludCBmbGFncykKK21wdTQw
MV9tY2FsbGJhY2soc3RydWN0IHNuZF9taWRpICpvYmosIHZvaWQgKmNvb2tpZSwgaW50IGZs
YWdzKQogeworCXN0cnVjdCBtcHU0MDEgKm0gPSBjb29raWU7CisKICNpZiAwCiAJcHJpbnRm
KCJtcHU0MDFfY2FsbGJhY2sgJXMgJXMgJXMgJXNcbiIsCiAJICAgIGZsYWdzICYgTV9SWCA/
ICJNX1JYIiA6ICIiLApAQCAtMjY3LDIxICsyNzEsMjMgQEAgbXB1NDAxX21jYWxsYmFjayhr
b2JqX3Qgb2JqLCBzdHJ1Y3QgbXB1NDAxICptLCBpbnQgZmxhZ3MpCiB9CiAKIHN0YXRpYyB2
b2lkCi1tcHU0MDFfbWNhbGxiYWNrcChrb2JqX3Qgb2JqLCBzdHJ1Y3QgbXB1NDAxICptLCBp
bnQgZmxhZ3MpCittcHU0MDFfbWNhbGxiYWNrcChzdHJ1Y3Qgc25kX21pZGkgKm9iaiwgdm9p
ZCAqY29va2llLCBpbnQgZmxhZ3MpCiB7CisJc3RydWN0IG1wdTQwMSAqbSA9IGNvb2tpZTsK
KwogLyoJcHJpbnRmKCJtcHU0MDFfY2FsbGJhY2twXG4iKTsgKi8KIAltcHU0MDFfbWNhbGxi
YWNrKG9iaiwgbSwgZmxhZ3MpOwogfQogCiBzdGF0aWMgY29uc3QgY2hhciAqCi1tcHU0MDFf
bWRlc2NyKGtvYmpfdCBvYmosIHN0cnVjdCBtcHU0MDEgKm0sIGludCB2ZXJib3NpdHkpCitt
cHU0MDFfbWRlc2NyKHN0cnVjdCBzbmRfbWlkaSAqb2JqLCB2b2lkICpjb29raWUsIGludCB2
ZXJib3NpdHkpCiB7CiAKIAlyZXR1cm4gImRlc2NyIG1wdTQwMSI7CiB9CiAKIHN0YXRpYyBj
b25zdCBjaGFyICoKLW1wdTQwMV9tcHJvdmlkZXIoa29ial90IG9iaiwgc3RydWN0IG1wdTQw
MSAqbSkKK21wdTQwMV9tcHJvdmlkZXIoc3RydWN0IHNuZF9taWRpICpvYmosIHZvaWQgKmNv
b2tpZSkKIHsKIAlyZXR1cm4gInByb3ZpZGVyIG1wdTQwMSI7CiB9CmRpZmYgLS1naXQgYS9z
eXMvZGV2L3NvdW5kL3BjaS9hbHM0MDAwLmMgYi9zeXMvZGV2L3NvdW5kL3BjaS9hbHM0MDAw
LmMKaW5kZXggNmRmNWZmZC4uNDNlOWUzOSAxMDA2NDQKLS0tIGEvc3lzL2Rldi9zb3VuZC9w
Y2kvYWxzNDAwMC5jCisrKyBiL3N5cy9kZXYvc291bmQvcGNpL2FsczQwMDAuYwpAQCAtMjM2
LDcgKzIzNiw3IEBAIGFsc2NoYW5fc2V0Zm9ybWF0KGtvYmpfdCBvYmosIHZvaWQgKmRhdGEs
IHVfaW50MzJfdCBmb3JtYXQpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRp
YyB1X2ludDMyX3QKIGFsc2NoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwg
dV9pbnQzMl90IHNwZWVkKQogewogCXN0cnVjdAlzY19jaGluZm8gKmNoID0gZGF0YSwgKm90
aGVyOwpAQCAtMjU0LDcgKzI1NCw3IEBAIGFsc2NoYW5fc2V0c3BlZWQoa29ial90IG9iaiwg
dm9pZCAqZGF0YSwgdV9pbnQzMl90IHNwZWVkKQogCXJldHVybiBzcGVlZDsKIH0KIAotc3Rh
dGljIGludAorc3RhdGljIHVfaW50MzJfdAogYWxzY2hhbl9zZXRibG9ja3NpemUoa29ial90
IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IGJsb2Nrc2l6ZSkKIHsKIAlzdHJ1Y3QJc2Nf
Y2hpbmZvICpjaCA9IGRhdGE7CkBAIC0yNjcsNyArMjY3LDcgQEAgYWxzY2hhbl9zZXRibG9j
a3NpemUoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IGJsb2Nrc2l6ZSkKIAly
ZXR1cm4gYmxvY2tzaXplOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBh
bHNjaGFuX2dldHB0cihrb2JqX3Qgb2JqLCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBzY19j
aGluZm8gKmNoID0gZGF0YTsKQEAgLTU5NCw3ICs1OTQsNyBAQCBhbHNtaXhfc2V0KHN0cnVj
dCBzbmRfbWl4ZXIgKm0sIHVuc2lnbmVkIGRldiwgdW5zaWduZWQgbGVmdCwgdW5zaWduZWQg
cmlnaHQpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1X2ludDMyX3QK
IGFsc21peF9zZXRyZWNzcmMoc3RydWN0IHNuZF9taXhlciAqbSwgdV9pbnQzMl90IHNyYykK
IHsKIAlzdHJ1Y3Qgc2NfaW5mbyAqc2MgPSBtaXhfZ2V0ZGV2aW5mbyhtKTsKZGlmZiAtLWdp
dCBhL3N5cy9kZXYvc291bmQvcGNpL2F0aWl4cC5jIGIvc3lzL2Rldi9zb3VuZC9wY2kvYXRp
aXhwLmMKaW5kZXggNmVjNTBiYS4uMzU1ZGRlNSAxMDA2NDQKLS0tIGEvc3lzL2Rldi9zb3Vu
ZC9wY2kvYXRpaXhwLmMKKysrIGIvc3lzL2Rldi9zb3VuZC9wY2kvYXRpaXhwLmMKQEAgLTE4
NywxMyArMTg3LDEzIEBAIHN0YXRpYyBpbnQgYXRpaXhwX3dyY2Qoa29ial90LCB2b2lkICos
IGludCwgdWludDMyX3QpOwogc3RhdGljIHZvaWQgICphdGlpeHBfY2hhbl9pbml0KGtvYmpf
dCwgdm9pZCAqLCBzdHJ1Y3Qgc25kX2RidWYgKiwKIAkJCQkJCXN0cnVjdCBwY21fY2hhbm5l
bCAqLCBpbnQpOwogc3RhdGljIGludCAgICBhdGlpeHBfY2hhbl9zZXRmb3JtYXQoa29ial90
LCB2b2lkICosIHVpbnQzMl90KTsKLXN0YXRpYyBpbnQgICAgYXRpaXhwX2NoYW5fc2V0c3Bl
ZWQoa29ial90LCB2b2lkICosIHVpbnQzMl90KTsKK3N0YXRpYyB1aW50MzJfdCBhdGlpeHBf
Y2hhbl9zZXRzcGVlZChrb2JqX3QsIHZvaWQgKiwgdWludDMyX3QpOwogc3RhdGljIGludCAg
ICBhdGlpeHBfY2hhbl9zZXRmcmFnbWVudHMoa29ial90LCB2b2lkICosIHVpbnQzMl90LCB1
aW50MzJfdCk7Ci1zdGF0aWMgaW50ICAgIGF0aWl4cF9jaGFuX3NldGJsb2Nrc2l6ZShrb2Jq
X3QsIHZvaWQgKiwgdWludDMyX3QpOworc3RhdGljIHVpbnQzMl90IGF0aWl4cF9jaGFuX3Nl
dGJsb2Nrc2l6ZShrb2JqX3QsIHZvaWQgKiwgdWludDMyX3QpOwogc3RhdGljIHZvaWQgICBh
dGlpeHBfYnVpbGRzZ2R0KHN0cnVjdCBhdGlpeHBfY2hpbmZvICopOwogc3RhdGljIGludCAg
ICBhdGlpeHBfY2hhbl90cmlnZ2VyKGtvYmpfdCwgdm9pZCAqLCBpbnQpOwogc3RhdGljIF9f
aW5saW5lIHVpbnQzMl90IGF0aWl4cF9kbWFwb3Moc3RydWN0IGF0aWl4cF9jaGluZm8gKik7
Ci1zdGF0aWMgaW50ICAgIGF0aWl4cF9jaGFuX2dldHB0cihrb2JqX3QsIHZvaWQgKik7Citz
dGF0aWMgdWludDMyX3QgYXRpaXhwX2NoYW5fZ2V0cHRyKGtvYmpfdCwgdm9pZCAqKTsKIHN0
YXRpYyBzdHJ1Y3QgcGNtY2hhbl9jYXBzICphdGlpeHBfY2hhbl9nZXRjYXBzKGtvYmpfdCwg
dm9pZCAqKTsKIAogc3RhdGljIHZvaWQgYXRpaXhwX2ludHIodm9pZCAqKTsKQEAgLTUxNSw3
ICs1MTUsNyBAQCBhdGlpeHBfY2hhbl9zZXRmb3JtYXQoa29ial90IG9iaiwgdm9pZCAqZGF0
YSwgdWludDMyX3QgZm9ybWF0KQogCXJldHVybiAoMCk7CiB9CiAKLXN0YXRpYyBpbnQKK3N0
YXRpYyB1aW50MzJfdAogYXRpaXhwX2NoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAq
ZGF0YSwgdWludDMyX3Qgc3BkKQogewogCS8qIFhYWCBXZSdyZSBzdXBwb3NlZCB0byBkbyBW
UkEvRFJBIHByb2Nlc3NpbmcgcmlnaHQgaGVyZSAqLwpAQCAtNTYxLDcgKzU2MSw3IEBAIGF0
aWl4cF9jaGFuX3NldGZyYWdtZW50cyhrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLAogCXJldHVy
biAoMSk7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1aW50MzJfdAogYXRpaXhwX2NoYW5f
c2V0YmxvY2tzaXplKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVpbnQzMl90IGJsa3N6KQog
ewogCXN0cnVjdCBhdGlpeHBfY2hpbmZvICpjaCA9IGRhdGE7CkBAIC04MTgsNyArODE4LDcg
QEAgYXRpaXhwX2NoYW5fdHJpZ2dlcihrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCBpbnQgZ28p
CiAJcmV0dXJuICgwKTsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVpbnQzMl90CiBhdGlp
eHBfY2hhbl9nZXRwdHIoa29ial90IG9iaiwgdm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3QgYXRp
aXhwX2NoaW5mbyAqY2ggPSBkYXRhOwpkaWZmIC0tZ2l0IGEvc3lzL2Rldi9zb3VuZC9wY2kv
Y21pLmMgYi9zeXMvZGV2L3NvdW5kL3BjaS9jbWkuYwppbmRleCBjZGExZTgyLi5mNWQxMDM0
IDEwMDY0NAotLS0gYS9zeXMvZGV2L3NvdW5kL3BjaS9jbWkuYworKysgYi9zeXMvZGV2L3Nv
dW5kL3BjaS9jbWkuYwpAQCAtNDA5LDcgKzQwOSw3IEBAIGNtaWNoYW5fc2V0Zm9ybWF0KGtv
YmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBmb3JtYXQpCiAJcmV0dXJuIDA7CiB9
CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1X2ludDMyX3QKIGNtaWNoYW5fc2V0c3BlZWQoa29i
al90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IHNwZWVkKQogewogCXN0cnVjdCBzY19j
aGluZm8gKmNoID0gZGF0YTsKQEAgLTQ1NSw3ICs0NTUsNyBAQCBjbWljaGFuX3NldHNwZWVk
KGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBzcGVlZCkKIAlyZXR1cm4gY2gt
PnNwZDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogY21pY2hhbl9zZXRi
bG9ja3NpemUoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IGJsb2Nrc2l6ZSkK
IHsKIAlzdHJ1Y3Qgc2NfY2hpbmZvICpjaCA9IGRhdGE7CkBAIC01MDUsNyArNTA1LDcgQEAg
Y21pY2hhbl90cmlnZ2VyKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIGludCBnbykKIAlyZXR1
cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogY21pY2hhbl9nZXRw
dHIoa29ial90IG9iaiwgdm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3Qgc2NfY2hpbmZvCSpjaCA9
IGRhdGE7CkBAIC03MTQsNyArNzE0LDcgQEAgY21pbWl4X3NldChzdHJ1Y3Qgc25kX21peGVy
ICptLCB1bnNpZ25lZCBkZXYsIHVuc2lnbmVkIGxlZnQsIHVuc2lnbmVkIHJpZ2h0KQogCXJl
dHVybiAwOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBjbWltaXhfc2V0
cmVjc3JjKHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVfaW50MzJfdCBzcmMpCiB7CiAJc3RydWN0
IHNjX2luZm8gKnNjID0gbWl4X2dldGRldmluZm8obSk7CkBAIC03NzUsNyArNzc1LDcgQEAg
TUlYRVJfREVDTEFSRShjbWlfbWl4ZXIpOwogICovCiAKIHN0YXRpYyB1bnNpZ25lZCBjaGFy
Ci1jbWlfbXJlYWQodm9pZCAqYXJnLCBzdHJ1Y3Qgc2NfaW5mbyAqc2MsIGludCByZWcpCitj
bWlfbXJlYWQoc3RydWN0IG1wdTQwMSAqYXJnLCB2b2lkICp1bnVzZWQsIGludCByZWcpCiB7
CQogCXVuc2lnbmVkIGludCBkOwogCkBAIC03ODYsMTUgKzc4NiwxNiBAQCBjbWlfbXJlYWQo
dm9pZCAqYXJnLCBzdHJ1Y3Qgc2NfaW5mbyAqc2MsIGludCByZWcpCiB9CiAKIHN0YXRpYyB2
b2lkCi1jbWlfbXdyaXRlKHZvaWQgKmFyZywgc3RydWN0IHNjX2luZm8gKnNjLCBpbnQgcmVn
LCB1bnNpZ25lZCBjaGFyIGIpCitjbWlfbXdyaXRlKHN0cnVjdCBtcHU0MDEgKmFyZywgdm9p
ZCAqdW51c2VkLCBpbnQgcmVnLCB1bnNpZ25lZCBjaGFyIGIpCiB7CiAKIAlidXNfc3BhY2Vf
d3JpdGVfMSgwLDAsMHgzMzAgKyByZWcgLCBiKTsKIH0KIAogc3RhdGljIGludAotY21pX211
bmluaXQodm9pZCAqYXJnLCBzdHJ1Y3Qgc2NfaW5mbyAqc2MpCitjbWlfbXVuaW5pdChzdHJ1
Y3QgbXB1NDAxICphcmcsIHZvaWQgKmNvb2tpZSkKIHsKKwlzdHJ1Y3Qgc2NfaW5mbyAqc2Mg
PSBjb29raWU7CiAKIAlzbmRfbXR4bG9jayhzYy0+bG9jayk7CiAJc2MtPm1wdV9pbnRyID0g
MDsKZGlmZiAtLWdpdCBhL3N5cy9kZXYvc291bmQvcGNpL2NzNDI4MS5jIGIvc3lzL2Rldi9z
b3VuZC9wY2kvY3M0MjgxLmMKaW5kZXggNWI0YjgyMS4uNWFlMWI1OSAxMDA2NDQKLS0tIGEv
c3lzL2Rldi9zb3VuZC9wY2kvY3M0MjgxLmMKKysrIGIvc3lzL2Rldi9zb3VuZC9wY2kvY3M0
MjgxLmMKQEAgLTI0NCw3ICsyNDQsNyBAQCBjczQyODFfZm9ybWF0X3RvX2Jwcyh1X2ludDMy
X3QgZm9ybWF0KQogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIC8qIGFjOTcgY29kZWMgKi8KIAot
c3RhdGljIHVfaW50MzJfdAorc3RhdGljIGludAogY3M0MjgxX3JkY2Qoa29ial90IG9iaiwg
dm9pZCAqZGV2aW5mbywgaW50IHJlZ25vKQogewogICAgIHN0cnVjdCBzY19pbmZvICpzYyA9
IChzdHJ1Y3Qgc2NfaW5mbyAqKWRldmluZm87CkBAIC0yNzgsNyArMjc4LDcgQEAgY3M0Mjgx
X3JkY2Qoa29ial90IG9iaiwgdm9pZCAqZGV2aW5mbywgaW50IHJlZ25vKQogICAgIHJldHVy
biBjczQyODFfcmQoc2MsIENTNDI4MVBDSV9BQ1NEQSk7CiB9CiAKLXN0YXRpYyB2b2lkCitz
dGF0aWMgaW50CiBjczQyODFfd3JjZChrb2JqX3Qgb2JqLCB2b2lkICpkZXZpbmZvLCBpbnQg
cmVnbm8sIHVfaW50MzJfdCBkYXRhKQogewogICAgIHN0cnVjdCBzY19pbmZvICpzYyA9IChz
dHJ1Y3Qgc2NfaW5mbyAqKWRldmluZm87CkBAIC0yOTUsNiArMjk1LDggQEAgY3M0MjgxX3dy
Y2Qoa29ial90IG9iaiwgdm9pZCAqZGV2aW5mbywgaW50IHJlZ25vLCB1X2ludDMyX3QgZGF0
YSkKICAgICBpZiAoY3M0MjgxX3dhaXRjbHIoc2MsIENTNDI4MVBDSV9BQ0NUTCwgQ1M0Mjgx
UENJX0FDQ1RMX0RDViwgMjUwKSA9PSAwKSB7CiAJZGV2aWNlX3ByaW50ZihzYy0+ZGV2LCJj
czQyODFfd3JjZDogRENWIGRpZCBub3QgZ29cbiIpOwogICAgIH0KKworICAgIHJldHVybiAo
MCk7CiB9CiAKIHN0YXRpYyBrb2JqX21ldGhvZF90IGNzNDI4MV9hYzk3X21ldGhvZHNbXSA9
IHsKQEAgLTMzNCw3ICszMzYsNyBAQCBjczQyODFjaGFuX2luaXQoa29ial90IG9iaiwgdm9p
ZCAqZGV2aW5mbywgc3RydWN0IHNuZF9kYnVmICpiLCBzdHJ1Y3QgcGNtX2NoYW5uZQogICAg
IHJldHVybiBjaDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogY3M0Mjgx
Y2hhbl9zZXRibG9ja3NpemUoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IGJs
b2Nrc2l6ZSkKIHsKICAgICBzdHJ1Y3Qgc2NfY2hpbmZvICpjaCA9IGRhdGE7CkBAIC0zNTYs
NyArMzU4LDcgQEAgY3M0MjgxY2hhbl9zZXRibG9ja3NpemUoa29ial90IG9iaiwgdm9pZCAq
ZGF0YSwgdV9pbnQzMl90IGJsb2Nrc2l6ZSkKICAgICByZXR1cm4gY2gtPmJsa3N6OwogfQog
Ci1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBjczQyODFjaGFuX3NldHNwZWVkKGtv
YmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBzcGVlZCkKIHsKICAgICBzdHJ1Y3Qg
c2NfY2hpbmZvICpjaCA9IGRhdGE7CkBAIC0zOTksNyArNDAxLDcgQEAgY3M0MjgxY2hhbl9z
ZXRmb3JtYXQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IGZvcm1hdCkKICAg
ICByZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogY3M0Mjgx
Y2hhbl9nZXRwdHIoa29ial90IG9iaiwgdm9pZCAqZGF0YSkKIHsKICAgICBzdHJ1Y3Qgc2Nf
Y2hpbmZvICpjaCA9IGRhdGE7CmRpZmYgLS1naXQgYS9zeXMvZGV2L3NvdW5kL3BjaS9jc2Fw
Y20uYyBiL3N5cy9kZXYvc291bmQvcGNpL2NzYXBjbS5jCmluZGV4IGM5MzJjMWQuLmRmNWYy
ZDAgMTAwNjQ0Ci0tLSBhL3N5cy9kZXYvc291bmQvcGNpL2NzYXBjbS5jCisrKyBiL3N5cy9k
ZXYvc291bmQvcGNpL2NzYXBjbS5jCkBAIC01NDgsNyArNTQ4LDcgQEAgY3NhY2hhbl9zZXRm
b3JtYXQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IGZvcm1hdCkKIAlyZXR1
cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogY3NhY2hhbl9zZXRz
cGVlZChrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3Qgc3BlZWQpCiB7CiAJc3Ry
dWN0IGNzYV9jaGluZm8gKmNoID0gZGF0YTsKQEAgLTU1Nyw3ICs1NTcsNyBAQCBjc2FjaGFu
X3NldHNwZWVkKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBzcGVlZCkKIAly
ZXR1cm4gY2gtPnNwZDsgLyogWFhYIGNhbGMgcmVhbCBzcGVlZCAqLwogfQogCi1zdGF0aWMg
aW50CitzdGF0aWMgdV9pbnQzMl90CiBjc2FjaGFuX3NldGJsb2Nrc2l6ZShrb2JqX3Qgb2Jq
LCB2b2lkICpkYXRhLCB1X2ludDMyX3QgYmxvY2tzaXplKQogewogCXJldHVybiBDUzQ2MXhf
QlVGRlNJWkUgLyAyOwpAQCAtNTg5LDcgKzU4OSw3IEBAIGNzYWNoYW5fdHJpZ2dlcihrb2Jq
X3Qgb2JqLCB2b2lkICpkYXRhLCBpbnQgZ28pCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBp
bnQKK3N0YXRpYyB1X2ludDMyX3QKIGNzYWNoYW5fZ2V0cHRyKGtvYmpfdCBvYmosIHZvaWQg
KmRhdGEpCiB7CiAJc3RydWN0IGNzYV9jaGluZm8gKmNoID0gZGF0YTsKZGlmZiAtLWdpdCBh
L3N5cy9kZXYvc291bmQvcGNpL2RzMS5jIGIvc3lzL2Rldi9zb3VuZC9wY2kvZHMxLmMKaW5k
ZXggOWFkMjRmZC4uYjRjOTVmYyAxMDA2NDQKLS0tIGEvc3lzL2Rldi9zb3VuZC9wY2kvZHMx
LmMKKysrIGIvc3lzL2Rldi9zb3VuZC9wY2kvZHMxLmMKQEAgLTUxMiw3ICs1MTIsNyBAQCBk
czFwY2hhbl9zZXRmb3JtYXQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IGZv
cm1hdCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAog
ZHMxcGNoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IHNw
ZWVkKQogewogCXN0cnVjdCBzY19wY2hpbmZvICpjaCA9IGRhdGE7CkBAIC01MjIsNyArNTIy
LDcgQEAgZHMxcGNoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQz
Ml90IHNwZWVkKQogCXJldHVybiBzcGVlZDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVf
aW50MzJfdAogZHMxcGNoYW5fc2V0YmxvY2tzaXplKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEs
IHVfaW50MzJfdCBibG9ja3NpemUpCiB7CiAJc3RydWN0IHNjX3BjaGluZm8gKmNoID0gZGF0
YTsKQEAgLTU2Niw3ICs1NjYsNyBAQCBkczFwY2hhbl90cmlnZ2VyKGtvYmpfdCBvYmosIHZv
aWQgKmRhdGEsIGludCBnbykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGlj
IHVfaW50MzJfdAogZHMxcGNoYW5fZ2V0cHRyKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEpCiB7
CiAJc3RydWN0IHNjX3BjaGluZm8gKmNoID0gZGF0YTsKQEAgLTY0MCw3ICs2NDAsNyBAQCBk
czFyY2hhbl9zZXRmb3JtYXQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IGZv
cm1hdCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAog
ZHMxcmNoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IHNw
ZWVkKQogewogCXN0cnVjdCBzY19yY2hpbmZvICpjaCA9IGRhdGE7CkBAIC02NTAsNyArNjUw
LDcgQEAgZHMxcmNoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQz
Ml90IHNwZWVkKQogCXJldHVybiBzcGVlZDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVf
aW50MzJfdAogZHMxcmNoYW5fc2V0YmxvY2tzaXplKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEs
IHVfaW50MzJfdCBibG9ja3NpemUpCiB7CiAJc3RydWN0IHNjX3JjaGluZm8gKmNoID0gZGF0
YTsKQEAgLTY5Niw3ICs2OTYsNyBAQCBkczFyY2hhbl90cmlnZ2VyKGtvYmpfdCBvYmosIHZv
aWQgKmRhdGEsIGludCBnbykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGlj
IHVfaW50MzJfdAogZHMxcmNoYW5fZ2V0cHRyKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEpCiB7
CiAJc3RydWN0IHNjX3JjaGluZm8gKmNoID0gZGF0YTsKZGlmZiAtLWdpdCBhL3N5cy9kZXYv
c291bmQvcGNpL2VtdTEwazEuYyBiL3N5cy9kZXYvc291bmQvcGNpL2VtdTEwazEuYwppbmRl
eCA0M2NjNDEyLi5lMTE2NWM3IDEwMDY0NAotLS0gYS9zeXMvZGV2L3NvdW5kL3BjaS9lbXUx
MGsxLmMKKysrIGIvc3lzL2Rldi9zb3VuZC9wY2kvZW11MTBrMS5jCkBAIC03NjQsNyArNzY0
LDcgQEAgZW11cGNoYW5fc2V0Zm9ybWF0KGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50
MzJfdCBmb3JtYXQpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1X2lu
dDMyX3QKIGVtdXBjaGFuX3NldHNwZWVkKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50
MzJfdCBzcGVlZCkKIHsKIAlzdHJ1Y3Qgc2NfcGNoaW5mbyAqY2ggPSBkYXRhOwpAQCAtNzcz
LDcgKzc3Myw3IEBAIGVtdXBjaGFuX3NldHNwZWVkKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEs
IHVfaW50MzJfdCBzcGVlZCkKIAlyZXR1cm4gY2gtPnNwZDsKIH0KIAotc3RhdGljIGludAor
c3RhdGljIHVfaW50MzJfdAogZW11cGNoYW5fc2V0YmxvY2tzaXplKGtvYmpfdCBvYmosIHZv
aWQgKmRhdGEsIHVfaW50MzJfdCBibG9ja3NpemUpCiB7CiAJc3RydWN0IHNjX3BjaGluZm8g
KmNoID0gZGF0YTsKQEAgLTgxOSw3ICs4MTksNyBAQCBlbXVwY2hhbl90cmlnZ2VyKGtvYmpf
dCBvYmosIHZvaWQgKmRhdGEsIGludCBnbykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGlu
dAorc3RhdGljIHVfaW50MzJfdAogZW11cGNoYW5fZ2V0cHRyKGtvYmpfdCBvYmosIHZvaWQg
KmRhdGEpCiB7CiAJc3RydWN0IHNjX3BjaGluZm8gKmNoID0gZGF0YTsKQEAgLTkxNSw3ICs5
MTUsNyBAQCBlbXVyY2hhbl9zZXRmb3JtYXQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9p
bnQzMl90IGZvcm1hdCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVf
aW50MzJfdAogZW11cmNoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9p
bnQzMl90IHNwZWVkKQogewogCXN0cnVjdCBzY19yY2hpbmZvICpjaCA9IGRhdGE7CkBAIC05
MzQsNyArOTM0LDcgQEAgZW11cmNoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0
YSwgdV9pbnQzMl90IHNwZWVkKQogCXJldHVybiBjaC0+c3BkOwogfQogCi1zdGF0aWMgaW50
CitzdGF0aWMgdV9pbnQzMl90CiBlbXVyY2hhbl9zZXRibG9ja3NpemUoa29ial90IG9iaiwg
dm9pZCAqZGF0YSwgdV9pbnQzMl90IGJsb2Nrc2l6ZSkKIHsKIAlzdHJ1Y3Qgc2NfcmNoaW5m
byAqY2ggPSBkYXRhOwpAQCAtMTAzMyw3ICsxMDMzLDcgQEAgZW11cmNoYW5fdHJpZ2dlcihr
b2JqX3Qgb2JqLCB2b2lkICpkYXRhLCBpbnQgZ28pCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRp
YyBpbnQKK3N0YXRpYyB1X2ludDMyX3QKIGVtdXJjaGFuX2dldHB0cihrb2JqX3Qgb2JqLCB2
b2lkICpkYXRhKQogewogCXN0cnVjdCBzY19yY2hpbmZvICpjaCA9IGRhdGE7CkBAIC0xMDY4
LDggKzEwNjgsOSBAQCBzdGF0aWMga29ial9tZXRob2RfdCBlbXVyY2hhbl9tZXRob2RzW10g
PSB7CiBDSEFOTkVMX0RFQ0xBUkUoZW11cmNoYW4pOwogCiBzdGF0aWMgdW5zaWduZWQgY2hh
cgotZW11X21yZWFkKHZvaWQgKmFyZywgc3RydWN0IHNjX2luZm8gKnNjLCBpbnQgcmVnKQot
ewkKK2VtdV9tcmVhZChzdHJ1Y3QgbXB1NDAxICphcmcsIHZvaWQgKmNvb2tpZSwgaW50IHJl
ZykKK3sKKwlzdHJ1Y3Qgc2NfaW5mbyAqc2MgPSBjb29raWU7CiAJdW5zaWduZWQgaW50IGQ7
CiAKIAlkID0gZW11X3JkKHNjLCAweDE4ICsgcmVnLCAxKTsgCkBAIC0xMDc3LDE1ICsxMDc4
LDE3IEBAIGVtdV9tcmVhZCh2b2lkICphcmcsIHN0cnVjdCBzY19pbmZvICpzYywgaW50IHJl
ZykKIH0KIAogc3RhdGljIHZvaWQKLWVtdV9td3JpdGUodm9pZCAqYXJnLCBzdHJ1Y3Qgc2Nf
aW5mbyAqc2MsIGludCByZWcsIHVuc2lnbmVkIGNoYXIgYikKK2VtdV9td3JpdGUoc3RydWN0
IG1wdTQwMSAqYXJnLCB2b2lkICpjb29raWUsIGludCByZWcsIHVuc2lnbmVkIGNoYXIgYikK
IHsKKwlzdHJ1Y3Qgc2NfaW5mbyAqc2MgPSBjb29raWU7CiAKIAllbXVfd3Ioc2MsIDB4MTgg
KyByZWcsIGIsIDEpOwogfQogCiBzdGF0aWMgaW50Ci1lbXVfbXVuaW5pdCh2b2lkICphcmcs
IHN0cnVjdCBzY19pbmZvICpzYykKK2VtdV9tdW5pbml0KHN0cnVjdCBtcHU0MDEgKmFyZywg
dm9pZCAqY29va2llKQogeworCXN0cnVjdCBzY19pbmZvICpzYyA9IGNvb2tpZTsKIAogCXNu
ZF9tdHhsb2NrKHNjLT5sb2NrKTsKIAlzYy0+bXB1X2ludHIgPSAwOwpkaWZmIC0tZ2l0IGEv
c3lzL2Rldi9zb3VuZC9wY2kvZW11MTBreC1taWRpLmMgYi9zeXMvZGV2L3NvdW5kL3BjaS9l
bXUxMGt4LW1pZGkuYwppbmRleCA3MzZlN2MyLi44MDQ5YzVhIDEwMDY0NAotLS0gYS9zeXMv
ZGV2L3NvdW5kL3BjaS9lbXUxMGt4LW1pZGkuYworKysgYi9zeXMvZGV2L3NvdW5kL3BjaS9l
bXUxMGt4LW1pZGkuYwpAQCAtNjUsOCArNjUsOSBAQCBzdGF0aWMgdWludDMyX3QJZW11X21p
ZGlfY2FyZF9pbnRyKHZvaWQgKnAsIHVpbnQzMl90IGFyZyk7CiBzdGF0aWMgZGV2Y2xhc3Nf
dCBlbXVfbWlkaV9kZXZjbGFzczsKIAogc3RhdGljIHVuc2lnbmVkIGNoYXIKLWVtdV9tcmVh
ZCh2b2lkICphcmcgX191bnVzZWQsIHN0cnVjdCBlbXVfbWlkaV9zb2Z0YyAqc2MsIGludCBy
ZWcpCitlbXVfbXJlYWQoc3RydWN0IG1wdTQwMSAqYXJnIF9fdW51c2VkLCB2b2lkICpjb29r
aWUsIGludCByZWcpCiB7CisJc3RydWN0IGVtdV9taWRpX3NvZnRjICpzYyA9IGNvb2tpZTsK
IAl1bnNpZ25lZCBpbnQgZDsKIAogCWQgPSAwOwpAQCAtNzksOCArODAsOSBAQCBlbXVfbXJl
YWQodm9pZCAqYXJnIF9fdW51c2VkLCBzdHJ1Y3QgZW11X21pZGlfc29mdGMgKnNjLCBpbnQg
cmVnKQogfQogCiBzdGF0aWMgdm9pZAotZW11X213cml0ZSh2b2lkICphcmcgX191bnVzZWQs
IHN0cnVjdCBlbXVfbWlkaV9zb2Z0YyAqc2MsIGludCByZWcsIHVuc2lnbmVkIGNoYXIgYikK
K2VtdV9td3JpdGUoc3RydWN0IG1wdTQwMSAqYXJnIF9fdW51c2VkLCB2b2lkICpjb29raWUs
IGludCByZWcsIHVuc2lnbmVkIGNoYXIgYikKIHsKKwlzdHJ1Y3QgZW11X21pZGlfc29mdGMg
KnNjID0gY29va2llOwogCiAJaWYgKHNjLT5pc19lbXUxMGsxKQogCQllbXVfd3Ioc2MtPmNh
cmQsIDB4MTggKyByZWcsIGIsIDEpOwpAQCAtODksOCArOTEsOSBAQCBlbXVfbXdyaXRlKHZv
aWQgKmFyZyBfX3VudXNlZCwgc3RydWN0IGVtdV9taWRpX3NvZnRjICpzYywgaW50IHJlZywg
dW5zaWduZWQgY2hhcgogfQogCiBzdGF0aWMgaW50Ci1lbXVfbXVuaW5pdCh2b2lkICphcmcg
X191bnVzZWQsIHN0cnVjdCBlbXVfbWlkaV9zb2Z0YyAqc2MpCitlbXVfbXVuaW5pdChzdHJ1
Y3QgbXB1NDAxICphcmcgX191bnVzZWQsIHZvaWQgKmNvb2tpZSkKIHsKKwlzdHJ1Y3QgZW11
X21pZGlfc29mdGMgKnNjID0gY29va2llOwogCiAJbXR4X2xvY2soJnNjLT5tdHgpOwogCXNj
LT5tcHVfaW50ciA9IE5VTEw7CmRpZmYgLS1naXQgYS9zeXMvZGV2L3NvdW5kL3BjaS9lbXUx
MGt4LXBjbS5jIGIvc3lzL2Rldi9zb3VuZC9wY2kvZW11MTBreC1wY20uYwppbmRleCA5OWZl
ZmQ3Li4yYTMwNWRlIDEwMDY0NAotLS0gYS9zeXMvZGV2L3NvdW5kL3BjaS9lbXUxMGt4LXBj
bS5jCisrKyBiL3N5cy9kZXYvc291bmQvcGNpL2VtdTEwa3gtcGNtLmMKQEAgLTM4NSw3ICsz
ODUsNyBAQCBlbXVfZHNwbWl4ZXJfc2V0KHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVuc2lnbmVk
IGRldiwgdW5zaWduZWQgbGVmdCwgdW5zaWduZWQgcmlnaAogCXJldHVybiAgKDApOwogfQog
Ci1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBlbXVfZHNwbWl4ZXJfc2V0cmVjc3Jj
KHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVfaW50MzJfdCBzcmMpCiB7CiAJc3RydWN0IGVtdV9w
Y21faW5mbyAqc2M7CkBAIC00ODYsNyArNDg2LDcgQEAgZW11X2VmeG1peGVyX3NldChzdHJ1
Y3Qgc25kX21peGVyICptLCB1bnNpZ25lZCBkZXYsIHVuc2lnbmVkIGxlZnQsIHVuc2lnbmVk
IHJpZ2gKIAlyZXR1cm4gICgwKTsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJf
dAogZW11X2VmeG1peGVyX3NldHJlY3NyYyhzdHJ1Y3Qgc25kX21peGVyICptIF9fdW51c2Vk
LCB1X2ludDMyX3Qgc3JjIF9fdW51c2VkKQogewogCXJldHVybiAoU09VTkRfTUFTS19NT05J
VE9SKTsKQEAgLTc1Myw3ICs3NTMsNyBAQCBlbXVwY2hhbl9zZXRmb3JtYXQoa29ial90IG9i
aiBfX3VudXNlZCwgdm9pZCAqY19kZXZpbmZvLCB1aW50MzJfdCBmb3JtYXQpCiAJcmV0dXJu
ICgwKTsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVpbnQzMl90CiBlbXVwY2hhbl9zZXRz
cGVlZChrb2JqX3Qgb2JqIF9fdW51c2VkLCB2b2lkICpjX2RldmluZm8sIHVpbnQzMl90IHNw
ZWVkKQogewogCXN0cnVjdCBlbXVfcGNtX3BjaGluZm8gKmNoID0gY19kZXZpbmZvOwpAQCAt
NzYyLDcgKzc2Miw3IEBAIGVtdXBjaGFuX3NldHNwZWVkKGtvYmpfdCBvYmogX191bnVzZWQs
IHZvaWQgKmNfZGV2aW5mbywgdWludDMyX3Qgc3BlZWQpCiAJcmV0dXJuIChjaC0+c3BkKTsK
IH0KIAotc3RhdGljIGludAorc3RhdGljIHVpbnQzMl90CiBlbXVwY2hhbl9zZXRibG9ja3Np
emUoa29ial90IG9iaiBfX3VudXNlZCwgdm9pZCAqY19kZXZpbmZvLCB1aW50MzJfdCBibG9j
a3NpemUpCiB7CiAJc3RydWN0IGVtdV9wY21fcGNoaW5mbyAqY2ggPSBjX2RldmluZm87CkBA
IC04MDQsNyArODA0LDcgQEAgZW11cGNoYW5fdHJpZ2dlcihrb2JqX3Qgb2JqIF9fdW51c2Vk
LCB2b2lkICpjX2RldmluZm8sIGludCBnbykKIAlyZXR1cm4gKDApOwogfQogCi1zdGF0aWMg
aW50CitzdGF0aWMgdWludDMyX3QKIGVtdXBjaGFuX2dldHB0cihrb2JqX3Qgb2JqIF9fdW51
c2VkLCB2b2lkICpjX2RldmluZm8pCiB7CiAJc3RydWN0IGVtdV9wY21fcGNoaW5mbyAqY2gg
PSBjX2RldmluZm87CkBAIC05MDIsNyArOTAyLDcgQEAgZW11cmNoYW5fc2V0Zm9ybWF0KGtv
YmpfdCBvYmogX191bnVzZWQsIHZvaWQgKmNfZGV2aW5mbywgdWludDMyX3QgZm9ybWF0KQog
CXJldHVybiAoMCk7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1aW50MzJfdAogZW11cmNo
YW5fc2V0c3BlZWQoa29ial90IG9iaiBfX3VudXNlZCwgdm9pZCAqY19kZXZpbmZvLCB1aW50
MzJfdCBzcGVlZCkKIHsKIAlzdHJ1Y3QgZW11X3BjbV9yY2hpbmZvICpjaCA9IGNfZGV2aW5m
bzsKQEAgLTkxNiw3ICs5MTYsNyBAQCBlbXVyY2hhbl9zZXRzcGVlZChrb2JqX3Qgb2JqIF9f
dW51c2VkLCB2b2lkICpjX2RldmluZm8sIHVpbnQzMl90IHNwZWVkKQogCXJldHVybiAoY2gt
PnNwZCk7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1aW50MzJfdAogZW11cmNoYW5fc2V0
YmxvY2tzaXplKGtvYmpfdCBvYmogX191bnVzZWQsIHZvaWQgKmNfZGV2aW5mbywgdWludDMy
X3QgYmxvY2tzaXplKQogewogCXN0cnVjdCBlbXVfcGNtX3JjaGluZm8gKmNoID0gY19kZXZp
bmZvOwpAQCAtMTAwMSw3ICsxMDAxLDcgQEAgZW11cmNoYW5fdHJpZ2dlcihrb2JqX3Qgb2Jq
IF9fdW51c2VkLCB2b2lkICpjX2RldmluZm8sIGludCBnbykKIAlyZXR1cm4gKDApOwogfQog
Ci1zdGF0aWMgaW50CitzdGF0aWMgdWludDMyX3QKIGVtdXJjaGFuX2dldHB0cihrb2JqX3Qg
b2JqIF9fdW51c2VkLCB2b2lkICpjX2RldmluZm8pCiB7CiAJc3RydWN0IGVtdV9wY21fcmNo
aW5mbyAqY2ggPSBjX2RldmluZm87CkBAIC0xMDcxLDcgKzEwNzEsNyBAQCBlbXVmeHJjaGFu
X3NldGZvcm1hdChrb2JqX3Qgb2JqIF9fdW51c2VkLCB2b2lkICpjX2RldmluZm8gX191bnVz
ZWQsIHVpbnQzMl90IGZvcgogCXJldHVybiAoRUlOVkFMKTsKIH0KIAotc3RhdGljIGludAor
c3RhdGljIHVpbnQzMl90CiBlbXVmeHJjaGFuX3NldHNwZWVkKGtvYmpfdCBvYmogX191bnVz
ZWQsIHZvaWQgKmNfZGV2aW5mbywgdWludDMyX3Qgc3BlZWQpCiB7CiAJc3RydWN0IGVtdV9w
Y21fcmNoaW5mbyAqY2ggPSBjX2RldmluZm87CkBAIC0xMDgwLDcgKzEwODAsNyBAQCBlbXVm
eHJjaGFuX3NldHNwZWVkKGtvYmpfdCBvYmogX191bnVzZWQsIHZvaWQgKmNfZGV2aW5mbywg
dWludDMyX3Qgc3BlZWQpCiAJcmV0dXJuIChjaC0+c3BkKTsKIH0KIAotc3RhdGljIGludAor
c3RhdGljIHVpbnQzMl90CiBlbXVmeHJjaGFuX3NldGJsb2Nrc2l6ZShrb2JqX3Qgb2JqIF9f
dW51c2VkLCB2b2lkICpjX2RldmluZm8sIHVpbnQzMl90IGJsb2Nrc2l6ZSkKIHsKIAlzdHJ1
Y3QgZW11X3BjbV9yY2hpbmZvICpjaCA9IGNfZGV2aW5mbzsKQEAgLTExNzEsNyArMTE3MSw3
IEBAIGVtdWZ4cmNoYW5fdHJpZ2dlcihrb2JqX3Qgb2JqIF9fdW51c2VkLCB2b2lkICpjX2Rl
dmluZm8sIGludCBnbykKIAlyZXR1cm4gKDApOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMg
dWludDMyX3QKIGVtdWZ4cmNoYW5fZ2V0cHRyKGtvYmpfdCBvYmogX191bnVzZWQsIHZvaWQg
KmNfZGV2aW5mbykKIHsKIAlzdHJ1Y3QgZW11X3BjbV9yY2hpbmZvICpjaCA9IGNfZGV2aW5m
bzsKZGlmZiAtLWdpdCBhL3N5cy9kZXYvc291bmQvcGNpL2VudnkyNC5jIGIvc3lzL2Rldi9z
b3VuZC9wY2kvZW52eTI0LmMKaW5kZXggMGZkNTdkOC4uMTRmYTQ1ZiAxMDA2NDQKLS0tIGEv
c3lzL2Rldi9zb3VuZC9wY2kvZW52eTI0LmMKKysrIGIvc3lzL2Rldi9zb3VuZC9wY2kvZW52
eTI0LmMKQEAgLTE4NywxMCArMTg3LDEwIEBAIHN0YXRpYyB2b2lkIGVudnkyNF9yMzJzbChz
dHJ1Y3Qgc2NfY2hpbmZvICopOwogLyogY2hhbm5lbCBpbnRlcmZhY2UgKi8KIHN0YXRpYyB2
b2lkICplbnZ5MjRjaGFuX2luaXQoa29ial90LCB2b2lkICosIHN0cnVjdCBzbmRfZGJ1ZiAq
LCBzdHJ1Y3QgcGNtX2NoYW5uZWwgKiwgaW50KTsKIHN0YXRpYyBpbnQgZW52eTI0Y2hhbl9z
ZXRmb3JtYXQoa29ial90LCB2b2lkICosIHVfaW50MzJfdCk7Ci1zdGF0aWMgaW50IGVudnky
NGNoYW5fc2V0c3BlZWQoa29ial90LCB2b2lkICosIHVfaW50MzJfdCk7Ci1zdGF0aWMgaW50
IGVudnkyNGNoYW5fc2V0YmxvY2tzaXplKGtvYmpfdCwgdm9pZCAqLCB1X2ludDMyX3QpOwor
c3RhdGljIHVfaW50MzJfdCBlbnZ5MjRjaGFuX3NldHNwZWVkKGtvYmpfdCwgdm9pZCAqLCB1
X2ludDMyX3QpOworc3RhdGljIHVfaW50MzJfdCBlbnZ5MjRjaGFuX3NldGJsb2Nrc2l6ZShr
b2JqX3QsIHZvaWQgKiwgdV9pbnQzMl90KTsKIHN0YXRpYyBpbnQgZW52eTI0Y2hhbl90cmln
Z2VyKGtvYmpfdCwgdm9pZCAqLCBpbnQpOwotc3RhdGljIGludCBlbnZ5MjRjaGFuX2dldHB0
cihrb2JqX3QsIHZvaWQgKik7CitzdGF0aWMgdV9pbnQzMl90IGVudnkyNGNoYW5fZ2V0cHRy
KGtvYmpfdCwgdm9pZCAqKTsKIHN0YXRpYyBzdHJ1Y3QgcGNtY2hhbl9jYXBzICplbnZ5MjRj
aGFuX2dldGNhcHMoa29ial90LCB2b2lkICopOwogCiAvKiBtaXhlciBpbnRlcmZhY2UgKi8K
QEAgLTEwODcsNyArMTA4Nyw3IEBAIHN0YXRpYyBzdHJ1Y3QgewogCXswLCAweDEwfQogfTsK
IAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogZW52eTI0X3NldHNwZWVkKHN0cnVj
dCBzY19pbmZvICpzYywgdV9pbnQzMl90IHNwZWVkKSB7CiAJdV9pbnQzMl90IGNvZGU7CiAJ
aW50IGkgPSAwOwpAQCAtMTY5MSw3ICsxNjkxLDcgQEAgZW52eTI0Y2hhbl9zZXRmb3JtYXQo
a29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IGZvcm1hdCkKICAgc3RhcnQgdHJp
Z2dlcmQsIHNvbWUgb3RoZXIgY2hhbm5lbCBpcyBydW5uaW5nLCBhbmQgdGhhdCBjaGFubmVs
J3MKICAgc3BlZWQgaXNuJ3Qgc2FtZSB3aXRoLCB0aGVuIHRyaWdnZXIgZnVuY3Rpb24gd2ls
bCBmYWlsLgogKi8KLXN0YXRpYyBpbnQKK3N0YXRpYyB1X2ludDMyX3QKIGVudnkyNGNoYW5f
c2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IHNwZWVkKQogewog
CXN0cnVjdCBzY19jaGluZm8gKmNoID0gZGF0YTsKQEAgLTE3MTYsNyArMTcxNiw3IEBAIGVu
dnkyNGNoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IHNw
ZWVkKQogCXJldHVybiBjaC0+c3BlZWQ7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1X2lu
dDMyX3QKIGVudnkyNGNoYW5fc2V0YmxvY2tzaXplKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEs
IHVfaW50MzJfdCBibG9ja3NpemUpCiB7CiAJc3RydWN0IHNjX2NoaW5mbyAqY2ggPSBkYXRh
OwpAQCAtMTg2NCw3ICsxODY0LDcgQEAgZW52eTI0Y2hhbl90cmlnZ2VyKGtvYmpfdCBvYmos
IHZvaWQgKmRhdGEsIGludCBnbykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3Rh
dGljIHVfaW50MzJfdAogZW52eTI0Y2hhbl9nZXRwdHIoa29ial90IG9iaiwgdm9pZCAqZGF0
YSkKIHsKIAlzdHJ1Y3Qgc2NfY2hpbmZvICpjaCA9IGRhdGE7CmRpZmYgLS1naXQgYS9zeXMv
ZGV2L3NvdW5kL3BjaS9lbnZ5MjRodC5jIGIvc3lzL2Rldi9zb3VuZC9wY2kvZW52eTI0aHQu
YwppbmRleCBhOWQzMmUxLi4zN2Q4YmI1IDEwMDY0NAotLS0gYS9zeXMvZGV2L3NvdW5kL3Bj
aS9lbnZ5MjRodC5jCisrKyBiL3N5cy9kZXYvc291bmQvcGNpL2VudnkyNGh0LmMKQEAgLTE4
NiwxMCArMTg2LDEwIEBAIHN0YXRpYyB2b2lkIGVudnkyNGh0X3IzMnNsKHN0cnVjdCBzY19j
aGluZm8gKik7CiAvKiBjaGFubmVsIGludGVyZmFjZSAqLwogc3RhdGljIHZvaWQgKmVudnky
NGh0Y2hhbl9pbml0KGtvYmpfdCwgdm9pZCAqLCBzdHJ1Y3Qgc25kX2RidWYgKiwgc3RydWN0
IHBjbV9jaGFubmVsICosIGludCk7CiBzdGF0aWMgaW50IGVudnkyNGh0Y2hhbl9zZXRmb3Jt
YXQoa29ial90LCB2b2lkICosIHVfaW50MzJfdCk7Ci1zdGF0aWMgaW50IGVudnkyNGh0Y2hh
bl9zZXRzcGVlZChrb2JqX3QsIHZvaWQgKiwgdV9pbnQzMl90KTsKLXN0YXRpYyBpbnQgZW52
eTI0aHRjaGFuX3NldGJsb2Nrc2l6ZShrb2JqX3QsIHZvaWQgKiwgdV9pbnQzMl90KTsKK3N0
YXRpYyB1X2ludDMyX3QgZW52eTI0aHRjaGFuX3NldHNwZWVkKGtvYmpfdCwgdm9pZCAqLCB1
X2ludDMyX3QpOworc3RhdGljIHVfaW50MzJfdCBlbnZ5MjRodGNoYW5fc2V0YmxvY2tzaXpl
KGtvYmpfdCwgdm9pZCAqLCB1X2ludDMyX3QpOwogc3RhdGljIGludCBlbnZ5MjRodGNoYW5f
dHJpZ2dlcihrb2JqX3QsIHZvaWQgKiwgaW50KTsKLXN0YXRpYyBpbnQgZW52eTI0aHRjaGFu
X2dldHB0cihrb2JqX3QsIHZvaWQgKik7CitzdGF0aWMgdV9pbnQzMl90IGVudnkyNGh0Y2hh
bl9nZXRwdHIoa29ial90LCB2b2lkICopOwogc3RhdGljIHN0cnVjdCBwY21jaGFuX2NhcHMg
KmVudnkyNGh0Y2hhbl9nZXRjYXBzKGtvYmpfdCwgdm9pZCAqKTsKIAogLyogbWl4ZXIgaW50
ZXJmYWNlICovCkBAIC0xMDM3LDcgKzEwMzcsNyBAQCBzdGF0aWMgc3RydWN0IHsKIAl7MCwg
MHgxMH0KIH07CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1X2ludDMyX3QKIGVudnkyNGh0X3Nl
dHNwZWVkKHN0cnVjdCBzY19pbmZvICpzYywgdV9pbnQzMl90IHNwZWVkKSB7CiAJdV9pbnQz
Ml90IGNvZGUsIGkyc2ZtdDsKIAlpbnQgaSA9IDA7CkBAIC0xNjAyLDcgKzE2MDIsNyBAQCBl
bnZ5MjRodGNoYW5fc2V0Zm9ybWF0KGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJf
dCBmb3JtYXQpCiAgIHN0YXJ0IHRyaWdnZXJkLCBzb21lIG90aGVyIGNoYW5uZWwgaXMgcnVu
bmluZywgYW5kIHRoYXQgY2hhbm5lbCdzCiAgIHNwZWVkIGlzbid0IHNhbWUgd2l0aCwgdGhl
biB0cmlnZ2VyIGZ1bmN0aW9uIHdpbGwgZmFpbC4KICovCi1zdGF0aWMgaW50CitzdGF0aWMg
dV9pbnQzMl90CiBlbnZ5MjRodGNoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0
YSwgdV9pbnQzMl90IHNwZWVkKQogewogCXN0cnVjdCBzY19jaGluZm8gKmNoID0gZGF0YTsK
QEAgLTE2MjcsNyArMTYyNyw3IEBAIGVudnkyNGh0Y2hhbl9zZXRzcGVlZChrb2JqX3Qgb2Jq
LCB2b2lkICpkYXRhLCB1X2ludDMyX3Qgc3BlZWQpCiAJcmV0dXJuIGNoLT5zcGVlZDsKIH0K
IAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogZW52eTI0aHRjaGFuX3NldGJsb2Nr
c2l6ZShrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3QgYmxvY2tzaXplKQogewog
CXN0cnVjdCBzY19jaGluZm8gKmNoID0gZGF0YTsKQEAgLTE3NzMsNyArMTc3Myw3IEBAIGVu
dnkyNGh0Y2hhbl90cmlnZ2VyKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIGludCBnbykKIAly
ZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogZW52eTI0aHRj
aGFuX2dldHB0cihrb2JqX3Qgb2JqLCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBzY19jaGlu
Zm8gKmNoID0gZGF0YTsKZGlmZiAtLWdpdCBhL3N5cy9kZXYvc291bmQvcGNpL2VzMTM3eC5j
IGIvc3lzL2Rldi9zb3VuZC9wY2kvZXMxMzd4LmMKaW5kZXggOTg0YWFjOS4uNTk3MWU1MyAx
MDA2NDQKLS0tIGEvc3lzL2Rldi9zb3VuZC9wY2kvZXMxMzd4LmMKKysrIGIvc3lzL2Rldi9z
b3VuZC9wY2kvZXMxMzd4LmMKQEAgLTM0OSw3ICszNDksNyBAQCBlczEzNzBfbWl4c2V0KHN0
cnVjdCBzbmRfbWl4ZXIgKm0sIHVuc2lnbmVkIGRldiwgdW5zaWduZWQgbGVmdCwgdW5zaWdu
ZWQgcmlnaHQpCiAJcmV0dXJuIChsIHwgKHIgPDwgOCkpOwogfQogCi1zdGF0aWMgaW50Citz
dGF0aWMgdWludDMyX3QKIGVzMTM3MF9taXhzZXRyZWNzcmMoc3RydWN0IHNuZF9taXhlciAq
bSwgdWludDMyX3Qgc3JjKQogewogCXN0cnVjdCBlc19pbmZvICplczsKQEAgLTUzNSw3ICs1
MzUsNyBAQCBlc2NoYW5fc2V0Zm9ybWF0KGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVpbnQz
Ml90IGZvcm1hdCkKIAlyZXR1cm4gKDApOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdWlu
dDMyX3QKIGVzY2hhbjEzNzBfc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdWlu
dDMyX3Qgc3BlZWQpCiB7CiAJc3RydWN0IGVzX2NoaW5mbyAqY2ggPSBkYXRhOwpAQCAtNTgw
LDcgKzU4MCw3IEBAIGVzY2hhbjEzNzBfc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0
YSwgdWludDMyX3Qgc3BlZWQpCiAJcmV0dXJuIChzcGVlZCk7CiB9CiAKLXN0YXRpYyBpbnQK
K3N0YXRpYyB1aW50MzJfdAogZXNjaGFuMTM3MV9zZXRzcGVlZChrb2JqX3Qgb2JqLCB2b2lk
ICpkYXRhLCB1aW50MzJfdCBzcGVlZCkKIHsKICAgCXN0cnVjdCBlc19jaGluZm8gKmNoID0g
ZGF0YTsKQEAgLTYzOSw3ICs2MzksNyBAQCBlc2NoYW5fc2V0ZnJhZ21lbnRzKGtvYmpfdCBv
YmosIHZvaWQgKmRhdGEsIHVpbnQzMl90IGJsa3N6LCB1aW50MzJfdCBibGtjbnQpCiAJcmV0
dXJuICgxKTsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVpbnQzMl90CiBlc2NoYW5fc2V0
YmxvY2tzaXplKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVpbnQzMl90IGJsa3N6KQogewog
ICAJc3RydWN0IGVzX2NoaW5mbyAqY2ggPSBkYXRhOwpAQCAtODIwLDcgKzgyMCw3IEBAIGVz
Y2hhbl90cmlnZ2VyKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIGludCBnbykKIAlyZXR1cm4g
KDApOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdWludDMyX3QKIGVzY2hhbl9nZXRwdHIo
a29ial90IG9iaiwgdm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3QgZXNfY2hpbmZvICpjaCA9IGRh
dGE7CmRpZmYgLS1naXQgYS9zeXMvZGV2L3NvdW5kL3BjaS9mbTgwMS5jIGIvc3lzL2Rldi9z
b3VuZC9wY2kvZm04MDEuYwppbmRleCA4ZWU4ZjI4Li4wOTczOGQyIDEwMDY0NAotLS0gYS9z
eXMvZGV2L3NvdW5kL3BjaS9mbTgwMS5jCisrKyBiL3N5cy9kZXYvc291bmQvcGNpL2ZtODAx
LmMKQEAgLTM4NCw3ICszODQsNyBAQCBzdHJ1Y3QgewogLyogYW55dGhpbmcgYWJvdmUgLT4g
NDgwMDAgKi8KIH07CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1X2ludDMyX3QKIGZtODAxY2hf
c2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IHNwZWVkKQogewog
CXN0cnVjdCBmbTgwMV9jaGluZm8gKmNoID0gZGF0YTsKQEAgLTQxMSw3ICs0MTEsNyBAQCBm
bTgwMWNoX3NldHNwZWVkKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBzcGVl
ZCkKIAlyZXR1cm4gZm04MDFfcmF0ZXNbaV0ucmF0ZTsKIH0KIAotc3RhdGljIGludAorc3Rh
dGljIHVfaW50MzJfdAogZm04MDFjaF9zZXRibG9ja3NpemUoa29ial90IG9iaiwgdm9pZCAq
ZGF0YSwgdV9pbnQzMl90IGJsb2Nrc2l6ZSkKIHsKIAlzdHJ1Y3QgZm04MDFfY2hpbmZvICpj
aCA9IGRhdGE7CkBAIC00ODksNyArNDg5LDcgQEAgZm04MDFjaF90cmlnZ2VyKGtvYmpfdCBv
YmosIHZvaWQgKmRhdGEsIGludCBnbykKIH0KIAogLyogQWxtb3N0IEFMU0EgY29weSAqLwot
c3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogZm04MDFjaF9nZXRwdHIoa29ial90IG9i
aiwgdm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3QgZm04MDFfY2hpbmZvICpjaCA9IGRhdGE7CmRp
ZmYgLS1naXQgYS9zeXMvZGV2L3NvdW5kL3BjaS9oZGEvaGRhYy5jIGIvc3lzL2Rldi9zb3Vu
ZC9wY2kvaGRhL2hkYWMuYwppbmRleCBlNTgwOTQ0Li44NmY2MzI0IDEwMDY0NAotLS0gYS9z
eXMvZGV2L3NvdW5kL3BjaS9oZGEvaGRhYy5jCisrKyBiL3N5cy9kZXYvc291bmQvcGNpL2hk
YS9oZGFjLmMKQEAgLTMzNzAsNyArMzM3MCw3IEBAIGhkYWNfY2hhbm5lbF9zZXRmb3JtYXQo
a29ial90IG9iaiwgdm9pZCAqZGF0YSwgdWludDMyX3QgZm9ybWF0KQogCXJldHVybiAoRUlO
VkFMKTsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVpbnQzMl90CiBoZGFjX2NoYW5uZWxf
c2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdWludDMyX3Qgc3BlZWQpCiB7CiAJ
c3RydWN0IGhkYWNfY2hhbiAqY2ggPSBkYXRhOwpAQCAtMzUxOCw3ICszNTE4LDcgQEAgaGRh
Y19jaGFubmVsX3NldGZyYWdtZW50cyhrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLAogCXJldHVy
biAoMSk7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1aW50MzJfdAogaGRhY19jaGFubmVs
X3NldGJsb2Nrc2l6ZShrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1aW50MzJfdCBibGtzeikK
IHsKIAlzdHJ1Y3QgaGRhY19jaGFuICpjaCA9IGRhdGE7CkBAIC0zNTkyLDcgKzM1OTIsNyBA
QCBoZGFjX2NoYW5uZWxfdHJpZ2dlcihrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCBpbnQgZ28p
CiAJcmV0dXJuICgwKTsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVpbnQzMl90CiBoZGFj
X2NoYW5uZWxfZ2V0cHRyKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEpCiB7CiAJc3RydWN0IGhk
YWNfY2hhbiAqY2ggPSBkYXRhOwpkaWZmIC0tZ2l0IGEvc3lzL2Rldi9zb3VuZC9wY2kvaWNo
LmMgYi9zeXMvZGV2L3NvdW5kL3BjaS9pY2guYwppbmRleCA3MzUxMzU1Li5hMzNjOTg2IDEw
MDY0NAotLS0gYS9zeXMvZGV2L3NvdW5kL3BjaS9pY2guYworKysgYi9zeXMvZGV2L3NvdW5k
L3BjaS9pY2guYwpAQCAtMjY5LDcgKzI2OSw3IEBAIGljaF9yZGNkKGtvYmpfdCBvYmosIHZv
aWQgKmRldmluZm8sIGludCByZWdubykKIH0KIAogc3RhdGljIGludAotaWNoX3dyY2Qoa29i
al90IG9iaiwgdm9pZCAqZGV2aW5mbywgaW50IHJlZ25vLCB1aW50MTZfdCBkYXRhKQoraWNo
X3dyY2Qoa29ial90IG9iaiwgdm9pZCAqZGV2aW5mbywgaW50IHJlZ25vLCB1aW50MzJfdCBk
YXRhKQogewogCXN0cnVjdCBzY19pbmZvICpzYyA9IChzdHJ1Y3Qgc2NfaW5mbyAqKWRldmlu
Zm87CiAKQEAgLTQzOSw3ICs0MzksNyBAQCBpY2hjaGFuX3NldGZvcm1hdChrb2JqX3Qgb2Jq
LCB2b2lkICpkYXRhLCB1aW50MzJfdCBmb3JtYXQpCiAJcmV0dXJuICgwKTsKIH0KIAotc3Rh
dGljIGludAorc3RhdGljIHVpbnQzMl90CiBpY2hjaGFuX3NldHNwZWVkKGtvYmpfdCBvYmos
IHZvaWQgKmRhdGEsIHVpbnQzMl90IHNwZWVkKQogewogCXN0cnVjdCBzY19jaGluZm8gKmNo
ID0gZGF0YTsKQEAgLTQ3Myw3ICs0NzMsNyBAQCBpY2hjaGFuX3NldHNwZWVkKGtvYmpfdCBv
YmosIHZvaWQgKmRhdGEsIHVpbnQzMl90IHNwZWVkKQogCXJldHVybiAoY2gtPnNwZCk7CiB9
CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1aW50MzJfdAogaWNoY2hhbl9zZXRibG9ja3NpemUo
a29ial90IG9iaiwgdm9pZCAqZGF0YSwgdWludDMyX3QgYmxvY2tzaXplKQogewogCXN0cnVj
dCBzY19jaGluZm8gKmNoID0gZGF0YTsKQEAgLTUzNSw3ICs1MzUsNyBAQCBpY2hjaGFuX3Ry
aWdnZXIoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgaW50IGdvKQogCXJldHVybiAoMCk7CiB9
CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1aW50MzJfdAogaWNoY2hhbl9nZXRwdHIoa29ial90
IG9iaiwgdm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3Qgc2NfY2hpbmZvICpjaCA9IGRhdGE7CmRp
ZmYgLS1naXQgYS9zeXMvZGV2L3NvdW5kL3BjaS9tYWVzdHJvLmMgYi9zeXMvZGV2L3NvdW5k
L3BjaS9tYWVzdHJvLmMKaW5kZXggY2VjNjkwYS4uMjE0MzA1MSAxMDA2NDQKLS0tIGEvc3lz
L2Rldi9zb3VuZC9wY2kvbWFlc3Ryby5jCisrKyBiL3N5cy9kZXYvc291bmQvcGNpL21hZXN0
cm8uYwpAQCAtMTM4MSwxMyArMTM4MSwxMyBAQCBhZ2dwY2hfc2V0Zm9ybWF0KGtvYmpfdCBv
YmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBmb3JtYXQpCiAJcmV0dXJuIDA7CiB9CiAKLXN0
YXRpYyBpbnQKK3N0YXRpYyB1X2ludDMyX3QKIGFnZ3BjaF9zZXRzcGVlZChrb2JqX3Qgb2Jq
LCB2b2lkICpkYXRhLCB1X2ludDMyX3Qgc3BlZWQpCiB7CiAJcmV0dXJuICgoc3RydWN0IGFn
Z19jaGluZm8qKWRhdGEpLT5zcGVlZCA9IHNwZWVkOwogfQogCi1zdGF0aWMgaW50CitzdGF0
aWMgdV9pbnQzMl90CiBhZ2dwY2hfc2V0YmxvY2tzaXplKGtvYmpfdCBvYmosIHZvaWQgKmRh
dGEsIHVfaW50MzJfdCBibG9ja3NpemUpCiB7CiAJc3RydWN0IGFnZ19jaGluZm8gKmNoID0g
ZGF0YTsKQEAgLTE0MzAsNyArMTQzMCw3IEBAIGFnZ3BjaF90cmlnZ2VyKGtvYmpfdCBvYmos
IHZvaWQgKmRhdGEsIGludCBnbykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3Rh
dGljIHVfaW50MzJfdAogYWdncGNoX2dldHB0cihrb2JqX3Qgb2JqLCB2b2lkICpkYXRhKQog
ewogCXN0cnVjdCBhZ2dfY2hpbmZvICpjaCA9IGRhdGE7CkBAIC0xNTI2LDEzICsxNTI2LDEz
IEBAIGFnZ3JjaF9zZXRmb3JtYXQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90
IGZvcm1hdCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJf
dAogYWdncmNoX3NldHNwZWVkKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBz
cGVlZCkKIHsKIAlyZXR1cm4gKChzdHJ1Y3QgYWdnX3JjaGluZm8qKWRhdGEpLT5zcGVlZCA9
IHNwZWVkOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBhZ2dyY2hfc2V0
YmxvY2tzaXplKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBibG9ja3NpemUp
CiB7CiAJc3RydWN0IGFnZ19yY2hpbmZvICpjaCA9IGRhdGE7CkBAIC0xNTc5LDcgKzE1Nzks
NyBAQCBhZ2dyY2hfdHJpZ2dlcihrb2JqX3Qgb2JqLCB2b2lkICpzYywgaW50IGdvKQogCXJl
dHVybiAwOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBhZ2dyY2hfZ2V0
cHRyKGtvYmpfdCBvYmosIHZvaWQgKnNjKQogewogCXN0cnVjdCBhZ2dfcmNoaW5mbyAqY2gg
PSBzYzsKZGlmZiAtLWdpdCBhL3N5cy9kZXYvc291bmQvcGNpL21hZXN0cm8zLmMgYi9zeXMv
ZGV2L3NvdW5kL3BjaS9tYWVzdHJvMy5jCmluZGV4IDhmMTA4NGMuLjEwZWJkYTAgMTAwNjQ0
Ci0tLSBhL3N5cy9kZXYvc291bmQvcGNpL21hZXN0cm8zLmMKKysrIGIvc3lzL2Rldi9zb3Vu
ZC9wY2kvbWFlc3RybzMuYwpAQCAtMTYyLDggKzE2Miw4IEBAIHN0cnVjdCBzY19pbmZvIHsK
IHN0YXRpYyB2b2lkICptM19wY2hhbl9pbml0KGtvYmpfdCwgdm9pZCAqLCBzdHJ1Y3Qgc25k
X2RidWYgKiwgc3RydWN0IHBjbV9jaGFubmVsICosIGludCk7CiBzdGF0aWMgaW50IG0zX3Bj
aGFuX2ZyZWUoa29ial90LCB2b2lkICopOwogc3RhdGljIGludCBtM19wY2hhbl9zZXRmb3Jt
YXQoa29ial90LCB2b2lkICosIHVfaW50MzJfdCk7Ci1zdGF0aWMgaW50IG0zX3BjaGFuX3Nl
dHNwZWVkKGtvYmpfdCwgdm9pZCAqLCB1X2ludDMyX3QpOwotc3RhdGljIGludCBtM19wY2hh
bl9zZXRibG9ja3NpemUoa29ial90LCB2b2lkICosIHVfaW50MzJfdCk7CitzdGF0aWMgdV9p
bnQzMl90IG0zX3BjaGFuX3NldHNwZWVkKGtvYmpfdCwgdm9pZCAqLCB1X2ludDMyX3QpOwor
c3RhdGljIHVfaW50MzJfdCBtM19wY2hhbl9zZXRibG9ja3NpemUoa29ial90LCB2b2lkICos
IHVfaW50MzJfdCk7CiBzdGF0aWMgaW50IG0zX3BjaGFuX3RyaWdnZXIoa29ial90LCB2b2lk
ICosIGludCk7CiBzdGF0aWMgaW50IG0zX3BjaGFuX3RyaWdnZXJfbG9ja2VkKGtvYmpfdCwg
dm9pZCAqLCBpbnQpOwogc3RhdGljIHVfaW50MzJfdCBtM19wY2hhbl9nZXRwdHJfaW50ZXJu
YWwoc3RydWN0IHNjX3BjaGluZm8gKik7CkBAIC0xNzQsOCArMTc0LDggQEAgc3RhdGljIHN0
cnVjdCBwY21jaGFuX2NhcHMgKm0zX3BjaGFuX2dldGNhcHMoa29ial90LCB2b2lkICopOwog
c3RhdGljIHZvaWQgKm0zX3JjaGFuX2luaXQoa29ial90LCB2b2lkICosIHN0cnVjdCBzbmRf
ZGJ1ZiAqLCBzdHJ1Y3QgcGNtX2NoYW5uZWwgKiwgaW50KTsKIHN0YXRpYyBpbnQgbTNfcmNo
YW5fZnJlZShrb2JqX3QsIHZvaWQgKik7CiBzdGF0aWMgaW50IG0zX3JjaGFuX3NldGZvcm1h
dChrb2JqX3QsIHZvaWQgKiwgdV9pbnQzMl90KTsKLXN0YXRpYyBpbnQgbTNfcmNoYW5fc2V0
c3BlZWQoa29ial90LCB2b2lkICosIHVfaW50MzJfdCk7Ci1zdGF0aWMgaW50IG0zX3JjaGFu
X3NldGJsb2Nrc2l6ZShrb2JqX3QsIHZvaWQgKiwgdV9pbnQzMl90KTsKK3N0YXRpYyB1X2lu
dDMyX3QgbTNfcmNoYW5fc2V0c3BlZWQoa29ial90LCB2b2lkICosIHVfaW50MzJfdCk7Citz
dGF0aWMgdV9pbnQzMl90IG0zX3JjaGFuX3NldGJsb2Nrc2l6ZShrb2JqX3QsIHZvaWQgKiwg
dV9pbnQzMl90KTsKIHN0YXRpYyBpbnQgbTNfcmNoYW5fdHJpZ2dlcihrb2JqX3QsIHZvaWQg
KiwgaW50KTsKIHN0YXRpYyBpbnQgbTNfcmNoYW5fdHJpZ2dlcl9sb2NrZWQoa29ial90LCB2
b2lkICosIGludCk7CiBzdGF0aWMgdV9pbnQzMl90IG0zX3JjaGFuX2dldHB0cl9pbnRlcm5h
bChzdHJ1Y3Qgc2NfcmNoaW5mbyAqKTsKQEAgLTE4NSw3ICsxODUsNyBAQCBzdGF0aWMgc3Ry
dWN0IHBjbWNoYW5fY2FwcyAqbTNfcmNoYW5fZ2V0Y2Fwcyhrb2JqX3QsIHZvaWQgKik7CiBz
dGF0aWMgaW50IG0zX2NoYW5fYWN0aXZlKHN0cnVjdCBzY19pbmZvICopOwogCiAvKiB0YWxr
IHRvIHRoZSBjb2RlYyAtIGNhbGxlZCBmcm9tIGFjOTcuYyAqLwotc3RhdGljIGludAkgbTNf
aW5pdGNkKGtvYmpfdCwgdm9pZCAqKTsKK3N0YXRpYyB1X2ludDMyX3QJIG0zX2luaXRjZChr
b2JqX3QsIHZvaWQgKik7CiBzdGF0aWMgaW50CSBtM19yZGNkKGtvYmpfdCwgdm9pZCAqLCBp
bnQpOwogc3RhdGljIGludCAgCSBtM193cmNkKGtvYmpfdCwgdm9pZCAqLCBpbnQsIHVfaW50
MzJfdCk7CiAKQEAgLTMwOSw3ICszMDksNyBAQCBtM193YWl0KHN0cnVjdCBzY19pbmZvICpz
YykKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAvKiBhYzk3IGNvZGVjICovCiAKLXN0YXRpYyBp
bnQKK3N0YXRpYyB1X2ludDMyX3QKIG0zX2luaXRjZChrb2JqX3Qga29iaiwgdm9pZCAqZGV2
aW5mbykKIHsKIAlzdHJ1Y3Qgc2NfaW5mbyAqc2MgPSAoc3RydWN0IHNjX2luZm8gKilkZXZp
bmZvOwpAQCAtNTMyLDcgKzUzMiw3IEBAIG0zX3BjaGFuX3NldGZvcm1hdChrb2JqX3Qga29i
aiwgdm9pZCAqY2hkYXRhLCB1X2ludDMyX3QgZm9ybWF0KQogICAgICAgICByZXR1cm4gKDAp
OwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBtM19wY2hhbl9zZXRzcGVl
ZChrb2JqX3Qga29iaiwgdm9pZCAqY2hkYXRhLCB1X2ludDMyX3Qgc3BlZWQpCiB7CiAJc3Ry
dWN0IHNjX3BjaGluZm8gKmNoID0gY2hkYXRhOwpAQCAtNTU1LDcgKzU1NSw3IEBAIG0zX3Bj
aGFuX3NldHNwZWVkKGtvYmpfdCBrb2JqLCB2b2lkICpjaGRhdGEsIHVfaW50MzJfdCBzcGVl
ZCkKIAlyZXR1cm4gKHNwZWVkKTsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJf
dAogbTNfcGNoYW5fc2V0YmxvY2tzaXplKGtvYmpfdCBrb2JqLCB2b2lkICpjaGRhdGEsIHVf
aW50MzJfdCBibG9ja3NpemUpCiB7CiAJc3RydWN0IHNjX3BjaGluZm8gKmNoID0gY2hkYXRh
OwpAQCAtODc4LDcgKzg3OCw3IEBAIG0zX3JjaGFuX3NldGZvcm1hdChrb2JqX3Qga29iaiwg
dm9pZCAqY2hkYXRhLCB1X2ludDMyX3QgZm9ybWF0KQogICAgICAgICByZXR1cm4gKDApOwog
fQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBtM19yY2hhbl9zZXRzcGVlZChr
b2JqX3Qga29iaiwgdm9pZCAqY2hkYXRhLCB1X2ludDMyX3Qgc3BlZWQpCiB7CiAJc3RydWN0
IHNjX3JjaGluZm8gKmNoID0gY2hkYXRhOwpAQCAtOTAxLDcgKzkwMSw3IEBAIG0zX3JjaGFu
X3NldHNwZWVkKGtvYmpfdCBrb2JqLCB2b2lkICpjaGRhdGEsIHVfaW50MzJfdCBzcGVlZCkK
IAlyZXR1cm4gKHNwZWVkKTsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAog
bTNfcmNoYW5fc2V0YmxvY2tzaXplKGtvYmpfdCBrb2JqLCB2b2lkICpjaGRhdGEsIHVfaW50
MzJfdCBibG9ja3NpemUpCiB7CiAJc3RydWN0IHNjX3JjaGluZm8gKmNoID0gY2hkYXRhOwpk
aWZmIC0tZ2l0IGEvc3lzL2Rldi9zb3VuZC9wY2kvbmVvbWFnaWMuYyBiL3N5cy9kZXYvc291
bmQvcGNpL25lb21hZ2ljLmMKaW5kZXggNGIwMTFiYi4uZTM5MWRiNSAxMDA2NDQKLS0tIGEv
c3lzL2Rldi9zb3VuZC9wY2kvbmVvbWFnaWMuYworKysgYi9zeXMvZGV2L3NvdW5kL3BjaS9u
ZW9tYWdpYy5jCkBAIC0zODAsNyArMzgwLDcgQEAgbm1jaGFuX3NldGZvcm1hdChrb2JqX3Qg
b2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3QgZm9ybWF0KQogCXJldHVybiBubV9zZXRjaChj
aCk7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1X2ludDMyX3QKIG5tY2hhbl9zZXRzcGVl
ZChrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3Qgc3BlZWQpCiB7CiAJc3RydWN0
IHNjX2NoaW5mbyAqY2ggPSBkYXRhOwpAQCAtMzg5LDcgKzM4OSw3IEBAIG5tY2hhbl9zZXRz
cGVlZChrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3Qgc3BlZWQpCiAJcmV0dXJu
IG5tX3NldGNoKGNoKT8gMCA6IGNoLT5zcGQ7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1
X2ludDMyX3QKIG5tY2hhbl9zZXRibG9ja3NpemUoa29ial90IG9iaiwgdm9pZCAqZGF0YSwg
dV9pbnQzMl90IGJsb2Nrc2l6ZSkKIHsKIAlzdHJ1Y3Qgc2NfY2hpbmZvICpjaCA9IGRhdGE7
CkBAIC00NDcsNyArNDQ3LDcgQEAgbm1jaGFuX3RyaWdnZXIoa29ial90IG9iaiwgdm9pZCAq
ZGF0YSwgaW50IGdvKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9p
bnQzMl90CiBubWNoYW5fZ2V0cHRyKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEpCiB7CiAJc3Ry
dWN0IHNjX2NoaW5mbyAqY2ggPSBkYXRhOwpkaWZmIC0tZ2l0IGEvc3lzL2Rldi9zb3VuZC9w
Y2kvc29sby5jIGIvc3lzL2Rldi9zb3VuZC9wY2kvc29sby5jCmluZGV4IDVjZjc3NmQuLjFj
M2Y2ZGMgMTAwNjQ0Ci0tLSBhL3N5cy9kZXYvc291bmQvcGNpL3NvbG8uYworKysgYi9zeXMv
ZGV2L3NvdW5kL3BjaS9zb2xvLmMKQEAgLTU1Niw3ICs1NTYsNyBAQCBlc3NjaGFuX3NldGZv
cm1hdChrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3QgZm9ybWF0KQogCXJldHVy
biAwOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBlc3NjaGFuX3NldHNw
ZWVkKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBzcGVlZCkKIHsKIAlzdHJ1
Y3QgZXNzX2NoaW5mbyAqY2ggPSBkYXRhOwpAQCAtNTcwLDcgKzU3MCw3IEBAIGVzc2NoYW5f
c2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IHNwZWVkKQogCXJl
dHVybiBjaC0+c3BkOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBlc3Nj
aGFuX3NldGJsb2Nrc2l6ZShrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3QgYmxv
Y2tzaXplKQogewogCXN0cnVjdCBlc3NfY2hpbmZvICpjaCA9IGRhdGE7CkBAIC02MDgsNyAr
NjA4LDcgQEAgZXNzY2hhbl90cmlnZ2VyKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIGludCBn
bykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogZXNz
Y2hhbl9nZXRwdHIoa29ial90IG9iaiwgdm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3QgZXNzX2No
aW5mbyAqY2ggPSBkYXRhOwpAQCAtNzIwLDcgKzcyMCw3IEBAIGVzc21peF9zZXQoc3RydWN0
IHNuZF9taXhlciAqbSwgdW5zaWduZWQgZGV2LCB1bnNpZ25lZCBsZWZ0LCB1bnNpZ25lZCBy
aWdodCkKICAgICAJcmV0dXJuIGxlZnQgfCAocmlnaHQgPDwgOCk7CiB9CiAKLXN0YXRpYyBp
bnQKK3N0YXRpYyB1X2ludDMyX3QKIGVzc21peF9zZXRyZWNzcmMoc3RydWN0IHNuZF9taXhl
ciAqbSwgdV9pbnQzMl90IHNyYykKIHsKICAgICAJc3RydWN0IGVzc19pbmZvICpzYyA9IG1p
eF9nZXRkZXZpbmZvKG0pOwpkaWZmIC0tZ2l0IGEvc3lzL2Rldi9zb3VuZC9wY2kvdDRkd2F2
ZS5jIGIvc3lzL2Rldi9zb3VuZC9wY2kvdDRkd2F2ZS5jCmluZGV4IDM5Y2UwMmUuLjQ0Yzcy
NDIgMTAwNjQ0Ci0tLSBhL3N5cy9kZXYvc291bmQvcGNpL3Q0ZHdhdmUuYworKysgYi9zeXMv
ZGV2L3NvdW5kL3BjaS90NGR3YXZlLmMKQEAgLTUxMCw3ICs1MTAsNyBAQCB0cnBjaGFuX3Nl
dGZvcm1hdChrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3QgZm9ybWF0KQogCXJl
dHVybiAwOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiB0cnBjaGFuX3Nl
dHNwZWVkKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBzcGVlZCkKIHsKIAlz
dHJ1Y3QgdHJfY2hpbmZvICpjaCA9IGRhdGE7CkBAIC01MTksNyArNTE5LDcgQEAgdHJwY2hh
bl9zZXRzcGVlZChrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3Qgc3BlZWQpCiAJ
cmV0dXJuIChjaC0+ZGVsdGEgKiA0ODAwMCkgPj4gMTI7CiB9CiAKLXN0YXRpYyBpbnQKK3N0
YXRpYyB1X2ludDMyX3QKIHRycGNoYW5fc2V0YmxvY2tzaXplKGtvYmpfdCBvYmosIHZvaWQg
KmRhdGEsIHVfaW50MzJfdCBibG9ja3NpemUpCiB7CiAJc3RydWN0IHRyX2NoaW5mbyAqY2gg
PSBkYXRhOwpAQCAtNTYxLDcgKzU2MSw3IEBAIHRycGNoYW5fdHJpZ2dlcihrb2JqX3Qgb2Jq
LCB2b2lkICpkYXRhLCBpbnQgZ28pCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQKK3N0
YXRpYyB1X2ludDMyX3QKIHRycGNoYW5fZ2V0cHRyKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEp
CiB7CiAJc3RydWN0IHRyX2NoaW5mbyAqY2ggPSBkYXRhOwpAQCAtNjI3LDcgKzYyNyw3IEBA
IHRycmNoYW5fc2V0Zm9ybWF0KGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBm
b3JtYXQpCiAKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJfdAogdHJyY2hhbl9z
ZXRzcGVlZChrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3Qgc3BlZWQpCiB7CiAJ
c3RydWN0IHRyX3JjaGluZm8gKmNoID0gZGF0YTsKQEAgLTY0MSw3ICs2NDEsNyBAQCB0cnJj
aGFuX3NldHNwZWVkKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBzcGVlZCkK
IAlyZXR1cm4gKDQ4MDAwIDw8IDEyKSAvIGNoLT5kZWx0YTsKIH0KIAotc3RhdGljIGludAor
c3RhdGljIHVfaW50MzJfdAogdHJyY2hhbl9zZXRibG9ja3NpemUoa29ial90IG9iaiwgdm9p
ZCAqZGF0YSwgdV9pbnQzMl90IGJsb2Nrc2l6ZSkKIHsKIAlzdHJ1Y3QgdHJfcmNoaW5mbyAq
Y2ggPSBkYXRhOwpAQCAtNjgzLDcgKzY4Myw3IEBAIHRycmNoYW5fdHJpZ2dlcihrb2JqX3Qg
b2JqLCB2b2lkICpkYXRhLCBpbnQgZ28pCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQK
K3N0YXRpYyB1X2ludDMyX3QKIHRycmNoYW5fZ2V0cHRyKGtvYmpfdCBvYmosIHZvaWQgKmRh
dGEpCiB7CiAgCXN0cnVjdCB0cl9yY2hpbmZvICpjaCA9IGRhdGE7CmRpZmYgLS1naXQgYS9z
eXMvZGV2L3NvdW5kL3BjaS92aWE4MjMzLmMgYi9zeXMvZGV2L3NvdW5kL3BjaS92aWE4MjMz
LmMKaW5kZXggNjhkZTgxYi4uMGYwM2Y0MSAxMDA2NDQKLS0tIGEvc3lzL2Rldi9zb3VuZC9w
Y2kvdmlhODIzMy5jCisrKyBiL3N5cy9kZXYvc291bmQvcGNpL3ZpYTgyMzMuYwpAQCAtNDY5
LDcgKzQ2OSw3IEBAIHZpYTgyMzNtc2dkX3NldGZvcm1hdChrb2JqX3Qgb2JqLCB2b2lkICpk
YXRhLCB1aW50MzJfdCBmb3JtYXQpCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogLyogU3BlZWQg
c2V0dGluZyBmdW5jdGlvbnMgKi8KIAotc3RhdGljIGludAorc3RhdGljIHVpbnQzMl90CiB2
aWE4MjMzd3Jfc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdWludDMyX3Qgc3Bl
ZWQpCiB7CiAJc3RydWN0IHZpYV9jaGluZm8gKmNoID0gZGF0YTsKQEAgLTQ4MSw3ICs0ODEs
NyBAQCB2aWE4MjMzd3Jfc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdWludDMy
X3Qgc3BlZWQpCiAJcmV0dXJuICg0ODAwMCk7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1
aW50MzJfdAogdmlhODIzM2R4c19zZXRzcGVlZChrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1
aW50MzJfdCBzcGVlZCkKIHsKIAlzdHJ1Y3QgdmlhX2NoaW5mbyAqY2ggPSBkYXRhOwpAQCAt
NTAxLDcgKzUwMSw3IEBAIHZpYTgyMzNkeHNfc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAq
ZGF0YSwgdWludDMyX3Qgc3BlZWQpCiAJcmV0dXJuIChzcGVlZCk7CiB9CiAKLXN0YXRpYyBp
bnQKK3N0YXRpYyB1aW50MzJfdAogdmlhODIzM21zZ2Rfc2V0c3BlZWQoa29ial90IG9iaiwg
dm9pZCAqZGF0YSwgdWludDMyX3Qgc3BlZWQpCiB7CiAJc3RydWN0IHZpYV9jaGluZm8gKmNo
ID0gZGF0YTsKQEAgLTU5OSw3ICs1OTksNyBAQCB2aWE4MjMzY2hhbl9zZXRmcmFnbWVudHMo
a29ial90IG9iaiwgdm9pZCAqZGF0YSwKIAlyZXR1cm4gKDEpOwogfQogCi1zdGF0aWMgaW50
CitzdGF0aWMgdWludDMyX3QKIHZpYTgyMzNjaGFuX3NldGJsb2Nrc2l6ZShrb2JqX3Qgb2Jq
LCB2b2lkICpkYXRhLCB1aW50MzJfdCBibGtzeikKIHsKIAlzdHJ1Y3QgdmlhX2NoaW5mbyAq
Y2ggPSBkYXRhOwpAQCAtNjEwLDcgKzYxMCw3IEBAIHZpYTgyMzNjaGFuX3NldGJsb2Nrc2l6
ZShrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1aW50MzJfdCBibGtzeikKIAlyZXR1cm4gKGNo
LT5ibGtzeik7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1aW50MzJfdAogdmlhODIzM2No
YW5fZ2V0cHRyKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEpCiB7CiAJc3RydWN0IHZpYV9jaGlu
Zm8gKmNoID0gZGF0YTsKZGlmZiAtLWdpdCBhL3N5cy9kZXYvc291bmQvcGNpL3ZpYTgyYzY4
Ni5jIGIvc3lzL2Rldi9zb3VuZC9wY2kvdmlhODJjNjg2LmMKaW5kZXggZTA0ZTQ4MC4uYzkw
NDQ0MyAxMDA2NDQKLS0tIGEvc3lzL2Rldi9zb3VuZC9wY2kvdmlhODJjNjg2LmMKKysrIGIv
c3lzL2Rldi9zb3VuZC9wY2kvdmlhODJjNjg2LmMKQEAgLTMwMCw3ICszMDAsNyBAQCB2aWFj
aGFuX3NldGZvcm1hdChrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3QgZm9ybWF0
KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiB2aWFj
aGFuX3NldHNwZWVkKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50MzJfdCBzcGVlZCkK
IHsKIAlzdHJ1Y3QgdmlhX2NoaW5mbyAqY2ggPSBkYXRhOwpAQCAtMzIzLDcgKzMyMyw3IEBA
IHZpYWNoYW5fc2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IHNw
ZWVkKQogCQlyZXR1cm4gNDgwMDA7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1X2ludDMy
X3QKIHZpYWNoYW5fc2V0YmxvY2tzaXplKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVfaW50
MzJfdCBibG9ja3NpemUpCiB7CiAJc3RydWN0IHZpYV9jaGluZm8gKmNoID0gZGF0YTsKQEAg
LTM2MSw3ICszNjEsNyBAQCB2aWFjaGFuX3RyaWdnZXIoa29ial90IG9iaiwgdm9pZCAqZGF0
YSwgaW50IGdvKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQz
Ml90CiB2aWFjaGFuX2dldHB0cihrb2JqX3Qgb2JqLCB2b2lkICpkYXRhKQogewogCXN0cnVj
dCB2aWFfY2hpbmZvICpjaCA9IGRhdGE7CmRpZmYgLS1naXQgYS9zeXMvZGV2L3NvdW5kL3Bj
aS92aWJlcy5jIGIvc3lzL2Rldi9zb3VuZC9wY2kvdmliZXMuYwppbmRleCBlZTIwNWZlLi43
NWFlZDQxIDEwMDY0NAotLS0gYS9zeXMvZGV2L3NvdW5kL3BjaS92aWJlcy5jCisrKyBiL3N5
cy9kZXYvc291bmQvcGNpL3ZpYmVzLmMKQEAgLTIxMCw3ICsyMTAsNyBAQCBzdmNoYW5fZ2V0
Y2Fwcyhrb2JqX3Qgb2JqLCB2b2lkICpkYXRhKQogICAgICAgICByZXR1cm4gJnNjX2NhcHM7
CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB1X2ludDMyX3QKIHN2Y2hhbl9zZXRibG9ja3Np
emUoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IGJsb2Nrc2l6ZSkKIHsKIAlz
dHJ1Y3Qgc2NfY2hpbmZvICpjaCA9IGRhdGE7CkBAIC0yMzQsNyArMjM0LDcgQEAgc3ZjaGFu
X3NldGZvcm1hdChrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCB1X2ludDMyX3QgZm9ybWF0KQog
CXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBzdmNoYW5f
c2V0c3BlZWQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgdV9pbnQzMl90IHNwZWVkKQogewog
CXN0cnVjdCBzY19jaGluZm8gKmNoID0gZGF0YTsKQEAgLTM0Nyw3ICszNDcsNyBAQCBzdnJj
aGFuX3RyaWdnZXIoa29ial90IG9iaiwgdm9pZCAqZGF0YSwgaW50IGdvKQogCXJldHVybiAw
OwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBzdnJjaGFuX2dldHB0cihr
b2JqX3Qgb2JqLCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBzY19jaGluZm8JKmNoID0gZGF0
YTsKQEAgLTQyNCw3ICs0MjQsNyBAQCBzdnBjaGFuX3RyaWdnZXIoa29ial90IG9iaiwgdm9p
ZCAqZGF0YSwgaW50IGdvKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMg
dV9pbnQzMl90CiBzdnBjaGFuX2dldHB0cihrb2JqX3Qgb2JqLCB2b2lkICpkYXRhKQogewog
CXN0cnVjdCBzY19jaGluZm8JKmNoID0gZGF0YTsKQEAgLTUzNiw3ICs1MzYsNyBAQCBzdl9t
aXhfc2V0KHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVfaW50MzJfdCBkZXYsIHVfaW50MzJfdCBs
ZWZ0LCB1X2ludDMyX3QgcmlnaHQpCiAJcmV0dXJuIHN2X2dhaW4oc2MsIGRldiwgbGVmdCwg
cmlnaHQpOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBzdl9taXhfc2V0
cmVjc3JjKHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVfaW50MzJfdCBtYXNrKQogewogCXN0cnVj
dCBzY19pbmZvCSpzYyA9IG1peF9nZXRkZXZpbmZvKG0pOwpkaWZmIC0tZ2l0IGEvc3lzL2Rl
di9zb3VuZC9wY20vYWM5Ny5jIGIvc3lzL2Rldi9zb3VuZC9wY20vYWM5Ny5jCmluZGV4IDIy
YzE0ZTguLjlmMWIxYmMgMTAwNjQ0Ci0tLSBhL3N5cy9kZXYvc291bmQvcGNtL2FjOTcuYwor
KysgYi9zeXMvZGV2L3NvdW5kL3BjbS9hYzk3LmMKQEAgLTEwNTMsNyArMTA1Myw3IEBAIGFj
OTdtaXhfc2V0KHN0cnVjdCBzbmRfbWl4ZXIgKm0sIHVuc2lnbmVkIGRldiwgdW5zaWduZWQg
bGVmdCwgdW5zaWduZWQgcmlnaHQpCiAJcmV0dXJuIGFjOTdfc2V0bWl4ZXIoY29kZWMsIGRl
diwgbGVmdCwgcmlnaHQpOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdV9pbnQzMl90CiBh
Yzk3bWl4X3NldHJlY3NyYyhzdHJ1Y3Qgc25kX21peGVyICptLCB1X2ludDMyX3Qgc3JjKQog
ewogCWludCBpOwpkaWZmIC0tZ2l0IGEvc3lzL2Rldi9zb3VuZC9wY20vY2hhbm5lbF9pZi5t
IGIvc3lzL2Rldi9zb3VuZC9wY20vY2hhbm5lbF9pZi5tCmluZGV4IDM0MjlhMzMuLjJiMzc1
NTcgMTAwNjQ0Ci0tLSBhL3N5cy9kZXYvc291bmQvcGNtL2NoYW5uZWxfaWYubQorKysgYi9z
eXMvZGV2L3NvdW5kL3BjbS9jaGFubmVsX2lmLm0KQEAgLTEyMCw3ICsxMjAsNyBAQCBNRVRI
T0QgaW50IHNldGRpciB7CiAJaW50IGRpcjsKIH0gREVGQVVMVCBjaGFubmVsX25vc2V0ZGly
OwogCi1NRVRIT0QgdV9pbnQzMl90IHNldGZvcm1hdCB7CitNRVRIT0QgaW50IHNldGZvcm1h
dCB7CiAJa29ial90IG9iajsKIAl2b2lkICpkYXRhOwogCXVfaW50MzJfdCBmb3JtYXQ7CmRp
ZmYgLS1naXQgYS9zeXMvZGV2L3NvdW5kL3BjbS9mYWtlLmMgYi9zeXMvZGV2L3NvdW5kL3Bj
bS9mYWtlLmMKaW5kZXggOWNkMTdlMS4uOTkxZjhlNSAxMDA2NDQKLS0tIGEvc3lzL2Rldi9z
b3VuZC9wY20vZmFrZS5jCisrKyBiL3N5cy9kZXYvc291bmQvcGNtL2Zha2UuYwpAQCAtODgs
MTMgKzg4LDEzIEBAIGZrY2hhbl9zZXRmb3JtYXQoa29ial90IG9iaiwgdm9pZCAqZGF0YSwg
dV9pbnQzMl90IGZvcm1hdCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGlj
IHVfaW50MzJfdAogZmtjaGFuX3NldHNwZWVkKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVf
aW50MzJfdCBzcGVlZCkKIHsKIAlyZXR1cm4gc3BlZWQ7CiB9CiAKLXN0YXRpYyBpbnQKK3N0
YXRpYyB1X2ludDMyX3QKIGZrY2hhbl9zZXRibG9ja3NpemUoa29ial90IG9iaiwgdm9pZCAq
ZGF0YSwgdV9pbnQzMl90IGJsb2Nrc2l6ZSkKIHsKIAlyZXR1cm4gYmxvY2tzaXplOwpAQCAt
MTA2LDcgKzEwNiw3IEBAIGZrY2hhbl90cmlnZ2VyKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEs
IGludCBnbykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludAorc3RhdGljIHVfaW50MzJf
dAogZmtjaGFuX2dldHB0cihrb2JqX3Qgb2JqLCB2b2lkICpkYXRhKQogewogCXJldHVybiAw
OwpkaWZmIC0tZ2l0IGEvc3lzL2Rldi9zb3VuZC9wY20vdmNoYW4uYyBiL3N5cy9kZXYvc291
bmQvcGNtL3ZjaGFuLmMKaW5kZXggZDg4MTY1NC4uYmEwMjUyMyAxMDA2NDQKLS0tIGEvc3lz
L2Rldi9zb3VuZC9wY20vdmNoYW4uYworKysgYi9zeXMvZGV2L3NvdW5kL3BjbS92Y2hhbi5j
CkBAIC00MjAsNyArNDIwLDcgQEAgdmNoYW5fc2V0Zm9ybWF0KGtvYmpfdCBvYmosIHZvaWQg
KmRhdGEsIHVpbnQzMl90IGZvcm1hdCkKIAlyZXR1cm4gKDApOwogfQogCi1zdGF0aWMgaW50
CitzdGF0aWMgdWludDMyX3QKIHZjaGFuX3NldHNwZWVkKGtvYmpfdCBvYmosIHZvaWQgKmRh
dGEsIHVpbnQzMl90IHNwZWVkKQogewogCXN0cnVjdCB2Y2hpbmZvICpjaCA9IGRhdGE7CmRp
ZmYgLS1naXQgYS9zeXMvZGV2L3NvdW5kL3VzYi91YXVkaW9fcGNtLmMgYi9zeXMvZGV2L3Nv
dW5kL3VzYi91YXVkaW9fcGNtLmMKaW5kZXggZTIyN2YxYi4uNWE0N2M5OCAxMDA2NDQKLS0t
IGEvc3lzL2Rldi9zb3VuZC91c2IvdWF1ZGlvX3BjbS5jCisrKyBiL3N5cy9kZXYvc291bmQv
dXNiL3VhdWRpb19wY20uYwpAQCAtNTcsMTMgKzU3LDEzIEBAIHVhX2NoYW5fc2V0Zm9ybWF0
KGtvYmpfdCBvYmosIHZvaWQgKmRhdGEsIHVpbnQzMl90IGZvcm1hdCkKIAlyZXR1cm4gKHVh
dWRpb19jaGFuX3NldF9wYXJhbV9mb3JtYXQoZGF0YSwgZm9ybWF0KSk7CiB9CiAKLXN0YXRp
YyBpbnQKK3N0YXRpYyB1aW50MzJfdAogdWFfY2hhbl9zZXRzcGVlZChrb2JqX3Qgb2JqLCB2
b2lkICpkYXRhLCB1aW50MzJfdCBzcGVlZCkKIHsKIAlyZXR1cm4gKHVhdWRpb19jaGFuX3Nl
dF9wYXJhbV9zcGVlZChkYXRhLCBzcGVlZCkpOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMg
dWludDMyX3QKIHVhX2NoYW5fc2V0YmxvY2tzaXplKGtvYmpfdCBvYmosIHZvaWQgKmRhdGEs
IHVpbnQzMl90IGJsb2Nrc2l6ZSkKIHsKIAlyZXR1cm4gKHVhdWRpb19jaGFuX3NldF9wYXJh
bV9ibG9ja3NpemUoZGF0YSwgYmxvY2tzaXplKSk7CkBAIC04OCw3ICs4OCw3IEBAIHVhX2No
YW5fdHJpZ2dlcihrb2JqX3Qgb2JqLCB2b2lkICpkYXRhLCBpbnQgZ28pCiAJfQogfQogCi1z
dGF0aWMgaW50CitzdGF0aWMgdWludDMyX3QKIHVhX2NoYW5fZ2V0cHRyKGtvYmpfdCBvYmos
IHZvaWQgKmRhdGEpCiB7CiAJcmV0dXJuICh1YXVkaW9fY2hhbl9nZXRwdHIoZGF0YSkpOwpA
QCAtMTQxLDcgKzE0MSw3IEBAIHVhX21peGVyX3NldChzdHJ1Y3Qgc25kX21peGVyICptLCB1
bnNpZ25lZCB0eXBlLCB1bnNpZ25lZCBsZWZ0LCB1bnNpZ25lZCByaWdodCkKIAlyZXR1cm4g
KGxlZnQgfCAocmlnaHQgPDwgOCkpOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdWludDMy
X3QKIHVhX21peGVyX3NldHJlY3NyYyhzdHJ1Y3Qgc25kX21peGVyICptLCB1aW50MzJfdCBz
cmMpCiB7CiAJc3RydWN0IG10eCAqbXR4ID0gbWl4ZXJfZ2V0X2xvY2sobSk7Cg==
--------------060901080909010407040201--



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