Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Sep 2000 19:15:49 +0100 (BST)
From:      Nick Hibma <n_hibma@qubesoft.com>
To:        USB BSD list <usb-bsd@egroups.com>
Cc:        freebsd-current@freebsd.org
Subject:   uscanner driver
Message-ID:  <Pine.BSF.4.20.0009061904060.54419-500000@henny.webweaving.org>

next in thread | raw e-mail | index | archive | help
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--0-1557275625-968264149=:54419
Content-Type: TEXT/PLAIN; charset=US-ASCII


I've quickly thrown together a driver for USB scanners. Unforunately, I
don't have a scanner available that is supported by SANE, so I can't
test it.

The driver is a rip-off of the ugen, with some bits of udbp thrown in
for good measure. It relies on a very recent version of usbdevs, so make
sure your system is up to date.

I'd appreciate it if someone that has a supported scanner (see

	http://www.mostang.com/sane/sane-backends.html

) would pick this driver up and turn it into something that works. If
your scanner is supported by SANE, but not recognised by uscanner.ko,
add the id for your scanner (usbdevs -v) to usbdevs and uscanner.h and
recompile and try again.

To install it:

Install Gimp
Install Sane
Copy uscanner.c & .h (attached) to /sys/dev/usb
Mkdir /sys/modules/uscanner
Copy Makefile (attached) to /sys/modules/uscanner/
patch your kernel with the file uscanner.patch (attached)

	cd /sys/
	patch < /tmp/uscanner.patch

And compile & load the thing

	cd /sys/modules/uscanner
	make load

Be warned! This driver will reboot your machine, break it, send your dog
on a holiday and will turn the weather into hail for the next three
weeks. If any of that does not happen, you just got lucky, don't have a 
dog or live in Scotland.


Let me know!

Nick

--
Qube Software, Ltd.                                             Private:
n_hibma@qubesoft.com                              n_hibma@webweaving.org
                                                     n_hibma@freebsd.org
http://www.qubesoft.com/                   http://www.etla.net/~n_hibma/

--0-1557275625-968264149=:54419
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="uscanner.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.BSF.4.20.0009061915490.54419@henny.webweaving.org>
Content-Description: 
Content-Disposition: attachment; filename="uscanner.c"

LyoJJEZyZWVCU0QkCSovDQoNCi8qDQogKiBDb3B5cmlnaHQgKGMpIDE5OTgg
VGhlIE5ldEJTRCBGb3VuZGF0aW9uLCBJbmMuDQogKiBBbGwgcmlnaHRzIHJl
c2VydmVkLg0KICoNCiAqIFRoaXMgY29kZSBpcyBkZXJpdmVkIGZyb20gc29m
dHdhcmUgY29udHJpYnV0ZWQgdG8gVGhlIE5ldEJTRCBGb3VuZGF0aW9uDQog
KiBieSBMZW5uYXJ0IEF1Z3VzdHNzb24gKGxlbm5hcnRAYXVndXN0c3Nvbi5u
ZXQpIGF0DQogKiBDYXJsc3RlZHQgUmVzZWFyY2ggJiBUZWNobm9sb2d5Lg0K
ICoNCiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zDQogKiBhcmUgbWV0Og0KICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQNCiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCiAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0DQogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlDQogKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KICogMy4gQWxsIGFkdmVydGlz
aW5nIG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0
aGlzIHNvZnR3YXJlDQogKiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2lu
ZyBhY2tub3dsZWRnZW1lbnQ6DQogKiAgICAgICAgVGhpcyBwcm9kdWN0IGlu
Y2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSB0aGUgTmV0QlNEDQogKiAg
ICAgICAgRm91bmRhdGlvbiwgSW5jLiBhbmQgaXRzIGNvbnRyaWJ1dG9ycy4N
CiAqIDQuIE5laXRoZXIgdGhlIG5hbWUgb2YgVGhlIE5ldEJTRCBGb3VuZGF0
aW9uIG5vciB0aGUgbmFtZXMgb2YgaXRzDQogKiAgICBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQNCiAqICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCiAqDQogKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBORVRCU0QgRk9VTkRBVElPTiwg
SU5DLiBBTkQgQ09OVFJJQlVUT1JTDQogKiBgYEFTIElTJycgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQNCiAqIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
DQogKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIEZPVU5EQVRJT04gT1IgQ09OVFJJQlVUT1JTDQogKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SDQogKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
Rg0KICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTDQogKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTg0KICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkNCiAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFDQogKiBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4NCiAqLw0KDQoNCiNpbmNsdWRl
IDxzeXMvcGFyYW0uaD4NCiNpbmNsdWRlIDxzeXMvc3lzdG0uaD4NCiNpbmNs
dWRlIDxzeXMva2VybmVsLmg+DQojaW5jbHVkZSA8c3lzL21hbGxvYy5oPg0K
I2lmIGRlZmluZWQoX19OZXRCU0RfXykgfHwgZGVmaW5lZChfX09wZW5CU0Rf
XykNCiNpbmNsdWRlIDxzeXMvZGV2aWNlLmg+DQojZWxpZiBkZWZpbmVkKF9f
RnJlZUJTRF9fKQ0KI2luY2x1ZGUgPHN5cy9tb2R1bGUuaD4NCiNpbmNsdWRl
IDxzeXMvYnVzLmg+DQojaW5jbHVkZSA8c3lzL2NvbmYuaD4NCiNpbmNsdWRl
IDxzeXMvZmNudGwuaD4NCiNpbmNsdWRlIDxzeXMvZmlsaW8uaD4NCiNlbmRp
Zg0KI2luY2x1ZGUgPHN5cy90dHkuaD4NCiNpbmNsdWRlIDxzeXMvZmlsZS5o
Pg0KI2luY2x1ZGUgPHN5cy9zZWxlY3QuaD4NCiNpbmNsdWRlIDxzeXMvcHJv
Yy5oPg0KI2luY2x1ZGUgPHN5cy92bm9kZS5oPg0KI2luY2x1ZGUgPHN5cy9w
b2xsLmg+DQoNCiNpbmNsdWRlIDxkZXYvdXNiL3VzYi5oPg0KI2luY2x1ZGUg
PGRldi91c2IvdXNiZGkuaD4NCiNpbmNsdWRlIDxkZXYvdXNiL3VzYmRpX3V0
aWwuaD4NCg0KI2luY2x1ZGUgPGRldi91c2IvdXNiZGV2cy5oPg0KI2luY2x1
ZGUgPGRldi91c2IvdXNjYW5uZXIuaD4NCg0KI2lmZGVmIFVTQ0FOTkVSX0RF
QlVHDQojZGVmaW5lIERQUklOVEYoeCkJaWYgKHVzY2FubmVyZGVidWcpIGxv
Z3ByaW50ZiB4DQojZGVmaW5lIERQUklOVEZOKG4seCkJaWYgKHVzY2FubmVy
ZGVidWc+KG4pKSBsb2dwcmludGYgeA0KaW50CXVzY2FubmVyZGVidWcgPSAx
MDsNCiNlbHNlDQojZGVmaW5lIERQUklOVEYoeCkNCiNkZWZpbmUgRFBSSU5U
Rk4obix4KQ0KI2VuZGlmDQoNCiNkZWZpbmUJVVNDQU5ORVJfQlVGRkVSU0la
RQkxMDI0DQoNCnN0cnVjdCB1c2Nhbm5lcl9zb2Z0YyB7DQoJVVNCQkFTRURF
VklDRQkJc2NfZGV2OwkJLyogYmFzZSBkZXZpY2UgKi8NCgl1c2JkX2Rldmlj
ZV9oYW5kbGUJc2NfdWRldjsNCgl1c2JkX2ludGVyZmFjZV9oYW5kbGUJc2Nf
aWZhY2U7DQoNCgl1c2JkX3BpcGVfaGFuZGxlCXNjX2J1bGtpbl9waXBlOw0K
CWludAkJCXNjX2J1bGtpbjsNCgl1c2JkX3hmZXJfaGFuZGxlCXNjX2J1bGtp
bl94ZmVyOw0KCXZvaWQgCQkJKnNjX2J1bGtpbl9idWZmZXI7DQoJaW50CQkJ
c2NfYnVsa2luX2J1ZmZlcmxlbjsNCglpbnQJCQlzY19idWxraW5fZGF0YWxl
bjsNCg0KCXVzYmRfcGlwZV9oYW5kbGUJc2NfYnVsa291dF9waXBlOw0KCWlu
dAkJCXNjX2J1bGtvdXQ7DQoJdXNiZF94ZmVyX2hhbmRsZQlzY19idWxrb3V0
X3hmZXI7DQoJdm9pZCAJCQkqc2NfYnVsa291dF9idWZmZXI7DQoJaW50CQkJ
c2NfYnVsa291dF9idWZmZXJsZW47DQoJaW50CQkJc2NfYnVsa291dF9kYXRh
bGVuOw0KDQoJdW5zaWduZWQgY2hhciBzdGF0ZTsNCiNkZWZpbmUgVVNDQU5O
RVJfT1BFTgkJMHgwMQkvKiBvcGVuZWQgKi8NCg0KCWludAkJCXNjX3JlZmNu
dDsNCgl1X2NoYXIJCQlzY19keWluZzsNCn07DQoNCiNpZiBkZWZpbmVkKF9f
TmV0QlNEX18pIHx8IGRlZmluZWQoX19PcGVuQlNEX18pDQpjZGV2X2RlY2wo
dXNjYW5uZXIpOw0KI2VsaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykNCmRfb3Bl
bl90ICB1c2Nhbm5lcm9wZW47DQpkX2Nsb3NlX3QgdXNjYW5uZXJjbG9zZTsN
CmRfcmVhZF90ICB1c2Nhbm5lcnJlYWQ7DQpkX3dyaXRlX3QgdXNjYW5uZXJ3
cml0ZTsNCmRfcG9sbF90ICB1c2Nhbm5lcnBvbGw7DQoNCiNkZWZpbmUgVVND
QU5ORVJfQ0RFVl9NQUpPUgkxNTUNCg0KU3RhdGljIHN0cnVjdCBjZGV2c3cg
dXNjYW5uZXJfY2RldnN3ID0gew0KCS8qIG9wZW4gKi8JdXNjYW5uZXJvcGVu
LA0KCS8qIGNsb3NlICovCXVzY2FubmVyY2xvc2UsDQoJLyogcmVhZCAqLwl1
c2Nhbm5lcnJlYWQsDQoJLyogd3JpdGUgKi8JdXNjYW5uZXJ3cml0ZSwNCgkv
KiBpb2N0bCAqLwlub2lvY3RsLA0KCS8qIHBvbGwgKi8JdXNjYW5uZXJwb2xs
LA0KCS8qIG1tYXAgKi8Jbm9tbWFwLA0KCS8qIHN0cmF0ZWd5ICovCW5vc3Ry
YXRlZ3ksDQoJLyogbmFtZSAqLwkidXNjYW5uZXIiLA0KCS8qIG1haiAqLwlV
U0NBTk5FUl9DREVWX01BSk9SLA0KCS8qIGR1bXAgKi8Jbm9kdW1wLA0KCS8q
IHBzaXplICovCW5vcHNpemUsDQoJLyogZmxhZ3MgKi8JMCwNCgkvKiBibWFq
ICovCS0xDQp9Ow0KI2VuZGlmDQoNClN0YXRpYyBpbnQgdXNjYW5uZXJfZG9f
cmVhZChzdHJ1Y3QgdXNjYW5uZXJfc29mdGMgKiwgc3RydWN0IHVpbyAqLCBp
bnQpOw0KU3RhdGljIGludCB1c2Nhbm5lcl9kb193cml0ZShzdHJ1Y3QgdXNj
YW5uZXJfc29mdGMgKiwgc3RydWN0IHVpbyAqLCBpbnQpOw0KU3RhdGljIHZv
aWQgdXNjYW5uZXJfZG9fY2xvc2Uoc3RydWN0IHVzY2FubmVyX3NvZnRjICop
Ow0KDQojZGVmaW5lIFVTQ0FOTkVSVU5JVChuKSAobWlub3IobikgJiAweGYp
DQoNClVTQl9ERUNMQVJFX0RSSVZFUih1c2Nhbm5lcik7DQoNClVTQl9NQVRD
SCh1c2Nhbm5lcikNCnsNCglVU0JfTUFUQ0hfU1RBUlQodXNjYW5uZXIsIHVh
YSk7DQoJaW50IGkgPSAwOw0KDQoJaWYgKHVhYS0+aWZhY2UgPT0gMCkNCgkJ
cmV0dXJuIFVNQVRDSF9OT05FOw0KDQoJd2hpbGUgKHNjYW5uZXJfaWRzW2ld
LnZlbmRvciAhPSAwKSB7DQoJCWlmIChzY2FubmVyX2lkc1tpXS52ZW5kb3Ig
PT0gdWFhLT52ZW5kb3INCgkJICAgICYmIHNjYW5uZXJfaWRzW2ldLnZlbmRv
ciA9PSB1YWEtPnZlbmRvcikgew0KCQkJcmV0dXJuIChVTUFUQ0hfVkVORE9S
X1BST0RVQ1QpOw0KCQl9IGVsc2Ugew0KCQkJaSsrOw0KCQl9DQoJfQ0KDQoJ
cmV0dXJuIChVTUFUQ0hfTk9ORSk7DQp9DQoNClVTQl9BVFRBQ0godXNjYW5u
ZXIpDQp7DQoJVVNCX0FUVEFDSF9TVEFSVCh1c2Nhbm5lciwgc2MsIHVhYSk7
DQoJdXNiX2ludGVyZmFjZV9kZXNjcmlwdG9yX3QgKmlkID0gMDsNCgl1c2Jf
ZW5kcG9pbnRfZGVzY3JpcHRvcl90ICplZCwgKmVkX2J1bGtpbiA9IE5VTEws
ICplZF9idWxrb3V0ID0gTlVMTDsNCgljaGFyIGRldmluZm9bMTAyNF07DQoJ
aW50IGk7DQoJdXNiZF9zdGF0dXMgZXJyOw0KDQoJdXNiZF9kZXZpbmZvKHVh
YS0+ZGV2aWNlLCAwLCBkZXZpbmZvKTsNCglVU0JfQVRUQUNIX1NFVFVQOw0K
CXByaW50ZigiJXM6ICVzXG4iLCBVU0JERVZOQU1FKHNjLT5zY19kZXYpLCBk
ZXZpbmZvKTsNCg0KCXNjLT5zY191ZGV2ID0gdWFhLT5kZXZpY2U7DQoNCgkv
KiBYWFggV2Ugb25seSBjaGVjayB0aGUgZmlyc3QgaW50ZXJmYWNlICovDQoJ
ZXJyID0gdXNiZF9kZXZpY2UyaW50ZXJmYWNlX2hhbmRsZShzYy0+c2NfdWRl
diwgMCwgJnNjLT5zY19pZmFjZSk7DQoJaWYgKCFlcnIgJiYgc2MtPnNjX2lm
YWNlKQ0KCSAgICBpZCA9IHVzYmRfZ2V0X2ludGVyZmFjZV9kZXNjcmlwdG9y
KHNjLT5zY19pZmFjZSk7DQoJaWYgKGVyciB8fCBpZCA9PSAwKSB7DQoJCXBy
aW50ZigiJXM6IGNvdWxkIG5vdCBnZXQgaW50ZXJmYWNlIGRlc2NyaXB0b3Is
IGVycj0lZCxpZD0lcFxuIiwNCgkJICAgICAgIFVTQkRFVk5BTUUoc2MtPnNj
X2RldiksIGVyciwgaWQpOw0KCQlVU0JfQVRUQUNIX0VSUk9SX1JFVFVSTjsN
Cgl9DQoNCgkvKiBGaW5kIHRoZSB0d28gZmlyc3QgYnVsayBlbmRwb2ludHMg
Ki8NCglmb3IgKGkgPSAwIDsgaSA8IGlkLT5iTnVtRW5kcG9pbnRzOyBpKysp
IHsNCgkJZWQgPSB1c2JkX2ludGVyZmFjZTJlbmRwb2ludF9kZXNjcmlwdG9y
KHNjLT5zY19pZmFjZSwgaSk7DQoJCWlmIChlZCA9PSAwKSB7DQoJCQlwcmlu
dGYoIiVzOiBjb3VsZCBub3QgcmVhZCBlbmRwb2ludCBkZXNjcmlwdG9yXG4i
LA0KCQkJICAgICAgIFVTQkRFVk5BTUUoc2MtPnNjX2RldikpOw0KCQkJVVNC
X0FUVEFDSF9FUlJPUl9SRVRVUk47DQoJCX0NCg0KCQlpZiAoVUVfR0VUX0RJ
UihlZC0+YkVuZHBvaW50QWRkcmVzcykgPT0gVUVfRElSX0lODQoJCSAgICAm
JiAoZWQtPmJtQXR0cmlidXRlcyAmIFVFX1hGRVJUWVBFKSA9PSBVRV9CVUxL
KSB7DQoJCQllZF9idWxraW4gPSBlZDsNCgkJfSBlbHNlIGlmIChVRV9HRVRf
RElSKGVkLT5iRW5kcG9pbnRBZGRyZXNzKSA9PSBVRV9ESVJfT1VUDQoJCSAg
ICAmJiAoZWQtPmJtQXR0cmlidXRlcyAmIFVFX1hGRVJUWVBFKSA9PSBVRV9C
VUxLKSB7DQoJCSAgICAgICAgZWRfYnVsa291dCA9IGVkOw0KCQl9DQoNCgkJ
aWYgKGVkX2J1bGtpbiAmJiBlZF9idWxrb3V0KQkvKiBmb3VuZCBhbGwgd2Ug
bmVlZCAqLw0KCQkJYnJlYWs7DQoJfQ0KDQoJLyogVmVyaWZ5IHRoYXQgd2Ug
Z29ldGhpbmcgc2Vuc2libGUgKi8NCglpZiAoZWRfYnVsa2luID09IE5VTEwg
fHwgZWRfYnVsa291dCA9PSBOVUxMKSB7DQoJCXByaW50ZigiJXM6IGJ1bGst
aW4gYW5kL29yIGJ1bGstb3V0IGVuZHBvaW50IG5vdCBmb3VuZFxuIiwNCgkJ
CVVTQkRFVk5BTUUoc2MtPnNjX2RldikpOw0KCQlVU0JfQVRUQUNIX0VSUk9S
X1JFVFVSTjsNCgl9DQoNCglzYy0+c2NfYnVsa2luID0gZWRfYnVsa2luLT5i
RW5kcG9pbnRBZGRyZXNzOw0KCXNjLT5zY19idWxrb3V0ID0gZWRfYnVsa291
dC0+YkVuZHBvaW50QWRkcmVzczsNCg0KCS8qIHRoZSBtYWluIGRldmljZSwg
Y3RybCBlbmRwb2ludCAqLw0KCW1ha2VfZGV2KCZ1c2Nhbm5lcl9jZGV2c3cs
IFVTQkRFVlVOSVQoc2MtPnNjX2RldiksDQoJCVVJRF9ST09ULCBHSURfT1BF
UkFUT1IsIDA2NDQsICIlcyIsIFVTQkRFVk5BTUUoc2MtPnNjX2RldikpOw0K
DQoJVVNCX0FUVEFDSF9TVUNDRVNTX1JFVFVSTjsNCn0NCg0KaW50DQp1c2Nh
bm5lcm9wZW4oZGV2LCBmbGFnLCBtb2RlLCBwKQ0KCWRldl90IGRldjsNCglp
bnQgZmxhZzsNCglpbnQgbW9kZTsNCglzdHJ1Y3QgcHJvYyAqcDsNCnsNCglz
dHJ1Y3QgdXNjYW5uZXJfc29mdGMgKnNjOw0KCWludCB1bml0ID0gVVNDQU5O
RVJVTklUKGRldik7DQoJdXNiZF9zdGF0dXMgZXJyOw0KDQoJVVNCX0dFVF9T
Q19PUEVOKHVzY2FubmVyLCB1bml0LCBzYyk7DQoNCiAJRFBSSU5URk4oNSwg
KCJ1c2Nhbm5lcm9wZW46IGZsYWc9JWQsIG1vZGU9JWQsIHVuaXQ9JWRcbiIs
IA0KCQkgICAgIGZsYWcsIG1vZGUsIHVuaXQpKTsNCg0KCWlmIChzYyA9PSBO
VUxMIHx8IHNjLT5zY19keWluZykNCgkJcmV0dXJuIChFTlhJTyk7DQoNCglp
ZiAoc2MtPnN0YXRlICYgVVNDQU5ORVJfT1BFTikNCgkJcmV0dXJuIChFQlVT
WSk7DQoNCglzYy0+c2NfYnVsa2luX2J1ZmZlciA9IG1hbGxvYyhVU0NBTk5F
Ul9CVUZGRVJTSVpFLCBNX1VTQkRFViwgTV9XQUlUT0spOw0KCXNjLT5zY19i
dWxrb3V0X2J1ZmZlciA9IG1hbGxvYyhVU0NBTk5FUl9CVUZGRVJTSVpFLCBN
X1VTQkRFViwgTV9XQUlUT0spOw0KCWlmIChzYy0+c2NfYnVsa2luX2J1ZmZl
ciA9PSAwIHx8IHNjLT5zY19idWxrb3V0X2J1ZmZlciA9PSAwKSB7DQoJCXVz
Y2FubmVyX2RvX2Nsb3NlKHNjKTsNCgkJcmV0dXJuIEVOT01FTTsNCgl9DQoJ
c2MtPnNjX2J1bGtpbl9idWZmZXJsZW4gPSBVU0NBTk5FUl9CVUZGRVJTSVpF
Ow0KCXNjLT5zY19idWxrb3V0X2J1ZmZlcmxlbiA9IFVTQ0FOTkVSX0JVRkZF
UlNJWkU7DQoNCgkvKiBXZSBoYXZlIGRlY2lkZWQgb24gd2hpY2ggZW5kcG9p
bnRzIHRvIHVzZSwgbm93IG9wZW4gdGhlIHBpcGVzICovDQoJZXJyID0gdXNi
ZF9vcGVuX3BpcGUoc2MtPnNjX2lmYWNlLCBzYy0+c2NfYnVsa2luLA0KCQkJ
CVVTQkRfRVhDTFVTSVZFX1VTRSwgJnNjLT5zY19idWxraW5fcGlwZSk7DQoJ
aWYgKGVycikgew0KCQlwcmludGYoIiVzOiBjYW5ub3Qgb3BlbiBidWxrLWlu
IHBpcGUgKGFkZHIgJWQpXG4iLA0KCQkJVVNCREVWTkFNRShzYy0+c2NfZGV2
KSwgc2MtPnNjX2J1bGtpbik7DQoJCXVzY2FubmVyX2RvX2Nsb3NlKHNjKTsN
CgkJcmV0dXJuIEVJTzsNCgl9DQoJZXJyID0gdXNiZF9vcGVuX3BpcGUoc2Mt
PnNjX2lmYWNlLCBzYy0+c2NfYnVsa291dCwNCgkJCQlVU0JEX0VYQ0xVU0lW
RV9VU0UsICZzYy0+c2NfYnVsa291dF9waXBlKTsNCglpZiAoZXJyKSB7DQoJ
CXByaW50ZigiJXM6IGNhbm5vdCBvcGVuIGJ1bGstb3V0IHBpcGUgKGFkZHIg
JWQpXG4iLA0KCQkJVVNCREVWTkFNRShzYy0+c2NfZGV2KSwgc2MtPnNjX2J1
bGtvdXQpOw0KCQl1c2Nhbm5lcl9kb19jbG9zZShzYyk7DQoJCXJldHVybiBF
SU87DQoJfQ0KDQoJc2MtPnNjX2J1bGtpbl94ZmVyID0gdXNiZF9hbGxvY194
ZmVyKHNjLT5zY191ZGV2KTsNCglpZiAoc2MtPnNjX2J1bGtpbl94ZmVyID09
IDApIHsNCgkJdXNjYW5uZXJfZG9fY2xvc2Uoc2MpOw0KCQlyZXR1cm4gKEVO
T01FTSk7DQoJfQ0KCXNjLT5zY19idWxrb3V0X3hmZXIgPSB1c2JkX2FsbG9j
X3hmZXIoc2MtPnNjX3VkZXYpOw0KCWlmIChzYy0+c2NfYnVsa291dF94ZmVy
ID09IDApIHsNCgkJdXNjYW5uZXJfZG9fY2xvc2Uoc2MpOw0KCQlyZXR1cm4g
KEVOT01FTSk7DQoJfQ0KDQoJcmV0dXJuIDA7CS8qIHN1Y2Nlc3MgKi8NCn0N
Cg0KaW50DQp1c2Nhbm5lcmNsb3NlKGRldiwgZmxhZywgbW9kZSwgcCkNCglk
ZXZfdCBkZXY7DQoJaW50IGZsYWc7DQoJaW50IG1vZGU7DQoJc3RydWN0IHBy
b2MgKnA7DQp7DQoJc3RydWN0IHVzY2FubmVyX3NvZnRjICpzYzsNCg0KCVVT
Ql9HRVRfU0ModXNjYW5uZXIsIFVTQ0FOTkVSVU5JVChkZXYpLCBzYyk7DQoN
CglEUFJJTlRGTig1LCAoInVzY2FubmVyY2xvc2U6IGZsYWc9JWQsIG1vZGU9
JWQsIHVuaXQ9JWRcbiIsDQoJCSAgICAgZmxhZywgbW9kZSwgVVNDQU5ORVJV
TklUKGRldikpKTsNCg0KI2lmZGVmIERJQUdOT1NUSUMNCglpZiAoIShzYy0+
c3RhdGUgJiBVU0NBTk5FUl9PUEVOKSkgew0KCQlwcmludGYoInVzY2FubmVy
Y2xvc2U6IG5vdCBvcGVuXG4iKTsNCgkJcmV0dXJuIChFSU5WQUwpOw0KCX0N
CiNlbmRpZg0KDQoJdXNjYW5uZXJfZG9fY2xvc2Uoc2MpOw0KDQoJcmV0dXJu
IDA7DQp9DQoNCnZvaWQNCnVzY2FubmVyX2RvX2Nsb3NlKHN0cnVjdCB1c2Nh
bm5lcl9zb2Z0YyAqc2MpDQp7DQoJaWYgKHNjLT5zY19idWxraW5feGZlcikg
ew0KCQl1c2JkX2ZyZWVfeGZlcihzYy0+c2NfYnVsa2luX3hmZXIpOw0KCQlz
Yy0+c2NfYnVsa2luX3hmZXIgPSBOVUxMOw0KCX0NCglpZiAoc2MtPnNjX2J1
bGtvdXRfeGZlcikgew0KCQl1c2JkX2ZyZWVfeGZlcihzYy0+c2NfYnVsa291
dF94ZmVyKTsNCgkJc2MtPnNjX2J1bGtvdXRfeGZlciA9IE5VTEw7DQoJfQ0K
DQoJaWYgKHNjLT5zY19idWxraW5fcGlwZSkgew0KCQl1c2JkX2Fib3J0X3Bp
cGUoc2MtPnNjX2J1bGtpbl9waXBlKTsNCgkJdXNiZF9jbG9zZV9waXBlKHNj
LT5zY19idWxraW5fcGlwZSk7DQoJCXNjLT5zY19idWxraW5fcGlwZSA9IE5V
TEw7DQoJfQ0KCWlmIChzYy0+c2NfYnVsa291dF9waXBlKSB7DQoJCXVzYmRf
YWJvcnRfcGlwZShzYy0+c2NfYnVsa291dF9waXBlKTsNCgkJdXNiZF9jbG9z
ZV9waXBlKHNjLT5zY19idWxrb3V0X3BpcGUpOw0KCQlzYy0+c2NfYnVsa291
dF9waXBlID0gTlVMTDsNCgl9DQoNCglpZiAoc2MtPnNjX2J1bGtpbl9idWZm
ZXIpIHsNCgkJZnJlZShzYy0+c2NfYnVsa2luX2J1ZmZlciwgTV9VU0JERVYp
Ow0KCQlzYy0+c2NfYnVsa2luX2J1ZmZlciA9IE5VTEw7DQoJfQ0KCWlmIChz
Yy0+c2NfYnVsa291dF9idWZmZXIpIHsNCgkJZnJlZShzYy0+c2NfYnVsa291
dF9idWZmZXIsIE1fVVNCREVWKTsNCgkJc2MtPnNjX2J1bGtvdXRfYnVmZmVy
ID0gTlVMTDsNCgl9DQoNCglzYy0+c3RhdGUgJj0gflVTQ0FOTkVSX09QRU47
DQp9DQoNClN0YXRpYyBpbnQNCnVzY2FubmVyX2RvX3JlYWQoc2MsIHVpbywg
ZmxhZykNCglzdHJ1Y3QgdXNjYW5uZXJfc29mdGMgKnNjOw0KCXN0cnVjdCB1
aW8gKnVpbzsNCglpbnQgZmxhZzsNCnsNCgl1X2ludDMyX3QgbiwgdG47DQoJ
dXNiZF9zdGF0dXMgZXJyOw0KCWludCBlcnJvciA9IDA7DQoNCglEUFJJTlRG
Tig1LCAoIiVzOiB1c2Nhbm5lcnJlYWRcbiIsIFVTQkRFVk5BTUUoc2MtPnNj
X2RldikpKTsNCg0KCWlmIChzYy0+c2NfZHlpbmcpDQoJCXJldHVybiAoRUlP
KTsNCg0KCXdoaWxlICgobiA9IG1pbihzYy0+c2NfYnVsa2luX2J1ZmZlcmxl
biwgdWlvLT51aW9fcmVzaWQpKSAhPSAwKSB7DQoJCURQUklOVEZOKDEsICgi
dXNjYW5uZXJyZWFkOiBzdGFydCB0cmFuc2ZlciAlZCBieXRlc1xuIixuKSk7
DQoJCXRuID0gbjsNCg0KCQllcnIgPSB1c2JkX2J1bGtfdHJhbnNmZXIoDQoJ
CQlzYy0+c2NfYnVsa2luX3hmZXIsIHNjLT5zY19idWxraW5fcGlwZSwNCgkJ
CXNjLT5zdGF0ZSAmIFVTQkRfU0hPUlRfWEZFUl9PSywgVVNCRF9OT19USU1F
T1VULA0KCQkJc2MtPnNjX2J1bGtpbl9idWZmZXIsICZ0biwNCgkJCSJ1c2Nh
bm5lcnJiIik7DQoJCWlmIChlcnIpIHsNCgkJCWlmIChlcnIgPT0gVVNCRF9J
TlRFUlJVUFRFRCkNCgkJCQllcnJvciA9IEVJTlRSOw0KCQkJZWxzZSBpZiAo
ZXJyID09IFVTQkRfVElNRU9VVCkNCgkJCQllcnJvciA9IEVUSU1FRE9VVDsN
CgkJCWVsc2UNCgkJCQllcnJvciA9IEVJTzsNCgkJCWJyZWFrOw0KCQl9DQoJ
CURQUklOVEZOKDEsICgidXNjYW5uZXJyZWFkOiBnb3QgJWQgYnl0ZXNcbiIs
IHRuKSk7DQoJCWVycm9yID0gdWlvbW92ZShzYy0+c2NfYnVsa2luX2J1ZmZl
ciwgdG4sIHVpbyk7DQoJCWlmIChlcnJvciB8fCB0biA8IG4pDQoJCQlicmVh
azsNCgl9DQoNCglyZXR1cm4gKGVycm9yKTsNCn0NCg0KaW50DQp1c2Nhbm5l
cnJlYWQoZGV2LCB1aW8sIGZsYWcpDQoJZGV2X3QgZGV2Ow0KCXN0cnVjdCB1
aW8gKnVpbzsNCglpbnQgZmxhZzsNCnsNCglzdHJ1Y3QgdXNjYW5uZXJfc29m
dGMgKnNjOw0KCWludCBlcnJvcjsNCg0KCVVTQl9HRVRfU0ModXNjYW5uZXIs
IFVTQ0FOTkVSVU5JVChkZXYpLCBzYyk7DQoNCglzYy0+c2NfcmVmY250Kys7
DQoJZXJyb3IgPSB1c2Nhbm5lcl9kb19yZWFkKHNjLCB1aW8sIGZsYWcpOw0K
CWlmICgtLXNjLT5zY19yZWZjbnQgPCAwKQ0KCQl1c2JfZGV0YWNoX3dha2V1
cChVU0JERVYoc2MtPnNjX2RldikpOw0KDQoJcmV0dXJuIChlcnJvcik7DQp9
DQoNClN0YXRpYyBpbnQNCnVzY2FubmVyX2RvX3dyaXRlKHNjLCB1aW8sIGZs
YWcpDQoJc3RydWN0IHVzY2FubmVyX3NvZnRjICpzYzsNCglzdHJ1Y3QgdWlv
ICp1aW87DQoJaW50IGZsYWc7DQp7DQoJdV9pbnQzMl90IG47DQoJaW50IGVy
cm9yID0gMDsNCgl1c2JkX3N0YXR1cyBlcnI7DQoNCglEUFJJTlRGTig1LCAo
IiVzOiB1c2Nhbm5lcl9kb193cml0ZVxuIiwgVVNCREVWTkFNRShzYy0+c2Nf
ZGV2KSkpOw0KDQoJaWYgKHNjLT5zY19keWluZykNCgkJcmV0dXJuIChFSU8p
Ow0KDQoJd2hpbGUgKChuID0gbWluKHNjLT5zY19idWxrb3V0X2J1ZmZlcmxl
biwgdWlvLT51aW9fcmVzaWQpKSAhPSAwKSB7DQoJCWVycm9yID0gdWlvbW92
ZShzYy0+c2NfYnVsa291dF9idWZmZXIsIG4sIHVpbyk7DQoJCWlmIChlcnJv
cikNCgkJCWJyZWFrOw0KCQlEUFJJTlRGTigxLCAoInVzY2FubmVyX2RvX3dy
aXRlOiB0cmFuc2ZlciAlZCBieXRlc1xuIiwgbikpOw0KCQllcnIgPSB1c2Jk
X2J1bGtfdHJhbnNmZXIoDQoJCQlzYy0+c2NfYnVsa291dF94ZmVyLCBzYy0+
c2NfYnVsa291dF9waXBlLA0KCQkJMCwgVVNCRF9OT19USU1FT1VULA0KCQkJ
c2MtPnNjX2J1bGtvdXRfYnVmZmVyLCAmbiwNCgkJCSJ1c2Nhbm5lcndiIik7
DQoJCWlmIChlcnIpIHsNCgkJCWlmIChlcnIgPT0gVVNCRF9JTlRFUlJVUFRF
RCkNCgkJCQllcnJvciA9IEVJTlRSOw0KCQkJZWxzZQ0KCQkJCWVycm9yID0g
RUlPOw0KCQkJYnJlYWs7DQoJCX0NCgl9DQoNCglyZXR1cm4gKGVycm9yKTsN
Cn0NCg0KaW50DQp1c2Nhbm5lcndyaXRlKGRldiwgdWlvLCBmbGFnKQ0KCWRl
dl90IGRldjsNCglzdHJ1Y3QgdWlvICp1aW87DQoJaW50IGZsYWc7DQp7DQoJ
c3RydWN0IHVzY2FubmVyX3NvZnRjICpzYzsNCglpbnQgZXJyb3I7DQoNCglV
U0JfR0VUX1NDKHVzY2FubmVyLCBVU0NBTk5FUlVOSVQoZGV2KSwgc2MpOw0K
DQoJc2MtPnNjX3JlZmNudCsrOw0KCWVycm9yID0gdXNjYW5uZXJfZG9fd3Jp
dGUoc2MsIHVpbywgZmxhZyk7DQoJaWYgKC0tc2MtPnNjX3JlZmNudCA8IDAp
DQoJCXVzYl9kZXRhY2hfd2FrZXVwKFVTQkRFVihzYy0+c2NfZGV2KSk7DQoJ
cmV0dXJuIChlcnJvcik7DQp9DQoNCiNpZiBkZWZpbmVkKF9fTmV0QlNEX18p
IHx8IGRlZmluZWQoX19PcGVuQlNEX18pDQppbnQNCnVzY2FubmVyX2FjdGl2
YXRlKHNlbGYsIGFjdCkNCglkZXZpY2VfcHRyX3Qgc2VsZjsNCgllbnVtIGRl
dmFjdCBhY3Q7DQp7DQoJc3RydWN0IHVzY2FubmVyX3NvZnRjICpzYyA9IChz
dHJ1Y3QgdXNjYW5uZXJfc29mdGMgKilzZWxmOw0KDQoJc3dpdGNoIChhY3Qp
IHsNCgljYXNlIERWQUNUX0FDVElWQVRFOg0KCQlyZXR1cm4gKEVPUE5PVFNV
UFApOw0KCQlicmVhazsNCg0KCWNhc2UgRFZBQ1RfREVBQ1RJVkFURToNCgkJ
c2MtPnNjX2R5aW5nID0gMTsNCgkJYnJlYWs7DQoJfQ0KCXJldHVybiAoMCk7
DQp9DQojZW5kaWYNCg0KVVNCX0RFVEFDSCh1c2Nhbm5lcikNCnsNCglVU0Jf
REVUQUNIX1NUQVJUKHVzY2FubmVyLCBzYyk7DQoJaW50IHM7DQojaWYgZGVm
aW5lZChfX05ldEJTRF9fKSB8fCBkZWZpbmVkKF9fT3BlbkJTRF9fKQ0KCWlu
dCBtYWosIG1uOw0KI2VsaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykNCglkZXZf
dCBkZXY7DQoJc3RydWN0IHZub2RlICp2cDsNCiNlbmRpZg0KDQojaWYgZGVm
aW5lZChfX05ldEJTRF9fKSB8fCBkZWZpbmVkKF9fT3BlbkJTRF9fKQ0KCURQ
UklOVEYoKCJ1c2Nhbm5lcl9kZXRhY2g6IHNjPSVwIGZsYWdzPSVkXG4iLCBz
YywgZmxhZ3MpKTsNCiNlbGlmIGRlZmluZWQoX19GcmVlQlNEX18pDQoJRFBS
SU5URigoInVzY2FubmVyX2RldGFjaDogc2M9JXBcbiIsIHNjKSk7DQojZW5k
aWYNCg0KCXNjLT5zY19keWluZyA9IDE7DQoNCgkvKiBBYm9ydCBhbGwgcGlw
ZXMuICBDYXVzZXMgcHJvY2Vzc2VzIHdhaXRpbmcgZm9yIHRyYW5zZmVyIHRv
IHdha2UuICovDQoJaWYgKHNjLT5zY19idWxraW5fcGlwZSkNCgkJdXNiZF9h
Ym9ydF9waXBlKHNjLT5zY19idWxraW5fcGlwZSk7DQoJaWYgKHNjLT5zY19i
dWxrb3V0X3BpcGUpDQoJCXVzYmRfYWJvcnRfcGlwZShzYy0+c2NfYnVsa291
dF9waXBlKTsNCg0KCXMgPSBzcGx1c2IoKTsNCglpZiAoLS1zYy0+c2NfcmVm
Y250ID49IDApIHsNCgkJLyogV2FpdCBmb3IgcHJvY2Vzc2VzIHRvIGdvIGF3
YXkuICovDQoJCXVzYl9kZXRhY2hfd2FpdChVU0JERVYoc2MtPnNjX2Rldikp
Ow0KCX0NCglzcGx4KHMpOw0KDQojaWYgZGVmaW5lZChfX05ldEJTRF9fKSB8
fCBkZWZpbmVkKF9fT3BlbkJTRF9fKQ0KCS8qIGxvY2F0ZSB0aGUgbWFqb3Ig
bnVtYmVyICovDQoJZm9yIChtYWogPSAwOyBtYWogPCBuY2hyZGV2OyBtYWor
KykNCgkJaWYgKGNkZXZzd1ttYWpdLmRfb3BlbiA9PSB1c2Nhbm5lcm9wZW4p
DQoJCQlicmVhazsNCg0KCS8qIE51a2UgdGhlIHZub2RlcyBmb3IgYW55IG9w
ZW4gaW5zdGFuY2VzIChjYWxscyBjbG9zZSkuICovDQoJbW4gPSBzZWxmLT5k
dl91bml0ICogVVNCX01BWF9FTkRQT0lOVFM7DQoJdmRldmdvbmUobWFqLCBt
biwgbW4gKyBVU0JfTUFYX0VORFBPSU5UUyAtIDEsIFZDSFIpOw0KI2VsaWYg
ZGVmaW5lZChfX0ZyZWVCU0RfXykNCgkvKiBkZXN0cm95IHRoZSBkZXZpY2Ug
Zm9yIHRoZSBjb250cm9sIGVuZHBvaW50ICovDQoJZGV2ID0gbWFrZWRldihV
U0NBTk5FUl9DREVWX01BSk9SLCBVU0JERVZVTklUKHNjLT5zY19kZXYpKTsN
Cgl2cCA9IFNMSVNUX0ZJUlNUKCZkZXYtPnNpX2hsaXN0KTsNCglpZiAodnAp
DQoJCVZPUF9SRVZPS0UodnAsIFJFVk9LRUFMTCk7DQoJZGVzdHJveV9kZXYo
ZGV2KTsNCiNlbmRpZg0KDQoJcmV0dXJuICgwKTsNCn0NCg0KaW50DQp1c2Nh
bm5lcnBvbGwoZGV2LCBldmVudHMsIHApDQoJZGV2X3QgZGV2Ow0KCWludCBl
dmVudHM7DQoJc3RydWN0IHByb2MgKnA7DQp7DQoJc3RydWN0IHVzY2FubmVy
X3NvZnRjICpzYzsNCglpbnQgcmV2ZW50cyA9IDA7DQoNCglVU0JfR0VUX1ND
KHVzY2FubmVyLCBVU0NBTk5FUlVOSVQoZGV2KSwgc2MpOw0KDQoJaWYgKHNj
LT5zY19keWluZykNCgkJcmV0dXJuIChFSU8pOw0KDQoJLyogDQoJICogV2Ug
aGF2ZSBubyBlYXN5IHdheSBvZiBkZXRlcm1pbmluZyBpZiBhIHJlYWQgd2ls
bA0KCSAqIHlpZWxkIGFueSBkYXRhIG9yIGEgd3JpdGUgd2lsbCBoYXBwZW4u
DQoJICogUHJldGVuZCB0aGV5IHdpbGwuDQoJICovDQoJcmV2ZW50cyB8PSBl
dmVudHMgJiANCgkJICAgKFBPTExJTiB8IFBPTExSRE5PUk0gfCBQT0xMT1VU
IHwgUE9MTFdSTk9STSk7DQoNCglyZXR1cm4gKHJldmVudHMpOw0KfQ0KDQoj
aWYgZGVmaW5lZChfX0ZyZWVCU0RfXykNCkRSSVZFUl9NT0RVTEUodXNjYW5u
ZXIsIHVodWIsIHVzY2FubmVyX2RyaXZlciwgdXNjYW5uZXJfZGV2Y2xhc3Ms
IHVzYmRfZHJpdmVyX2xvYWQsIDApOw0KI2VuZGlmDQo=
--0-1557275625-968264149=:54419
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="uscanner.h"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.BSF.4.20.0009061915491.54419@henny.webweaving.org>
Content-Description: 
Content-Disposition: attachment; filename="uscanner.h"

LyogdGFibGUgb2Ygc2Nhbm5lcnMgdGhhdCBtYXkgd29yayB3aXRoIHRoaXMg
ZHJpdmVyICovDQpzdGF0aWMgY29uc3Qgc3RydWN0IHNjYW5uZXJfaWQgew0K
ICAgIHVpbnQxNl90CXZlbmRvcjsNCiAgICB1aW50MTZfdAlwcm9kdWN0Ow0K
fSBzY2FubmVyX2lkcyBbXSA9IHsNCiAgICB7IFVTQl9WRU5ET1JfQUNFUlAs
IFVTQl9QUk9EVUNUX0FDRVJQX0FDRVJTQ0FOXzY0MFUgfSwNCiAgICB7IFVT
Ql9WRU5ET1JfQUNFUlAsIFVTQl9QUk9EVUNUX0FDRVJQX0FDRVJTQ0FOXzYy
MFUgfSwNCg0KICAgIHsgVVNCX1ZFTkRPUl9BR0ZBLCBVU0JfUFJPRFVDVF9B
R0ZBX1NOQVBTQ0FOMTIxMlUgfSwNCiAgICB7IFVTQl9WRU5ET1JfQUdGQSwg
VVNCX1BST0RVQ1RfQUdGQV9TTkFQU0NBTjEyMTJVMiB9LA0KICAgIHsgVVNC
X1ZFTkRPUl9BR0ZBLCBVU0JfUFJPRFVDVF9BR0ZBX1NOQVBTQ0FOVE9VQ0gg
fSwNCg0KICAgIHsgVVNCX1ZFTkRPUl9LWUUsIFVTQl9QUk9EVUNUX0tZRV9W
SVZJRFBSTyB9LA0KDQogICAgeyBVU0JfVkVORE9SX0hQLCBVU0JfUFJPRFVD
VF9IUF8zMzAwQyB9LA0KICAgIHsgVVNCX1ZFTkRPUl9IUCwgVVNCX1BST0RV
Q1RfSFBfNDEwMEMgfSwNCiAgICB7IFVTQl9WRU5ET1JfSFAsIFVTQl9QUk9E
VUNUX0hQXzQyMDBDIH0sDQogICAgeyBVU0JfVkVORE9SX0hQLCBVU0JfUFJP
RFVDVF9IUF9TMjAgfSwNCiAgICB7IFVTQl9WRU5ET1JfSFAsIFVTQl9QUk9E
VUNUX0hQXzUyMDAgfSwNCiAgICB7IFVTQl9WRU5ET1JfSFAsIFVTQl9QUk9E
VUNUX0hQXzYyMDBDIH0sDQogICAgeyBVU0JfVkVORE9SX0hQLCBVU0JfUFJP
RFVDVF9IUF82MzAwQyB9LA0KDQogICAgeyBVU0JfVkVORE9SX0FWSVNJT04s
IFVTQl9QUk9EVUNUX0FWSVNJT05fMTIwMFUgfSwNCg0KICAgIHsgVVNCX1ZF
TkRPUl9NSUNST1RFSywgVVNCX1BST0RVQ1RfTUlDUk9URUtfWDZVIH0sDQog
ICAgeyBVU0JfVkVORE9SX01JQ1JPVEVLLCBVU0JfUFJPRFVDVF9NSUNST1RF
S18zMzZDWCB9LA0KICAgIHsgVVNCX1ZFTkRPUl9NSUNST1RFSywgVVNCX1BS
T0RVQ1RfTUlDUk9URUtfMzM2Q1gyIH0sDQogICAgeyBVU0JfVkVORE9SX01J
Q1JPVEVLLCBVU0JfUFJPRFVDVF9NSUNST1RFS19DNiB9LA0KICAgIHsgVVNC
X1ZFTkRPUl9NSUNST1RFSywgVVNCX1BST0RVQ1RfTUlDUk9URUtfVjZVU0wg
fSwNCiAgICB7IFVTQl9WRU5ET1JfTUlDUk9URUssIFVTQl9QUk9EVUNUX01J
Q1JPVEVLX1Y2VVNMMiB9LA0KICAgIHsgVVNCX1ZFTkRPUl9NSUNST1RFSywg
VVNCX1BST0RVQ1RfTUlDUk9URUtfVjZVTCB9LA0KDQogICAgeyBVU0JfVkVO
RE9SX01VU1RFSywgVVNCX1BST0RVQ1RfTVVTVEVLXzEyMDBDVSB9LA0KDQog
ICAgeyBVU0JfVkVORE9SX1BSSU1BWCwgVVNCX1BST0RVQ1RfUFJJTUFYX0cy
RTMwMCB9LA0KICAgIHsgVVNCX1ZFTkRPUl9QUklNQVgsIFVTQl9QUk9EVUNU
X1BSSU1BWF82MzZJIH0sDQogICAgeyBVU0JfVkVORE9SX1BSSU1BWCwgVVNC
X1BST0RVQ1RfUFJJTUFYX0cyMzAwIH0sDQogICAgeyBVU0JfVkVORE9SX1BS
SU1BWCwgVVNCX1BST0RVQ1RfUFJJTUFYX0cyNjAwIH0sDQogICAgeyBVU0Jf
VkVORE9SX1BSSU1BWCwgVVNCX1BST0RVQ1RfUFJJTUFYX0cyRTMwMDIgfSwN
CiAgICB7IFVTQl9WRU5ET1JfUFJJTUFYLCBVU0JfUFJPRFVDVF9QUklNQVhf
RzJFNjAwIH0sDQogICAgeyBVU0JfVkVORE9SX1BSSU1BWCwgVVNCX1BST0RV
Q1RfUFJJTUFYXzk2MDAgfSwNCiAgICB7IFVTQl9WRU5ET1JfUFJJTUFYLCBV
U0JfUFJPRFVDVF9QUklNQVhfMTkyMDAgfSwNCiAgICB7IFVTQl9WRU5ET1Jf
UFJJTUFYLCBVU0JfUFJPRFVDVF9QUklNQVhfNjAwVSB9LA0KICAgIHsgVVNC
X1ZFTkRPUl9QUklNQVgsIFVTQl9QUk9EVUNUX1BSSU1BWF8xMjAwVSB9LA0K
DQogICAgeyBVU0JfVkVORE9SX0VQU09OLCBVU0JfUFJPRFVDVF9FUFNPTl82
MzYgfSwNCiAgICB7IFVTQl9WRU5ET1JfRVBTT04sIFVTQl9QUk9EVUNUX0VQ
U09OXzYxMCB9LA0KICAgIHsgVVNCX1ZFTkRPUl9FUFNPTiwgVVNCX1BST0RV
Q1RfRVBTT05fMTIwMCB9LA0KDQogICAgeyBVU0JfVkVORE9SX1VNQVgsIFVT
Ql9QUk9EVUNUX1VNQVhfQVNUUkExMjIwVSB9LA0KICAgIHsgVVNCX1ZFTkRP
Ul9VTUFYLCBVU0JfUFJPRFVDVF9VTUFYX0FTVFJBMTIzNlUgfSwNCiAgICB7
IFVTQl9WRU5ET1JfVU1BWCwgVVNCX1BST0RVQ1RfVU1BWF9BU1RSQTIwMDBV
IH0sDQogICAgeyBVU0JfVkVORE9SX1VNQVgsIFVTQl9QUk9EVUNUX1VNQVhf
QVNUUkEyMjAwVSB9LA0KDQogICAgeyBVU0JfVkVORE9SX1ZJU0lPTkVFUiwg
VVNCX1BST0RVQ1RfVklTSU9ORUVSXzUzMDAgfSwNCiAgICB7IFVTQl9WRU5E
T1JfVklTSU9ORUVSLCBVU0JfUFJPRFVDVF9WSVNJT05FRVJfNjEwMCB9LA0K
DQogICAgeyAwLCAwIH0NCn07DQoNCg0K
--0-1557275625-968264149=:54419
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=Makefile
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.BSF.4.20.0009061915492.54419@henny.webweaving.org>
Content-Description: 
Content-Disposition: attachment; filename=Makefile

IyAgICAgICAkRnJlZUJTRDogc3JjL3N5cy9tb2R1bGVzL3Vtcy9NYWtlZmls
ZSx2IDEuOSAyMDAwLzA1LzI3IDAxOjE0OjI4IHBldGVyIEV4cCAkIA0KDQpN
QUlOVEFJTkVSCSA9IG5faGlibWFAZnJlZWJzZC5vcmcNCg0KLlBBVEg6ICAJ
ICR7LkNVUkRJUn0vLi4vLi4vZGV2L3VzYg0KS01PRAkJID0gdXNjYW5uZXIN
ClNSQ1MJCSA9IGJ1c19pZi5oIGRldmljZV9pZi5oIHZub2RlX2lmLmggb3B0
X3VzYi5oIHVzY2FubmVyLmMNCk5PTUFOCQkgPQ0KDQpDRkxBR1MJCSs9IC1n
DQoNCi5pbmNsdWRlIDxic2Qua21vZC5taz4NCg==
--0-1557275625-968264149=:54419
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="uscanner.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.BSF.4.20.0009061915493.54419@henny.webweaving.org>
Content-Description: 
Content-Disposition: attachment; filename="uscanner.patch"

SW5kZXg6IGJvb3QvZm9ydGgvbG9hZGVyLmNvbmYNCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0NClJDUyBmaWxlOiAvaG9tZS9uY3ZzL3NyYy9zeXMvYm9vdC9m
b3J0aC9sb2FkZXIuY29uZix2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzAN
CmRpZmYgLXcgLXUgLXIxLjMwIGxvYWRlci5jb25mDQotLS0gYm9vdC9mb3J0
aC9sb2FkZXIuY29uZgkyMDAwLzA3LzI4IDExOjU0OjA4CTEuMzANCisrKyBi
b290L2ZvcnRoL2xvYWRlci5jb25mCTIwMDAvMDkvMDUgMTM6NDg6MjMNCkBA
IC0xNjksNiArMTY5LDcgQEANCiB1bHB0X2xvYWQ9Ik5PIgkJCSMgUHJpbnRl
cg0KIHVtc19sb2FkPSJOTyIJCQkjIE1vdXNlDQogdW1hc3NfbG9hZD0iTk8i
CQkJIyBNYXNzIFN0b3JhZ2UgRGV2aWNlcw0KK3VzY2FubmVyX2xvYWQ9Ik5P
IgkJIyBTY2FubmVycw0KIGlmX2F1ZV9sb2FkPSJOTyIJCSMgQURNdGVrIFVT
QiBldGhlcm5ldA0KIGlmX2N1ZV9sb2FkPSJOTyIJCSMgQ0FUQyBVU0IgZXRo
ZXJuZXQNCiBpZl9rdWVfbG9hZD0iTk8iCQkjIEthd2FzYWtpIExTSSBVU0Ig
ZXRoZXJuZXQNCkluZGV4OiBjb25mL21ham9ycw0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3N5cy9jb25mL21h
am9ycyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTEyDQpkaWZmIC13IC11
IC1yMS4xMTIgbWFqb3JzDQotLS0gY29uZi9tYWpvcnMJMjAwMC8wOS8wMSAy
MToxNDoxNQkxLjExMg0KKysrIGNvbmYvbWFqb3JzCTIwMDAvMDkvMDUgMTM6
MzY6MDINCkBAIC0xNzEsNiArMTcxLDcgQEANCiAxNTIJYWNwaQkJQUNQSSBi
aW9zIHN1cHBvcnQgKFRha2Fub3JpIFdhdGFuYWJlIHRha2F3YXRhQHNoaWRh
aGFyYTEucGxhbmV0LnNjaS5rb2JlLXUuYWMuanApDQogMTUzCXRpCQlUaWdv
biBHaWdhYml0IEV0aGVybmV0IGRyaXZlciAoa2VuQEZyZWVCU0QuT1JHKQ0K
IDE1NAlhc3IJCUFkYXB0ZWMgU0NTSSBSQUlEIDxtc21pdGhAZnJlZWJzZC5v
cmc+DQorMTU1CXVzY2FubmVyCVVTQiBTY2FubmVycyA8bl9oaWJtYT4NCiAy
MDAJPz8JCWVudHJpZXMgZnJvbSAyMDAtMjUyIGFyZSByZXNlcnZlZCBmb3Ig
bG9jYWwgdXNlDQogMjUyCT8/CQllbnRyaWVzIGZyb20gMjAwLTI1MiBhcmUg
cmVzZXJ2ZWQgZm9yIGxvY2FsIHVzZQ0KIDI1MwltZnMJCVVzZWQgYnkgTUZT
DQpJbmRleDogbW9kdWxlcy9NYWtlZmlsZQ0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3N5cy9tb2R1bGVzL01h
a2VmaWxlLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMzcNCmRpZmYgLXcg
LXUgLXIxLjEzNyBNYWtlZmlsZQ0KLS0tIG1vZHVsZXMvTWFrZWZpbGUJMjAw
MC8wOS8wMSAwNzo1MToyNAkxLjEzNw0KKysrIG1vZHVsZXMvTWFrZWZpbGUJ
MjAwMC8wOS8wNSAxMzo0NjowMw0KQEAgLTEzLDYgKzEzLDcgQEANCiAJbndm
cyBwb3J0YWwgcHJvY2ZzICR7X3JhbmRvbWRldn0gXA0KIAlybCBycCBzZiBz
aXMgc2sgc24gc291bmQgc3RlIHN5c2NvbnMgdGkgdGwgdHdlIHR4IFwNCiAJ
dWRicCB1Z2VuIHVoaWQgdWtiZCB1bHB0IHVtYXBmcyB1bWFzcyB1bW9kZW0g
dW1zIHVuaW9uIHVyaW8gdXNiIFwNCisJdXNjYW5uZXIgXA0KIAl2aW51bSB2
biB2cG8gdnIgd2Igd3ggeGwNCiANCiAjIFhYWCBzb21lIG9mIHRoZXNlIGNh
biBtb3ZlIHRvIHRoZSBnZW5lcmFsIGNhc2Ugd2hlbiBkZS1pMzg2J2VkDQo=
--0-1557275625-968264149=:54419--


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.20.0009061904060.54419-500000>