Subject: Fixing {get,put}wschar functions
To: None <tech-kern@netbsd.org>
From: Julio M. Merino Vidal <jmmv84@gmail.com>
List: tech-kern
Date: 04/11/2006 20:01:54
------=_Part_11991_8826009.1144778514308
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Hi,

uwe@ reported that the {get,put}wschar functions in wscons are incorrectly
placed as they do not belong to accessops.  They should rather be in the
drivers implementing them.

I'm attaching a patch that supposedly fixes this.  Could you please tell me
if it is correct?

Also I'm thinking about removing the WSDISPLAY_CHARFUNCS kernel
build option (which the patch also does).  It was added to reduce "bloat"
from wsdisplay, but now makes little sense because the functions become
driver-dependent.  Not to mention that these functions are very small and,
at the moment, some drivers do not honour the option anyway.

Thanks,

--
Julio M. Merino Vidal <jmmv84@gmail.com>
The Julipedia - http://julipedia.blogspot.com/

------=_Part_11991_8826009.1144778514308
Content-Type: application/octet-stream; name="patch.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="patch.diff"

SW5kZXg6IGljL3ZnYS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnNyb290L3NyYy9zeXMvZGV2
L2ljL3ZnYS5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjg1CmRpZmYgLXUgLXAgLXIxLjg1IHZn
YS5jCi0tLSBpYy92Z2EuYwk1IEFwciAyMDA2IDE1OjE5OjU0IC0wMDAwCTEuODUKKysrIGljL3Zn
YS5jCTExIEFwciAyMDA2IDE3OjU2OjM4IC0wMDAwCkBAIC0yNyw3ICsyNyw3IEBACiAgKiByaWdo
dHMgdG8gcmVkaXN0cmlidXRlIHRoZXNlIGNoYW5nZXMuCiAgKi8KIAotLyogZm9yIFdTQ09OU19T
VVBQT1JUX1BDVlRGT05UUyBhbmQgV1NESVNQTEFZX0NIQVJGVU5DUyAqLworLyogZm9yIFdTQ09O
U19TVVBQT1JUX1BDVlRGT05UUyAqLwogI2luY2x1ZGUgIm9wdF93c2Rpc3BsYXlfY29tcGF0Lmgi
CiAvKiBmb3IgV1NESVNQTEFZX0NVU1RPTV9CT1JERVIgKi8KICNpbmNsdWRlICJvcHRfd3NkaXNw
bGF5X2JvcmRlci5oIgpAQCAtMjc0LDEwICsyNzQsNiBAQCBzdGF0aWMgdm9pZAl2Z2FfZnJlZV9z
Y3JlZW4odm9pZCAqLCB2b2lkCiBzdGF0aWMgaW50CXZnYV9zaG93X3NjcmVlbih2b2lkICosIHZv
aWQgKiwgaW50LAogCQkJCXZvaWQgKCopKHZvaWQgKiwgaW50LCBpbnQpLCB2b2lkICopOwogc3Rh
dGljIGludAl2Z2FfbG9hZF9mb250KHZvaWQgKiwgdm9pZCAqLCBzdHJ1Y3Qgd3NkaXNwbGF5X2Zv
bnQgKik7Ci0jaWZkZWYgV1NESVNQTEFZX0NIQVJGVU5DUwotc3RhdGljIGludAl2Z2FfZ2V0d3Nj
aGFyKHZvaWQgKiwgc3RydWN0IHdzZGlzcGxheV9jaGFyICopOwotc3RhdGljIGludAl2Z2FfcHV0
d3NjaGFyKHZvaWQgKiwgc3RydWN0IHdzZGlzcGxheV9jaGFyICopOwotI2VuZGlmIC8qIFdTRElT
UExBWV9DSEFSRlVOQ1MgKi8KICNpZmRlZiBXU0RJU1BMQVlfQ1VTVE9NX0JPUkRFUgogc3RhdGlj
IGludAl2Z2FfZ2V0Ym9yZGVyKHN0cnVjdCB2Z2FfY29uZmlnICosIHVfaW50ICopOwogc3RhdGlj
IGludAl2Z2Ffc2V0Ym9yZGVyKHN0cnVjdCB2Z2FfY29uZmlnICosIHVfaW50KTsKQEAgLTI5Mywx
MyArMjg5LDYgQEAgY29uc3Qgc3RydWN0IHdzZGlzcGxheV9hY2Nlc3NvcHMgdmdhX2FjYwogCXZn
YV9zaG93X3NjcmVlbiwKIAl2Z2FfbG9hZF9mb250LAogCU5VTEwsCi0jaWZkZWYgV1NESVNQTEFZ
X0NIQVJGVU5DUwotCXZnYV9nZXR3c2NoYXIsCi0JdmdhX3B1dHdzY2hhciwKLSNlbHNlIC8qIFdT
RElTUExBWV9DSEFSRlVOQ1MgKi8KLQlOVUxMLAotCU5VTEwsCi0jZW5kaWYgLyogV1NESVNQTEFZ
X0NIQVJGVU5DUyAqLwogI2lmZGVmIFdTRElTUExBWV9TQ1JPTExTVVBQT1JUCiAJdmdhX3Njcm9s
bCwKICNlbHNlCkBAIC03OTEsNiArNzgwLDE0IEBAIHZnYV9pb2N0bCh2b2lkICp2LCB1X2xvbmcg
Y21kLCBjYWRkcl90IGQKIAkJdmdhX3NldF92aWRlbyh2YywgKihpbnQgKilkYXRhID09IFdTRElT
UExBWUlPX1ZJREVPX09OKTsKIAkJcmV0dXJuIDA7CiAKKwljYXNlIFdTRElTUExBWUlPX0dFVFdT
Q0hBUjoKKwkJcmV0dXJuIHBjZGlzcGxheV9nZXR3c2NoYXIodmMtPmFjdGl2ZSwKKwkJICAgIChz
dHJ1Y3Qgd3NkaXNwbGF5X2NoYXIgKilkYXRhKTsKKworCWNhc2UgV1NESVNQTEFZSU9fUFVUV1ND
SEFSOgorCQlyZXR1cm4gcGNkaXNwbGF5X3B1dHdzY2hhcih2Yy0+YWN0aXZlLAorCQkgICAgKHN0
cnVjdCB3c2Rpc3BsYXlfY2hhciAqKWRhdGEpOworCiAjaWZkZWYgV1NESVNQTEFZX0NVU1RPTV9C
T1JERVIKIAljYXNlIFdTRElTUExBWUlPX0dCT1JERVI6CiAJCXJldHVybiAodmdhX2dldGJvcmRl
cih2YywgKHVfaW50ICopZGF0YSkpOwpAQCAtMTQxNywyNyArMTQxNCw2IEBAIHZnYV9wdXRjaGFy
KHZvaWQgKmMsIGludCByb3csIGludCBjb2wsIHUKIAlwY2Rpc3BsYXlfcHV0Y2hhcihjLCByb3cs
IGNvbCwgdWMsIGF0dHIpOwogfQogCi0KLSNpZmRlZiBXU0RJU1BMQVlfQ0hBUkZVTkNTCi1pbnQK
LXZnYV9nZXR3c2NoYXIodm9pZCAqY29va2llLCBzdHJ1Y3Qgd3NkaXNwbGF5X2NoYXIgKndzY2hh
cikKLXsKLQlzdHJ1Y3Qgdmdhc2NyZWVuICpzY3IgPSBjb29raWU7Ci0KLQlpZiAoc2NyID09IE5V
TEwpIHJldHVybiAwOwotCXJldHVybiAocGNkaXNwbGF5X2dldHdzY2hhcigmc2NyLT5wY3MsIHdz
Y2hhcikpOwotfQotCi1pbnQKLXZnYV9wdXR3c2NoYXIodm9pZCAqY29va2llLCBzdHJ1Y3Qgd3Nk
aXNwbGF5X2NoYXIgKndzY2hhcikKLXsKLQlzdHJ1Y3Qgdmdhc2NyZWVuICpzY3IgPSBjb29raWU7
Ci0KLQlpZiAoc2NyID09IE5VTEwpIHJldHVybiAwOwotCXJldHVybiAocGNkaXNwbGF5X3B1dHdz
Y2hhcigmc2NyLT5wY3MsIHdzY2hhcikpOwotfQotI2VuZGlmIC8qIFdTRElTUExBWV9DSEFSRlVO
Q1MgKi8KLQogI2lmZGVmIFdTRElTUExBWV9DVVNUT01fQk9SREVSCiBzdGF0aWMgaW50CiB2Z2Ff
Z2V0Ym9yZGVyKHN0cnVjdCB2Z2FfY29uZmlnICp2YywgdV9pbnQgKnZhbHVlcCkKSW5kZXg6IHBj
aS9tYWNoZmIuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zzcm9vdC9zcmMvc3lzL2Rldi9wY2kv
bWFjaGZiLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzkKZGlmZiAtdSAtcCAtcjEuMzkgbWFj
aGZiLmMKLS0tIHBjaS9tYWNoZmIuYwk1IEFwciAyMDA2IDE1OjIzOjA2IC0wMDAwCTEuMzkKKysr
IHBjaS9tYWNoZmIuYwkxMSBBcHIgMjAwNiAxNzo1NjozOSAtMDAwMApAQCAtNDAyLDggKzQwMiw2
IEBAIHN0YXRpYyBzdHJ1Y3Qgd3NkaXNwbGF5X2FjY2Vzc29wcyBtYWNoNjQKIAltYWNoNjRfc2hv
d19zY3JlZW4sCiAJTlVMTCwJCQkvKiBsb2FkX2ZvbnQgKi8KIAlOVUxMLAkJCS8qIHBvbGxzICov
Ci0JbWFjaDY0X2dldHdzY2hhciwJLyogZ2V0d3NjaGFyICovCi0JbWFjaDY0X3B1dHdzY2hhciwJ
LyogcHV0d3NjaGFyICovCiAJTlVMTCwJCQkvKiBzY3JvbGwgKi8KIH07CiAKSW5kZXg6IHNidXMv
cDkxMDAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zzcm9vdC9zcmMvc3lzL2Rldi9zYnVzL3A5
MTAwLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzAKZGlmZiAtdSAtcCAtcjEuMzAgcDkxMDAu
YwotLS0gc2J1cy9wOTEwMC5jCTYgQXByIDIwMDYgMTI6MjI6MDUgLTAwMDAJMS4zMAorKysgc2J1
cy9wOTEwMC5jCTExIEFwciAyMDA2IDE3OjU2OjM5IC0wMDAwCkBAIC0yNTAsOCArMjUwLDYgQEAg
c3RydWN0IHdzZGlzcGxheV9hY2Nlc3NvcHMgcDkxMDBfYWNjZXNzbwogCU5VTEwsCS8qIHZjb25z
X3Nob3dfc2NyZWVuICovCiAJTlVMTCwJLyogbG9hZF9mb250ICovCiAJTlVMTCwJLyogcG9sbHMg
Ki8KLQlOVUxMLAkvKiBnZXR3c2NoYXIgKi8KLQlOVUxMLAkvKiBwdXR3c2NoYXIgKi8KIAlOVUxM
LAkvKiBzY3JvbGwgKi8KIH07CiAjZW5kaWYKSW5kZXg6IHN1bi9jZ3NpeC5jCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC9jdnNyb290L3NyYy9zeXMvZGV2L3N1bi9jZ3NpeC5jLHYKcmV0cmlldmluZyBy
ZXZpc2lvbiAxLjI5CmRpZmYgLXUgLXAgLXIxLjI5IGNnc2l4LmMKLS0tIHN1bi9jZ3NpeC5jCTEy
IERlYyAyMDA1IDAyOjQ0OjA5IC0wMDAwCTEuMjkKKysrIHN1bi9jZ3NpeC5jCTExIEFwciAyMDA2
IDE3OjU2OjQwIC0wMDAwCkBAIC0xOTIsOCArMTkyLDYgQEAgc3RydWN0IHdzZGlzcGxheV9hY2Nl
c3NvcHMgY2dzaXhfYWNjZXNzbwogCWNnc2l4X3Nob3dfc2NyZWVuLAogCU5VTEwsIAkvKiBsb2Fk
X2ZvbnQgKi8KIAlOVUxMLAkvKiBwb2xsYyAqLwotCU5VTEwsCS8qIGdldHdzY2hhciAqLwotCU5V
TEwsCS8qIHB1dHdzY2hhciAqLwogCU5VTEwJLyogc2Nyb2xsICovCiB9OwogCkluZGV4OiB3c2Nv
bnMvd3NkaXNwbGF5LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2c3Jvb3Qvc3JjL3N5cy9kZXYv
d3Njb25zL3dzZGlzcGxheS5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjkzCmRpZmYgLXUgLXAg
LXIxLjkzIHdzZGlzcGxheS5jCi0tLSB3c2NvbnMvd3NkaXNwbGF5LmMJNSBBcHIgMjAwNiAxNTox
ODoyNSAtMDAwMAkxLjkzCisrKyB3c2NvbnMvd3NkaXNwbGF5LmMJMTEgQXByIDIwMDYgMTc6NTY6
NDAgLTAwMDAKQEAgLTExMzMsMjggKzExMzMsNiBAQCB3c2Rpc3BsYXlfaW50ZXJuYWxfaW9jdGwo
c3RydWN0IHdzZGlzcGxhCiAJCXJldHVybiAoZXJyb3IpOwogI3VuZGVmIGQKIAotI2lmIGRlZmlu
ZWQoV1NESVNQTEFZX0NIQVJGVU5DUykKLQljYXNlIFdTRElTUExBWUlPX0dFVFdTQ0hBUjoKLSNk
ZWZpbmUgZCAoKHN0cnVjdCB3c2Rpc3BsYXlfY2hhciAqKWRhdGEpCi0JCWlmICghc2MtPnNjX2Fj
Y2Vzc29wcy0+Z2V0d3NjaGFyKQotCQkJcmV0dXJuIChFSU5WQUwpOwotCQlyZXR1cm4gKCgqc2Mt
PnNjX2FjY2Vzc29wcy0+Z2V0d3NjaGFyKQotCQkJKHNjci0+c2NyX2Rjb25mLT5lbXVsY29va2ll
LCBkKSk7Ci0jdW5kZWYgZAotCi0JY2FzZSBXU0RJU1BMQVlJT19QVVRXU0NIQVI6Ci0jZGVmaW5l
IGQgKChzdHJ1Y3Qgd3NkaXNwbGF5X2NoYXIgKilkYXRhKQotCQlpZiAoIXNjLT5zY19hY2Nlc3Nv
cHMtPnB1dHdzY2hhcikKLQkJCXJldHVybiAoRUlOVkFMKTsKLQkJcmV0dXJuICgoKnNjLT5zY19h
Y2Nlc3NvcHMtPnB1dHdzY2hhcikKLQkJCShzY3ItPnNjcl9kY29uZi0+ZW11bGNvb2tpZSwgZCkp
OwotI3VuZGVmIGQKLSNlbHNlCi0JY2FzZSBXU0RJU1BMQVlJT19QVVRXU0NIQVI6Ci0JY2FzZSBX
U0RJU1BMQVlJT19HRVRXU0NIQVI6Ci0JCXJldHVybiBFTk9ERVY7Ci0jZW5kaWYgLyogV1NESVNQ
TEFZX0NIQVJGVU5DUyAqLwotCiAjaWZkZWYgV1NESVNQTEFZX0NVU1RPTV9PVVRQVVQKIAljYXNl
IFdTRElTUExBWUlPX0dNU0dBVFRSUzoKICNkZWZpbmUgZCAoKHN0cnVjdCB3c2Rpc3BsYXlfbXNn
YXR0cnMgKilkYXRhKQpJbmRleDogd3Njb25zL3dzZGlzcGxheV92Y29ucy5jCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC9jdnNyb290L3NyYy9zeXMvZGV2L3dzY29ucy93c2Rpc3BsYXlfdmNvbnMuYyx2
CnJldHJpZXZpbmcgcmV2aXNpb24gMS41CmRpZmYgLXUgLXAgLXIxLjUgd3NkaXNwbGF5X3Zjb25z
LmMKLS0tIHdzY29ucy93c2Rpc3BsYXlfdmNvbnMuYwkxOSBGZWIgMjAwNiAwMzo1MTowMyAtMDAw
MAkxLjUKKysrIHdzY29ucy93c2Rpc3BsYXlfdmNvbnMuYwkxMSBBcHIgMjAwNiAxNzo1Njo0MSAt
MDAwMApAQCAtNjAsNiArNjAsNyBAQCBfX0tFUk5FTF9SQ1NJRCgwLCAiJE5ldEJTRDogd3NkaXNw
bGF5X3ZjCiBzdGF0aWMgdm9pZCB2Y29uc19kdW1teV9pbml0X3NjcmVlbih2b2lkICosIHN0cnVj
dCB2Y29uc19zY3JlZW4gKiwgaW50LCAKIAkgICAgbG9uZyAqKTsKIAorc3RhdGljIGludCAgdmNv
bnNfaW9jdGwodm9pZCAqLCB1X2xvbmcsIGNhZGRyX3QsIGludCwgc3RydWN0IGx3cCAqKTsKIHN0
YXRpYyBpbnQgIHZjb25zX2FsbG9jX3NjcmVlbih2b2lkICosIGNvbnN0IHN0cnVjdCB3c3NjcmVl
bl9kZXNjciAqLCB2b2lkICoqLCAKIAkgICAgaW50ICosIGludCAqLCBsb25nICopOwogc3RhdGlj
IHZvaWQgdmNvbnNfZnJlZV9zY3JlZW4odm9pZCAqLCB2b2lkICopOwpAQCAtMTA3LDExICsxMDgs
MTUgQEAgdmNvbnNfaW5pdChzdHJ1Y3QgdmNvbnNfZGF0YSAqdmQsIHZvaWQgKgogCXZkLT5pbml0
X3NjcmVlbiA9IHZjb25zX2R1bW15X2luaXRfc2NyZWVuOwogCXZkLT5zaG93X3NjcmVlbl9jYiA9
IE5VTEw7CiAKKwkvKiBrZWVwIGEgY29weSBvZiB0aGUgYWNjZXNzb3BzIHRoYXQgd2UgcmVwbGFj
ZSBiZWxvdyB3aXRoIG91cgorCSAqIG93biB3cmFwcGVycyAqLworCXZkLT5pb2N0bCA9IGFvLT5p
b2N0bDsKKworCS8qIGNvbmZpZ3VyZSB0aGUgYWNjZXNzb3BzICovCisJYW8tPmlvY3RsID0gdmNv
bnNfaW9jdGw7CiAJYW8tPmFsbG9jX3NjcmVlbiA9IHZjb25zX2FsbG9jX3NjcmVlbjsKIAlhby0+
ZnJlZV9zY3JlZW4gPSB2Y29uc19mcmVlX3NjcmVlbjsKIAlhby0+c2hvd19zY3JlZW4gPSB2Y29u
c19zaG93X3NjcmVlbjsKLQlhby0+Z2V0d3NjaGFyID0gdmNvbnNfZ2V0d3NjaGFyOwotCWFvLT5w
dXR3c2NoYXIgPSB2Y29uc19wdXR3c2NoYXI7CiAKIAlMSVNUX0lOSVQoJnZkLT5zY3JlZW5zKTsK
IAl2ZC0+YWN0aXZlID0gTlVMTDsKQEAgLTM2MSw2ICszNjYsMzMgQEAgdmNvbnNfcmVkcmF3X3Nj
cmVlbihzdHJ1Y3QgdmNvbnNfc2NyZWVuIAogfQogCiBzdGF0aWMgaW50Cit2Y29uc19pb2N0bCh2
b2lkICp2LCB1X2xvbmcgY21kLCBjYWRkcl90IGRhdGEsIGludCBmbGFnLCBzdHJ1Y3QgbHdwICps
KQoreworCXN0cnVjdCB2Y29uc19kYXRhICp2ZCA9IHY7CisJaW50IGVycm9yOworCisJc3dpdGNo
IChjbWQpIHsKKwljYXNlIFdTRElTUExBWUlPX0dFVFdTQ0hBUjoKKwkJZXJyb3IgPSB2Y29uc19n
ZXR3c2NoYXIodmQtPmNvb2tpZSwKKwkJCShzdHJ1Y3Qgd3NkaXNwbGF5X2NoYXIgKilkYXRhKTsK
KwkJYnJlYWs7CisKKwljYXNlIFdTRElTUExBWUlPX1BVVFdTQ0hBUjoKKwkJZXJyb3IgPSB2Y29u
c19wdXR3c2NoYXIodmQtPmNvb2tpZSwKKwkJCShzdHJ1Y3Qgd3NkaXNwbGF5X2NoYXIgKilkYXRh
KTsKKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQlpZiAodmQtPmlvY3RsICE9IE5VTEwpCisJCQll
cnJvciA9ICgqdmQtPmlvY3RsKSh2LCBjbWQsIGRhdGEsIGZsYWcsIGwpOworCQllbHNlCisJCQll
cnJvciA9IEVJTlZBTDsKKwl9CisKKwlyZXR1cm4gZXJyb3I7Cit9CisKK3N0YXRpYyBpbnQKIHZj
b25zX2FsbG9jX3NjcmVlbih2b2lkICp2LCBjb25zdCBzdHJ1Y3Qgd3NzY3JlZW5fZGVzY3IgKnR5
cGUsIHZvaWQgKipjb29raWVwLAogICAgIGludCAqY3VyeHAsIGludCAqY3VyeXAsIGxvbmcgKmRl
ZmF0dHJwKQogewpJbmRleDogd3Njb25zL3dzZGlzcGxheV92Y29uc3Zhci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC9jdnNyb290L3NyYy9zeXMvZGV2L3dzY29ucy93c2Rpc3BsYXlfdmNvbnN2YXIu
aCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zCmRpZmYgLXUgLXAgLXIxLjMgd3NkaXNwbGF5X3Zj
b25zdmFyLmgKLS0tIHdzY29ucy93c2Rpc3BsYXlfdmNvbnN2YXIuaAkxOSBGZWIgMjAwNiAwMzo1
MTowMyAtMDAwMAkxLjMKKysrIHdzY29ucy93c2Rpc3BsYXlfdmNvbnN2YXIuaAkxMSBBcHIgMjAw
NiAxNzo1Njo0MSAtMDAwMApAQCAtODUsNiArODUsOSBAQCBzdHJ1Y3QgdmNvbnNfZGF0YSB7CiAJ
dm9pZCAoKmluaXRfc2NyZWVuKSh2b2lkICosIHN0cnVjdCB2Y29uc19zY3JlZW4gKiwgaW50LCAK
IAkgICAgbG9uZyAqKTsKIAorCS8qIGFjY2Vzc29wcyAqLworCWludCAoKmlvY3RsKSh2b2lkICos
IHVfbG9uZywgY2FkZHJfdCwgaW50LCBzdHJ1Y3QgbHdwICopOworCiAJLyogcmFzb3BzICovCiAJ
dm9pZCAoKmNvcHljb2xzKSh2b2lkICosIGludCwgaW50LCBpbnQsIGludCk7CiAJdm9pZCAoKmVy
YXNlY29scykodm9pZCAqLCBpbnQsIGludCwgaW50LCBsb25nKTsKSW5kZXg6IHdzY29ucy93c2Rp
c3BsYXl2YXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zzcm9vdC9zcmMvc3lzL2Rldi93c2Nv
bnMvd3NkaXNwbGF5dmFyLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzcKZGlmZiAtdSAtcCAt
cjEuMzcgd3NkaXNwbGF5dmFyLmgKLS0tIHdzY29ucy93c2Rpc3BsYXl2YXIuaAk3IEFwciAyMDA2
IDE0OjMwOjIwIC0wMDAwCTEuMzcKKysrIHdzY29ucy93c2Rpc3BsYXl2YXIuaAkxMSBBcHIgMjAw
NiAxNzo1Njo0MSAtMDAwMApAQCAtMTIxLDggKzEyMSw2IEBAIHN0cnVjdCB3c2Rpc3BsYXlfYWNj
ZXNzb3BzIHsKIAkJCQkgICAgdm9pZCAoKikgKHZvaWQgKiwgaW50LCBpbnQpLCB2b2lkICopOwog
CWludAkoKmxvYWRfZm9udCkodm9pZCAqLCB2b2lkICosIHN0cnVjdCB3c2Rpc3BsYXlfZm9udCAq
KTsKIAl2b2lkCSgqcG9sbGMpKHZvaWQgKiwgaW50KTsKLQlpbnQJKCpnZXR3c2NoYXIpKHZvaWQg
Kiwgc3RydWN0IHdzZGlzcGxheV9jaGFyICopOwotCWludAkoKnB1dHdzY2hhcikodm9pZCAqLCBz
dHJ1Y3Qgd3NkaXNwbGF5X2NoYXIgKik7CiAJdm9pZAkoKnNjcm9sbCkodm9pZCAqLCB2b2lkICos
IGludCk7CiB9OwogCg==
------=_Part_11991_8826009.1144778514308--