SANE support for AIX added

Fred Hucht (fred@thp.Uni-Duisburg.DE)
Mon, 15 Dec 1997 15:11:45 +0100 (MEZ)

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.

---2040820479-1255864037-882195105=:81194
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hi SaneDevel,

we added support for user-level SCSI under AIX using the generic SCSI
driver gsc written by Matthew Jacob <mjacob@feral.com>. We tested SANE
under AIX 4.1.5 with a HP-ScanJet IIc, it works fine.
We have used configure as

% CC=cc configure --disable-shared

as shared libs failed to build. The latest version of GIMP does work,
too, but is a little bit unstable.

The appended context diffs are based on SANE 0.68.

One remark to the program tools/find-scanner:
The HP ScanJet failed to respond to the inquiry command
{INQUIRY, 0x00, 0x02, 0x00, 0xff, 0x00},
while the command
{INQUIRY, 0x00, 0x00, 0x00, 0xff, 0x00}
worked well.

We changed this, but we don't know if it still will work with other
scanners...

Have fun

Fred & Michael

Fred Hucht, Institute of Theoretical Physics, University of Duisburg, Germany
Email: fred@thp.Uni-Duisburg.DE http://WWW.thp.Uni-Duisburg.DE/
"Der Koerper der algebraischen Zahlen ist kein algebraischer Zahlkoerper"
(E.. Landau, Zahlentheorie (1927), Satz 718)

---2040820479-1255864037-882195105=:81194
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=diffs
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.A32.3.95.971215151145.81194B@hal6000.thp.Uni-Duisburg.DE>
Content-Description: Context diffs

KioqIC4vZnJvbnRlbmQvc2FuZWQuYy5vcmkJU3VuIE5vdiAyMyAwNTo1NDo1
OCAxOTk3DQotLS0gLi9mcm9udGVuZC9zYW5lZC5jCVRodSBEZWMgMTEgMTY6
MzQ6NTQgMTk5Nw0KKioqKioqKioqKioqKioqDQoqKiogMjAsMjUgKioqKg0K
LS0tIDIwLDI3IC0tLS0NCiAgICAgYmFja2VuZC4NCiAgICovDQogIA0KKyAj
aW5jbHVkZSA8bGFsbG9jYS5oPgkvKiBNVVNUIGNvbWUgZmlyc3QgZm9yIEFJ
WCEgKi8NCisgDQogICNpbmNsdWRlIDxzYW5lL2NvbmZpZy5oPg0KICAjaW5j
bHVkZSA8c2FuZS9zYW5laV9jb25maWcuaD4NCiAgDQoqKiogLi9mcm9udGVu
ZC9zY2FuaW1hZ2UuYy5vcmkJV2VkIERlYyAgMyAwODo0MTozNyAxOTk3DQot
LS0gLi9mcm9udGVuZC9zY2FuaW1hZ2UuYwlUaHUgRGVjIDExIDE2OjM0OjIy
IDE5OTcNCioqKioqKioqKioqKioqKg0KKioqIDE4LDI2ICoqKioNCiAgICAg
YWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhl
IEZyZWUgU29mdHdhcmUNCiAgICAgRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1h
c3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuICAqLw0KICANCi0g
I2luY2x1ZGUgPHNhbmUvY29uZmlnLmg+DQotIA0KICAjaW5jbHVkZSA8bGFs
bG9jYS5oPgkvKiBNVVNUIGNvbWUgZmlyc3QgZm9yIEFJWCEgKi8NCiAgDQog
ICNpbmNsdWRlIDxhc3NlcnQuaD4NCiAgI2luY2x1ZGUgPGdldG9wdC5oPg0K
LS0tIDE4LDI2IC0tLS0NCiAgICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07
IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCiAgICAgRm91
bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAy
MTM5LCBVU0EuICAqLw0KICANCiAgI2luY2x1ZGUgPGxhbGxvY2EuaD4JLyog
TVVTVCBjb21lIGZpcnN0IGZvciBBSVghICovDQorIA0KKyAjaW5jbHVkZSA8
c2FuZS9jb25maWcuaD4NCiAgDQogICNpbmNsdWRlIDxhc3NlcnQuaD4NCiAg
I2luY2x1ZGUgPGdldG9wdC5oPg0KKioqIC4vZnJvbnRlbmQvZ3RrZ2x1ZS5j
Lm9yaQlTdW4gTm92IDE2IDIzOjExOjQ0IDE5OTcNCi0tLSAuL2Zyb250ZW5k
L2d0a2dsdWUuYwlUaHUgRGVjIDExIDE2OjQxOjMyIDE5OTcNCioqKioqKioq
KioqKioqKg0KKioqIDE2LDI0ICoqKioNCiAgICAgYWxvbmcgd2l0aCB0aGlz
IHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUN
CiAgICAgRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlk
Z2UsIE1BIDAyMTM5LCBVU0EuICAqLw0KICANCi0gI2luY2x1ZGUgPHNhbmUv
Y29uZmlnLmg+DQotIA0KICAjaW5jbHVkZSA8bGFsbG9jYS5oPgkvKiBNVVNU
IGNvbWUgZmlyc3QgZm9yIEFJWCEgKi8NCiAgDQogICNpbmNsdWRlIDxhc3Nl
cnQuaD4NCiAgI2luY2x1ZGUgPGVycm5vLmg+DQotLS0gMTYsMjQgLS0tLQ0K
ICAgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0
byB0aGUgRnJlZSBTb2Z0d2FyZQ0KICAgICBGb3VuZGF0aW9uLCBJbmMuLCA2
NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4gICovDQog
IA0KICAjaW5jbHVkZSA8bGFsbG9jYS5oPgkvKiBNVVNUIGNvbWUgZmlyc3Qg
Zm9yIEFJWCEgKi8NCisgDQorICNpbmNsdWRlIDxzYW5lL2NvbmZpZy5oPg0K
ICANCiAgI2luY2x1ZGUgPGFzc2VydC5oPg0KICAjaW5jbHVkZSA8ZXJybm8u
aD4NCioqKiAuL2Zyb250ZW5kL3hzY2FuaW1hZ2UuYy5vcmkJU3VuIEp1bCAy
NyAyMzo0OTowNyAxOTk3DQotLS0gLi9mcm9udGVuZC94c2NhbmltYWdlLmMJ
RnJpIERlYyAxMiAxMTozMjoyOSAxOTk3DQoqKioqKioqKioqKioqKioNCioq
KiAxOSwyOCAqKioqDQogICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBp
ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQogICAgIEZvdW5k
YXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEz
OSwgVVNBLiAgKi8NCiAgDQotICNpbmNsdWRlIDxzYW5lL2NvbmZpZy5oPg0K
LSANCiAgI2luY2x1ZGUgPGxhbGxvY2EuaD4JLyogTVVTVCBjb21lIGZpcnN0
IGZvciBBSVghICovDQogIA0KICAjaW5jbHVkZSA8ZXJybm8uaD4NCiAgI2lu
Y2x1ZGUgPGZjbnRsLmg+DQogICNpbmNsdWRlIDxnZXRvcHQuaD4NCi0tLSAx
OSwzMCAtLS0tDQogICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBu
b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQogICAgIEZvdW5kYXRp
b24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwg
VVNBLiAgKi8NCiAgDQogICNpbmNsdWRlIDxsYWxsb2NhLmg+CS8qIE1VU1Qg
Y29tZSBmaXJzdCBmb3IgQUlYISAqLw0KICANCisgI2RlZmluZSBPVVRGSUxF
TkFNRSAic2Nhbi5wbm0iDQorIA0KKyAjaW5jbHVkZSA8c2FuZS9jb25maWcu
aD4NCisgDQogICNpbmNsdWRlIDxlcnJuby5oPg0KICAjaW5jbHVkZSA8ZmNu
dGwuaD4NCiAgI2luY2x1ZGUgPGdldG9wdC5oPg0KKioqKioqKioqKioqKioq
DQoqKiogNDE3LDQyMyAqKioqDQogICAgICAgIGNsb3NlIChmZCk7DQogICAg
ICB9DQogICAgaWYgKCFwcmVmZXJlbmNlcy5maWxlbmFtZSkNCiEgICAgIHBy
ZWZlcmVuY2VzLmZpbGVuYW1lID0gc3RyZHVwICgib3V0LnBubSIpOw0KICB9
DQogIA0KICBzdGF0aWMgdm9pZA0KLS0tIDQxOSw0MjUgLS0tLQ0KICAgICAg
ICBjbG9zZSAoZmQpOw0KICAgICAgfQ0KICAgIGlmICghcHJlZmVyZW5jZXMu
ZmlsZW5hbWUpDQohICAgICBwcmVmZXJlbmNlcy5maWxlbmFtZSA9IHN0cmR1
cCAoT1VURklMRU5BTUUpOw0KICB9DQogIA0KICBzdGF0aWMgdm9pZA0KKioq
KioqKioqKioqKioqDQoqKiogMTI5MSwxMjk3ICoqKioNCiAgICAgICAgZmls
ZW5hbWVbc2l6ZW9mIChmaWxlbmFtZSkgLSAxXSA9ICdcMCc7DQogICAgICB9
DQogICAgZWxzZQ0KISAgICAgc3RyY3B5IChmaWxlbmFtZSwgIm91dC5wbm0i
KTsNCiAgICBnc2dfZ2V0X2ZpbGVuYW1lICgiT3V0cHV0IEZpbGVuYW1lIiwg
ZmlsZW5hbWUsIHNpemVvZiAoZmlsZW5hbWUpLCBmaWxlbmFtZSk7DQogICAg
Z3RrX2VudHJ5X3NldF90ZXh0IChHVEtfRU5UUlkgKFNjYW5XaW4uZmlsZW5h
bWVfZW50cnkpLCBmaWxlbmFtZSk7DQogIA0KLS0tIDEyOTMsMTI5OSAtLS0t
DQogICAgICAgIGZpbGVuYW1lW3NpemVvZiAoZmlsZW5hbWUpIC0gMV0gPSAn
XDAnOw0KICAgICAgfQ0KICAgIGVsc2UNCiEgICAgIHN0cmNweSAoZmlsZW5h
bWUsIE9VVEZJTEVOQU1FKTsNCiAgICBnc2dfZ2V0X2ZpbGVuYW1lICgiT3V0
cHV0IEZpbGVuYW1lIiwgZmlsZW5hbWUsIHNpemVvZiAoZmlsZW5hbWUpLCBm
aWxlbmFtZSk7DQogICAgZ3RrX2VudHJ5X3NldF90ZXh0IChHVEtfRU5UUlkg
KFNjYW5XaW4uZmlsZW5hbWVfZW50cnkpLCBmaWxlbmFtZSk7DQogIA0KKioq
IC4vZG9jL3NhbmUtc2NzaS5tYW4ub3JpCVNhdCBPY3QgMjUgMjI6NTU6NTYg
MTk5Nw0KLS0tIC4vZG9jL3NhbmUtc2NzaS5tYW4JVGh1IERlYyAxMSAxNzoy
NTozNSAxOTk3DQoqKioqKioqKioqKioqKioNCioqKiAxNDMsMTQ5ICoqKioN
CiAgYW5kIHNvIG9uLg0KICAuU0ggRU5WSVJPTk1FTlQNCiAgLlRQDQohIC5C
IFNBTkVfU0FORUlfU0NTSQ0KICBJZiB0aGUgbGlicmFyeSB3YXMgY29tcGls
ZWQgd2l0aCBkZWJ1ZyBzdXBwb3J0IGVuYWJsZWQsIHRoaXMNCiAgZW52aXJv
bm1lbnQgdmFyaWFibGUgY29udHJvbHMgdGhlIGRlYnVnIGxldmVsIGZvciB0
aGUgZ2VuZXJpYyBTQ1NJIEkvTw0KICBzdWJzeXN0ZW0uICBFLmcuLCBhIHZh
bHVlIG9mIDEyOCByZXF1ZXN0cyBhbGwgZGVidWcgb3V0cHV0IHRvIGJlDQot
LS0gMTQzLDE0OSAtLS0tDQogIGFuZCBzbyBvbi4NCiAgLlNIIEVOVklST05N
RU5UDQogIC5UUA0KISAuQiBTQU5FX0RFQlVHX1NBTkVJX1NDU0kNCiAgSWYg
dGhlIGxpYnJhcnkgd2FzIGNvbXBpbGVkIHdpdGggZGVidWcgc3VwcG9ydCBl
bmFibGVkLCB0aGlzDQogIGVudmlyb25tZW50IHZhcmlhYmxlIGNvbnRyb2xz
IHRoZSBkZWJ1ZyBsZXZlbCBmb3IgdGhlIGdlbmVyaWMgU0NTSSBJL08NCiAg
c3Vic3lzdGVtLiAgRS5nLiwgYSB2YWx1ZSBvZiAxMjggcmVxdWVzdHMgYWxs
IGRlYnVnIG91dHB1dCB0byBiZQ0KKioqIC4vaW5jbHVkZS9zYW5lL2NvbmZp
Zy5oLmluLm9yaQlTdW4gTm92IDE2IDIxOjAyOjE1IDE5OTcNCi0tLSAuL2lu
Y2x1ZGUvc2FuZS9jb25maWcuaC5pbglUaHUgRGVjIDExIDE1OjUwOjQ1IDE5
OTcNCioqKioqKioqKioqKioqKg0KKioqIDI0NCwyNDkgKioqKg0KLS0tIDI0
NCwyNTIgLS0tLQ0KICAvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxpby9j
YW0vY2FtLmg+IGhlYWRlciBmaWxlLiAqLw0KICAjdW5kZWYgSEFWRV9JT19D
QU1fQ0FNX0gNCiAgDQorIC8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPGdz
Y2Rkcy5oPiBoZWFkZXIgZmlsZS4gKi8NCisgI3VuZGVmIEhBVkVfR1NDRERT
X0gNCisgDQogIC8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPG9zMi5oPiBo
ZWFkZXIgZmlsZS4gICovDQogICN1bmRlZiBIQVZFX09TMl9IDQogIA0KKioq
IC4vaW5jbHVkZS9sYWxsb2NhLmgub3JpCVN1biBOb3YgMTYgMjE6MDA6MjIg
MTk5Nw0KLS0tIC4vaW5jbHVkZS9sYWxsb2NhLmgJVGh1IERlYyAxMSAxNjoy
NjoyMSAxOTk3DQoqKioqKioqKioqKioqKioNCioqKiAzMSwzNyAqKioqDQog
ICMgIGluY2x1ZGUgPGFsbG9jYS5oPg0KICAjIGVsc2UNCiAgIyAgaWZkZWYg
X0FJWA0KISAgI3ByYWdtYSBhbGxvY2ENCiAgIyAgZWxzZQ0KICAjICAgaWZu
ZGVmIGFsbG9jYSAvKiBwcmVkZWZpbmVkIGJ5IEhQIGNjICtPbGliY2FsbHMg
Ki8NCiAgIyAgICBpZiBfX1NURENfXw0KLS0tIDMxLDM3IC0tLS0NCiAgIyAg
aW5jbHVkZSA8YWxsb2NhLmg+DQogICMgZWxzZQ0KICAjICBpZmRlZiBfQUlY
DQohICNwcmFnbWEgYWxsb2NhDQogICMgIGVsc2UNCiAgIyAgIGlmbmRlZiBh
bGxvY2EgLyogcHJlZGVmaW5lZCBieSBIUCBjYyArT2xpYmNhbGxzICovDQog
ICMgICAgaWYgX19TVERDX18NCioqKiAuL2JhY2tlbmQvcWNhbS5jLm9yaQlG
cmkgTm92ICA3IDA2OjEyOjUyIDE5OTcNCi0tLSAuL2JhY2tlbmQvcWNhbS5j
CVRodSBEZWMgMTEgMTY6NDE6MzIgMTk5Nw0KKioqKioqKioqKioqKioqDQoq
KiogNjYsNzQgKioqKg0KICAgICBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJ
U0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04NCiAg
ICAgV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFM
SU5HUyBJTiBUSEUgU09GVFdBUkUuICAqLw0KICANCi0gI2luY2x1ZGUgPHNh
bmUvY29uZmlnLmg+DQotIA0KICAjaW5jbHVkZSA8bGFsbG9jYS5oPgkvKiBN
VVNUIGNvbWUgZmlyc3QgZm9yIEFJWCEgKi8NCiAgDQogICNpbmNsdWRlIDxh
c3NlcnQuaD4NCiAgI2luY2x1ZGUgPGN0eXBlLmg+DQotLS0gNjYsNzQgLS0t
LQ0KICAgICBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcg
RlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04NCiAgICAgV0lUSCBUSEUg
U09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUg
U09GVFdBUkUuICAqLw0KICANCiAgI2luY2x1ZGUgPGxhbGxvY2EuaD4JLyog
TVVTVCBjb21lIGZpcnN0IGZvciBBSVghICovDQorIA0KKyAjaW5jbHVkZSA8
c2FuZS9jb25maWcuaD4NCiAgDQogICNpbmNsdWRlIDxhc3NlcnQuaD4NCiAg
I2luY2x1ZGUgPGN0eXBlLmg+DQoqKiogLi9iYWNrZW5kL2RsbC5jLm9yaQlX
ZWQgRGVjICAzIDA3OjUxOjQxIDE5OTcNCi0tLSAuL2JhY2tlbmQvZGxsLmMJ
VGh1IERlYyAxMSAxNjo0MDoxMCAxOTk3DQoqKioqKioqKioqKioqKioNCioq
KiA0Miw1MCAqKioqDQogICAgIGFsbG93cyBtYW5hZ2luZyBhbiBhcmJpdHJh
cnkgbnVtYmVyIG9mIFNBTkUgYmFja2VuZHMgYnkgdXNpbmcNCiAgICAgZHlu
YW1pYyBsaW5raW5nIHRvIGxvYWQgYmFja2VuZHMgb24gZGVtYW5kLiAgKi8N
CiAgDQotICNpbmNsdWRlIDxzYW5lL2NvbmZpZy5oPg0KLSANCiAgI2luY2x1
ZGUgPGxhbGxvY2EuaD4JLyogTVVTVCBjb21lIGZpcnN0IGZvciBBSVghICov
DQogIA0KICAjaW5jbHVkZSA8ZXJybm8uaD4NCiAgI2luY2x1ZGUgPGxpbWl0
cy5oPg0KLS0tIDQyLDUwIC0tLS0NCiAgICAgYWxsb3dzIG1hbmFnaW5nIGFu
IGFyYml0cmFyeSBudW1iZXIgb2YgU0FORSBiYWNrZW5kcyBieSB1c2luZw0K
ICAgICBkeW5hbWljIGxpbmtpbmcgdG8gbG9hZCBiYWNrZW5kcyBvbiBkZW1h
bmQuICAqLw0KICANCiAgI2luY2x1ZGUgPGxhbGxvY2EuaD4JLyogTVVTVCBj
b21lIGZpcnN0IGZvciBBSVghICovDQorIA0KKyAjaW5jbHVkZSA8c2FuZS9j
b25maWcuaD4NCiAgDQogICNpbmNsdWRlIDxlcnJuby5oPg0KICAjaW5jbHVk
ZSA8bGltaXRzLmg+DQoqKiogLi9iYWNrZW5kL2Vwc29uLmMub3JpCVNhdCBP
Y3QgMTEgMTA6MTI6MzYgMTk5Nw0KLS0tIC4vYmFja2VuZC9lcHNvbi5jCVRo
dSBEZWMgMTEgMTY6NDE6MzMgMTk5Nw0KKioqKioqKioqKioqKioqDQoqKiog
MzksNDkgKioqKg0KICAgICB3aGV0aGVyIHRvIHBlcm1pdCB0aGlzIGV4Y2Vw
dGlvbiB0byBhcHBseSB0byB5b3VyIG1vZGlmaWNhdGlvbnMuDQogICAgIElm
IHlvdSBkbyBub3Qgd2lzaCB0aGF0LCBkZWxldGUgdGhpcyBleGNlcHRpb24g
bm90aWNlLiAgKi8NCiAgDQogICNpZmRlZiBIQVZFX0NPTkZJR19IDQogICMg
aW5jbHVkZSA8c2FuZS9jb25maWcuaD4NCiAgI2VuZGlmDQotIA0KLSAjaW5j
bHVkZSA8bGFsbG9jYS5oPg0KICANCiAgI2luY2x1ZGUgPHN0ZGlvLmg+DQog
ICNpZmRlZiBTVERDX0hFQURFUlMNCi0tLSAzOSw0OSAtLS0tDQogICAgIHdo
ZXRoZXIgdG8gcGVybWl0IHRoaXMgZXhjZXB0aW9uIHRvIGFwcGx5IHRvIHlv
dXIgbW9kaWZpY2F0aW9ucy4NCiAgICAgSWYgeW91IGRvIG5vdCB3aXNoIHRo
YXQsIGRlbGV0ZSB0aGlzIGV4Y2VwdGlvbiBub3RpY2UuICAqLw0KICANCisg
I2luY2x1ZGUgPGxhbGxvY2EuaD4gLyogTVVTVCBjb21lIGZpcnN0IGZvciBB
SVghICovDQorIA0KICAjaWZkZWYgSEFWRV9DT05GSUdfSA0KICAjIGluY2x1
ZGUgPHNhbmUvY29uZmlnLmg+DQogICNlbmRpZg0KICANCiAgI2luY2x1ZGUg
PHN0ZGlvLmg+DQogICNpZmRlZiBTVERDX0hFQURFUlMNCioqKiAuL2JhY2tl
bmQvdW1heC5jLm9yaQlTdW4gTm92IDE2IDE5OjA3OjE4IDE5OTcNCi0tLSAu
L2JhY2tlbmQvdW1heC5jCVRodSBEZWMgMTEgMTY6NDk6MzggMTk5Nw0KKioq
KioqKioqKioqKioqDQoqKiogNzIsNzcgKioqKg0KLS0tIDcyLDc5IC0tLS0N
CiAgDQogIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8NCiAg
DQorICNpbmNsdWRlIDxsYWxsb2NhLmg+CS8qIE1VU1QgY29tZSBmaXJzdCBm
b3IgQUlYISAqLw0KKyANCiAgI2RlZmluZSBVTUFYX1RPX1NBTkUNCiAgDQog
ICNkZWZpbmUgQkFDS0VORF9OQU1FIHVtYXgNCioqKiAuL2JhY2tlbmQvbmV0
LmMub3JpCVNhdCBPY3QgMjUgMDQ6NDQ6MjYgMTk5Nw0KLS0tIC4vYmFja2Vu
ZC9uZXQuYwlUaHUgRGVjIDExIDE2OjUwOjQyIDE5OTcNCioqKioqKioqKioq
KioqKg0KKioqIDQwLDQ1ICoqKioNCi0tLSA0MCw0NyAtLS0tDQogIA0KICAg
ICBUaGlzIGZpbGUgaW1wbGVtZW50cyBhIFNBTkUgbmV0d29yay1iYXNlZCBt
ZXRhIGJhY2tlbmQuICAqLw0KICANCisgI2luY2x1ZGUgPGxhbGxvY2EuaD4J
LyogTVVTVCBjb21lIGZpcnN0IGZvciBBSVghICovDQorIA0KICAjaW5jbHVk
ZSA8c2FuZS9jb25maWcuaD4NCiAgDQogICNpbmNsdWRlIDxlcnJuby5oPg0K
KioqIC4vc2FuZWkvc2FuZWlfc2NzaS5jLm9yaQlTdW4gTm92IDE2IDIxOjE1
OjAwIDE5OTcNCi0tLSAuL3NhbmVpL3NhbmVpX3Njc2kuYwlNb24gRGVjIDE1
IDE0OjU2OjA4IDE5OTcNCioqKioqKioqKioqKioqKg0KKioqIDQwLDQ5ICoq
KioNCiAgDQogICAgIFRoaXMgZmlsZSBwcm92aWRlcyBhIGdlbmVyaWMgU0NT
SSBpbnRlcmZhY2UuICAqLw0KICANCi0gI2luY2x1ZGUgPHNhbmUvY29uZmln
Lmg+DQotIA0KICAjaW5jbHVkZSA8bGFsbG9jYS5oPgkvKiBNVVNUIGNvbWUg
Zmlyc3QgZm9yIEFJWCEgKi8NCiAgDQogICNpbmNsdWRlIDxhc3NlcnQuaD4N
CiAgI2luY2x1ZGUgPGVycm5vLmg+DQogICNpbmNsdWRlIDxmY250bC5oPg0K
LS0tIDQwLDQ5IC0tLS0NCiAgDQogICAgIFRoaXMgZmlsZSBwcm92aWRlcyBh
IGdlbmVyaWMgU0NTSSBpbnRlcmZhY2UuICAqLw0KICANCiAgI2luY2x1ZGUg
PGxhbGxvY2EuaD4JLyogTVVTVCBjb21lIGZpcnN0IGZvciBBSVghICovDQog
IA0KKyAjaW5jbHVkZSA8c2FuZS9jb25maWcuaD4NCisgDQogICNpbmNsdWRl
IDxhc3NlcnQuaD4NCiAgI2luY2x1ZGUgPGVycm5vLmg+DQogICNpbmNsdWRl
IDxmY250bC5oPg0KKioqKioqKioqKioqKioqDQoqKiogNjUsNzAgKioqKg0K
LS0tIDY1LDcxIC0tLS0NCiAgI2RlZmluZSBJUklYX0lOVEVSRkFDRQkJNw0K
ICAjZGVmaW5lIFNPTEFSSVNfSU5URVJGQUNFCTgNCiAgI2RlZmluZSBPUzJf
SU5URVJGQUNFCQk5DQorICNkZWZpbmUgQUlYX0dTQ19JTlRFUkZBQ0UJMTAN
CiAgDQogICNpZmRlZiBIQVZFX1NDU0lfU0dfSA0KICAjIGRlZmluZSBVU0Ug
TElOVVhfSU5URVJGQUNFDQoqKioqKioqKioqKioqKioNCioqKiAxMDcsMTEz
ICoqKioNCiAgIwkgaWZkZWYgU0NUTF9SRUFEDQogICMJICBkZWZpbmUgVVNF
IEhQVVhfSU5URVJGQUNFDQogICMJIGVsc2UNCiEgCSAgLyogVGhpcyBoYXBw
ZW5zIGZvciBBSVggYW5kIHBvc3NpYmx5IG90aGVyIHBsYXRmb3Jtcy4uLiAq
Lw0KICAjCSBlbmRpZg0KICAjICAgICAgIGVsc2UNCiAgIyAgICAgICAgaWZk
ZWYgSEFWRV9PUzJfSA0KLS0tIDEwOCwxMTkgLS0tLQ0KICAjCSBpZmRlZiBT
Q1RMX1JFQUQNCiAgIwkgIGRlZmluZSBVU0UgSFBVWF9JTlRFUkZBQ0UNCiAg
IwkgZWxzZQ0KISAjICAgICAgICAgaWZkZWYgSEFWRV9HU0NERFNfSA0KISAj
ICAgICAgICAgIGRlZmluZSBVU0UgQUlYX0dTQ19JTlRFUkZBQ0UNCiEgIyAg
ICAgICAgICBpbmNsdWRlIDxnc2NkZHMuaD4NCiEgIyAgICAgICAgIGVsc2UN
CiEgLyogVGhpcyBoYXBwZW5zIGZvciBBSVggd2l0aG91dCBnc2MgYW5kIHBv
c3NpYmx5IG90aGVyIHBsYXRmb3Jtcy4uLiAqLw0KISAjICAgICAgICAgZW5k
aWYNCiAgIwkgZW5kaWYNCiAgIyAgICAgICBlbHNlDQogICMgICAgICAgIGlm
ZGVmIEhBVkVfT1MyX0gNCioqKioqKioqKioqKioqKg0KKioqIDE1MSwxNTYg
KioqKg0KLS0tIDE1NywxNjQgLS0tLQ0KICBpbnQgc2FuZWlfc2NzaV9tYXhf
cmVxdWVzdF9zaXplID0gOCAqIDEwMjQgKiAxMDI0Ow0KICAjIGVsaWYgVVNF
ID09IE9TMl9JTlRFUkZBQ0UNCiAgaW50IHNhbmVpX3Njc2lfbWF4X3JlcXVl
c3Rfc2l6ZSA9ICAzMiAqIDEwMjQ7IC8qIE9TLzIgbGltaXRlZCB0byA2NEsg
Ki8NCisgIyBlbGlmIFVTRSA9PSBBSVhfR1NDX0lOVEVSRkFDRQ0KKyBpbnQg
c2FuZWlfc2NzaV9tYXhfcmVxdWVzdF9zaXplID0gIDMyICogMTAyNDsNCiAg
IyBlbHNlDQogIGludCBzYW5laV9zY3NpX21heF9yZXF1ZXN0X3NpemUgPSAx
MjAgKiAxMDI0OyAvKiB3b3JrcyBhdCBsZWFzdCBmb3IgT3BlblN0ZXAgKi8N
CiAgIyBlbmRpZg0KKioqKioqKioqKioqKioqDQoqKiogMTEzNSwxMTQwICoq
KioNCi0tLSAxMTQzLDEyMDMgLS0tLQ0KICAgIHJldHVybiBTQU5FX1NUQVRV
U19HT09EOw0KICB9DQogICNlbmRpZiAvKiBVU0UgPT0gSVJJWF9JTlRFUkZB
Q0UgKi8NCisgDQorICNpZiBVU0UgPT0gQUlYX0dTQ19JTlRFUkZBQ0UNCisg
U0FORV9TdGF0dXMNCisgc2FuZWlfc2NzaV9jbWQgKGludCBmZCwgY29uc3Qg
dm9pZCAqIHNyYywgc2l6ZV90IHNyY19zaXplLA0KKyAJCXZvaWQgKiBkc3Qs
IHNpemVfdCAqIGRzdF9zaXplKQ0KKyB7DQorICAgc2NtZF90IHNjbWQ7DQor
ICAgc2l6ZV90IGNkYl9zaXplOw0KKyAgIGNoYXIgc2Vuc2VfYnVmWzMyXTsN
CisgICBjaGFyIHN0YXR1czsNCisgICANCisgICBjZGJfc2l6ZSA9IENEQl9T
SVpFICgqKHVfY2hhciAqKSBzcmMpOw0KKyANCisgICBtZW1zZXQgKCZzY21k
LCAwLCBzaXplb2YgKHNjbWQpKTsNCisgICBpZiAoZHN0X3NpemUgJiYgKmRz
dF9zaXplKSB7DQorICAgICBhc3NlcnQgKGNkYl9zaXplID09IHNyY19zaXpl
KTsNCisgICAgIHNjbWQucncgICAgICAgPSAxOw0KKyAgICAgc2NtZC5kYXRh
X2J1ZiA9IGRzdDsNCisgICAgIHNjbWQuZGF0YWxlbiAgPSAqZHN0X3NpemU7
DQorICAgfSBlbHNlIHsNCisgICAgIGFzc2VydCAoY2RiX3NpemUgPD0gc3Jj
X3NpemUpOw0KKyAgICAgc2NtZC5kYXRhX2J1ZiA9IChjaGFyICopIHNyYyAr
IGNkYl9zaXplOw0KKyAgICAgc2NtZC5kYXRhbGVuICA9IHNyY19zaXplIC0g
Y2RiX3NpemU7DQorICAgfQ0KKyAgIHNjbWQuY2RiICAgICAgID0gKGNoYXIq
KSBzcmM7DQorICAgc2NtZC5jZGJsZW4gICAgPSBjZGJfc2l6ZTsNCisgICBz
Y21kLnRpbWV2YWwgICA9IDYwOwkvKiAxIG1pbnV0ZSB0aW1lb3V0ICovDQor
ICAgc2NtZC5zZW5zZV9idWYgPSBzZW5zZV9idWY7DQorICAgc2NtZC5zZW5z
ZWxlbiAgPSBzaXplb2Yoc2Vuc2VfYnVmKTsNCisgICBzY21kLnN0YXR1c3Ag
ICA9ICZzdGF0dXM7DQorICAgREJHKDEsICJzYW5laV9zY3NpX2NtZDogc2Nt
ZC5ydyA9ICVkLCBzY21kLmNkYmxlbiA9ICVkLCAiLA0KKyAgICAgICBzY21k
LnJ3LCBzY21kLmNkYmxlbik7DQorICAgREJHKDEsICJzY21kLmNkYiA9IHsw
eCV4LDB4JXgsMHgleCwweCV4LDB4JXgsMHgleCwgLi4ufVxuIiwNCisgICAg
ICAgc2NtZC5jZGJbMF0sc2NtZC5jZGJbMV0sc2NtZC5jZGJbMl0sDQorICAg
ICAgIHNjbWQuY2RiWzNdLHNjbWQuY2RiWzRdLHNjbWQuY2RiWzVdKTsNCisg
ICBpZiAoaW9jdGwoZmQsIEdTQ19DTUQsICZzY21kKSA8IDApIHsNCisgICAg
IERCRygxLCAic2FuZWlfc2NzaV9jbWQ6IGlvY3RsKFNJT0NfSU8pIGZhaWxl
ZDogJXNcbiIsDQorIAlzdHJlcnJvciAoZXJybm8pKTsNCisgICAgIHJldHVy
biBTQU5FX1NUQVRVU19JT19FUlJPUjsNCisgICB9DQorICAgaWYgKCpzY21k
LnN0YXR1c3ApIA0KKyAgICAgREJHKDEsICJzYW5laV9zY3NpX2NtZDogU0NT
SSBjb21wbGV0ZWQgd2l0aCBzdGF0dXM9JWRcbiIsICpzY21kLnN0YXR1c3Ap
Ow0KKyAgICAgICANCisgICBEQkcoMSwgInNhbmVpX3Njc2lfY21kOiBkc3Qg
PSB7MHgleCwweCV4LDB4JXgsMHgleCwweCV4LDB4JXgsIC4uLn1cbiIsDQor
ICAgICAgICooKGNoYXIgKilkc3QgKyAwKSwgKigoY2hhciAqKWRzdCArIDEp
LCAqKChjaGFyICopZHN0ICsgMiksIA0KKyAgICAgICAqKChjaGFyICopZHN0
ICsgMyksICooKGNoYXIgKilkc3QgKyA0KSwgKigoY2hhciAqKWRzdCArIDUp
KTsNCisgICANCisgICBpZiAoZHN0X3NpemUpDQorICAgICAqZHN0X3NpemUg
PSBzY21kLmRhdGFsZW47DQorICAgDQorICAgaWYgKHNjbWQuc2Vuc2VsZW4g
PiAwICYmIChzY21kLnNlbnNlX2J1ZlswXSAmIDB4ODApICYmIGZkX2luZm9b
ZmRdLnNlbnNlX2hhbmRsZXIpDQorICAgICByZXR1cm4gKCpmZF9pbmZvW2Zk
XS5zZW5zZV9oYW5kbGVyKSAoZmQsICh1bnNpZ25lZCBjaGFyICopc2NtZC5z
ZW5zZV9idWYpOw0KKyAgIHJldHVybiBTQU5FX1NUQVRVU19HT09EOw0KKyB9
DQorICNlbmRpZiAvKiBVU0UgPT0gQUlYX0dTQ19JTlRFUkZBQ0UgKi8NCiAg
DQogICNpZm5kZWYgV0VfSEFWRV9BU1lOQ19TQ1NJDQogIA0KKioqIC4vc2Fu
ZWkvc2FuZWlfY29uZmlnLmMub3JpCVR1ZSBOb3YgMTEgMDU6MDQ6MDAgMTk5
Nw0KLS0tIC4vc2FuZWkvc2FuZWlfY29uZmlnLmMJVGh1IERlYyAxMSAxNjox
MDo0OCAxOTk3DQoqKioqKioqKioqKioqKioNCioqKiAxMDQsMTEwICoqKioN
CiAgICAgIH0NCiAgDQogICAgY29weSA9IHN0cmR1cCAoZGlyX2xpc3QpOw0K
ISAgIGZvciAobmV4dCA9IGNvcHk7IChkaXIgPSBzdHJzZXAgKCZuZXh0LCBE
SVJfU0VQKSkgIT0gMDsgKQ0KICAgICAgew0KICAgICAgICBzbnByaW50ZiAo
cmVzdWx0LCBzaXplb2YgKHJlc3VsdCksICIlcyVjJXMiLCBkaXIsIFBBVEhf
U0VQLCBmaWxlbmFtZSk7DQogICAgICAgIERCRyg0LCAic2FuZWlfY29uZmln
X29wZW46IGF0dGVtcHRpbmcgdG8gb3BlbiBgJXMnXG4iLCByZXN1bHQpOw0K
LS0tIDEwNCwxMTAgLS0tLQ0KICAgICAgfQ0KICANCiAgICBjb3B5ID0gc3Ry
ZHVwIChkaXJfbGlzdCk7DQohICAgZm9yIChuZXh0ID0gY29weTsgKGRpciA9
IChjaGFyKilzdHJzZXAgKCZuZXh0LCBESVJfU0VQKSkgIT0gMDsgKQ0KICAg
ICAgew0KICAgICAgICBzbnByaW50ZiAocmVzdWx0LCBzaXplb2YgKHJlc3Vs
dCksICIlcyVjJXMiLCBkaXIsIFBBVEhfU0VQLCBmaWxlbmFtZSk7DQogICAg
ICAgIERCRyg0LCAic2FuZWlfY29uZmlnX29wZW46IGF0dGVtcHRpbmcgdG8g
b3BlbiBgJXMnXG4iLCByZXN1bHQpOw0KKioqIC4vc2FuZWkvc2FuZWlfbG9h
ZF92YWx1ZXMuYy5vcmkJU3VuIE5vdiAxNiAyMToxMzoxMCAxOTk3DQotLS0g
Li9zYW5laS9zYW5laV9sb2FkX3ZhbHVlcy5jCVRodSBEZWMgMTEgMTY6NDE6
MzMgMTk5Nw0KKioqKioqKioqKioqKioqDQoqKiogNTUsNjMgKioqKg0KICAg
ICBzYW5lIGJhY2tlbmQgd291bGQgZG8gdGhpcyBhbmQgc2luY2UgdGhpcyBp
cyBTQU5FLCB3ZSBqdXN0IHByb3ZlZA0KICAgICB0aGF0IHRoaXMgYWxnb3Jp
dGhtIHdvcmtzIHBlcmZlY3RseS4gICovDQogIA0KLSAjaW5jbHVkZSA8c2Fu
ZS9jb25maWcuaD4NCi0gDQogICNpbmNsdWRlIDxsYWxsb2NhLmg+CS8qIE1V
U1QgY29tZSBmaXJzdCBmb3IgQUlYISAqLw0KICANCiAgI2luY2x1ZGUgPHN0
ZGxpYi5oPg0KICAjaW5jbHVkZSA8c3RyaW5nLmg+DQotLS0gNTUsNjMgLS0t
LQ0KICAgICBzYW5lIGJhY2tlbmQgd291bGQgZG8gdGhpcyBhbmQgc2luY2Ug
dGhpcyBpcyBTQU5FLCB3ZSBqdXN0IHByb3ZlZA0KICAgICB0aGF0IHRoaXMg
YWxnb3JpdGhtIHdvcmtzIHBlcmZlY3RseS4gICovDQogIA0KICAjaW5jbHVk
ZSA8bGFsbG9jYS5oPgkvKiBNVVNUIGNvbWUgZmlyc3QgZm9yIEFJWCEgKi8N
CisgDQorICNpbmNsdWRlIDxzYW5lL2NvbmZpZy5oPg0KICANCiAgI2luY2x1
ZGUgPHN0ZGxpYi5oPg0KICAjaW5jbHVkZSA8c3RyaW5nLmg+DQoqKiogLi90
b29scy9maW5kLXNjYW5uZXIuYy5vcmkJVGh1IE5vdiAyNyAwODowMjo1NSAx
OTk3DQotLS0gLi90b29scy9maW5kLXNjYW5uZXIuYwlUaHUgRGVjIDExIDE5
OjU3OjE3IDE5OTcNCioqKioqKioqKioqKioqKg0KKioqIDMxLDM2ICoqKioN
Ci0tLSAzMSwzOCAtLS0tDQogIA0KICBzdGF0aWMgY29uc3QgY2hhciAqcHJv
Z19uYW1lOw0KICANCisgc3RhdGljIGludCB2ZXJib3NlOw0KKyANCiAgdHlw
ZWRlZiBzdHJ1Y3QNCiAgICB7DQogICAgICB1bnNpZ25lZCBjaGFyICpjbWQ7
DQoqKioqKioqKioqKioqKioNCioqKiA0MCw0NiAqKioqDQogIA0KICAjZGVm
aW5lIElOUVVJUlkJCQkJCTB4MTINCiAgI2RlZmluZSBzZXRfaW5xdWlyeV9y
ZXR1cm5fc2l6ZShpY2IsdmFsKQlpY2JbMHgwNF09dmFsDQohICNkZWZpbmUg
SU5fcGVyaXBoX2RldnR5cGVfY3B1CQkJMHgwMQ0KICAjZGVmaW5lIElOX3Bl
cmlwaF9kZXZ0eXBlX3NjYW5uZXIJCTB4MDYNCiAgI2RlZmluZSBnZXRfaW5x
dWlyeV92ZW5kb3IoaW4sIGJ1ZikJCXN0cm5jcHkoYnVmLCBpbiArIDB4MDgs
IDB4MDgpDQogICNkZWZpbmUgZ2V0X2lucXVpcnlfcHJvZHVjdChpbiwgYnVm
KQkJc3RybmNweShidWYsIGluICsgMHgxMCwgMHgwMTApDQotLS0gNDIsNDgg
LS0tLQ0KICANCiAgI2RlZmluZSBJTlFVSVJZCQkJCQkweDEyDQogICNkZWZp
bmUgc2V0X2lucXVpcnlfcmV0dXJuX3NpemUoaWNiLHZhbCkJaWNiWzB4MDRd
PXZhbA0KISAjZGVmaW5lIElOX3BlcmlwaF9kZXZ0eXBlX2NwdQkJCTB4MDMN
CiAgI2RlZmluZSBJTl9wZXJpcGhfZGV2dHlwZV9zY2FubmVyCQkweDA2DQog
ICNkZWZpbmUgZ2V0X2lucXVpcnlfdmVuZG9yKGluLCBidWYpCQlzdHJuY3B5
KGJ1ZiwgaW4gKyAweDA4LCAweDA4KQ0KICAjZGVmaW5lIGdldF9pbnF1aXJ5
X3Byb2R1Y3QoaW4sIGJ1ZikJCXN0cm5jcHkoYnVmLCBpbiArIDB4MTAsIDB4
MDEwKQ0KKioqKioqKioqKioqKioqDQoqKiogNTEsNTcgKioqKg0KICANCiAg
c3RhdGljIHVuc2lnbmVkIGNoYXIgaW5xdWlyeUNbXSA9DQogICAgew0KISAg
ICAgSU5RVUlSWSwgMHgwMCwgMHgwMiwgMHgwMCwgMHhmZiwgMHgwMA0KICAg
IH07DQogIHN0YXRpYyBzY3NpYmxrIGlucXVpcnkgPQ0KICAgIHsNCi0tLSA1
Myw2MCAtLS0tDQogIA0KICBzdGF0aWMgdW5zaWduZWQgY2hhciBpbnF1aXJ5
Q1tdID0NCiAgICB7DQohIC8qICAgIElOUVVJUlksIDB4MDAsIDB4MDIsIDB4
MDAsIDB4ZmYsIDB4MDAgKi8NCiEgICAgICAgSU5RVUlSWSwgMHgwMCwgMHgw
MCwgMHgwMCwgMHhmZiwgMHgwMCANCiAgICB9Ow0KICBzdGF0aWMgc2NzaWJs
ayBpbnF1aXJ5ID0NCiAgICB7DQoqKioqKioqKioqKioqKioNCioqKiA5Niwx
MDggKioqKg0KICAgIHVuc2lnbmVkIGNoYXIgcHJvZHVjdFsxN107DQogICAg
dW5zaWduZWQgY2hhciB2ZXJzaW9uWzVdOw0KICAgIHVuc2lnbmVkIGNoYXIg
KnBwOw0KICANCiAgICBzY2FubmVyX2RvX2lucXVpcnkgKGJ1ZmZlciwgc2Zk
KTsJLyogZ2V0IGlucXVpcnkgKi8NCiAgICBpZiAoZ2V0X2lucXVpcnlfcGVy
aXBoX2RldnR5cGUgKGJ1ZmZlcikgIT0gSU5fcGVyaXBoX2RldnR5cGVfc2Nh
bm5lcg0KISAgICAgICAvKiBvbGQgSFAgc2Nhbm5lcnMgdXNlIHRoZSBDUFUg
aWQuLi4gKi8NCiAgICAgICAgJiYgZ2V0X2lucXVpcnlfcGVyaXBoX2RldnR5
cGUgKGJ1ZmZlcikgIT0gSU5fcGVyaXBoX2RldnR5cGVfY3B1KQ0KICAgICAg
cmV0dXJuOwkJCQkvKiBubywgY29udGludWUgc2VhcmNoaW5nICovDQohIA0K
ICAgIGdldF9pbnF1aXJ5X3ZlbmRvciAoKGNoYXIgKikgYnVmZmVyLCB2ZW5k
b3IpOw0KICAgIGdldF9pbnF1aXJ5X3Byb2R1Y3QgKChjaGFyICopIGJ1ZmZl
ciwgcHJvZHVjdCk7DQogICAgZ2V0X2lucXVpcnlfdmVyc2lvbiAoKGNoYXIg
KikgYnVmZmVyLCB2ZXJzaW9uKTsNCi0tLSA5OSwxMjIgLS0tLQ0KICAgIHVu
c2lnbmVkIGNoYXIgcHJvZHVjdFsxN107DQogICAgdW5zaWduZWQgY2hhciB2
ZXJzaW9uWzVdOw0KICAgIHVuc2lnbmVkIGNoYXIgKnBwOw0KKyAgIGNoYXIg
KmRldnR5cGVzW10gPSB7IkRpc2siLCJUYXBlIiwiUHJpbnRlciIsIlByb2Nl
c3NvciIsIkNELVdyaXRlciIsDQorIAkJICAgICAiQ0QtRHJpdmUiLCJTY2Fu
bmVyIiwiT3B0aWNhbC1Ecml2ZSIsIkp1a2Vib3giLA0KKyAJCSAgICAgIkNv
bW11bmljYXRvciIsInVua25vd24ifTsNCiAgDQogICAgc2Nhbm5lcl9kb19p
bnF1aXJ5IChidWZmZXIsIHNmZCk7CS8qIGdldCBpbnF1aXJ5ICovDQorICAg
aWYgKHZlcmJvc2UpIHsNCisgICAgIGludCBkZXZ0eXBlID0gZ2V0X2lucXVp
cnlfcGVyaXBoX2RldnR5cGUgKGJ1ZmZlcik7DQorICAgICBwcmludGYgKCIl
czogZGV2dHlwZSA9IDB4JTAyeCAoJXMpXG4iLA0KKyAJICAgIHByb2dfbmFt
ZSwNCisgCSAgICBkZXZ0eXBlLA0KKyAJICAgIGRldnR5cGVzW2RldnR5cGUg
PD0gMTAgPyBkZXZ0eXBlIDogMTBdKTsNCisgICB9DQorICAgDQogICAgaWYg
KGdldF9pbnF1aXJ5X3BlcmlwaF9kZXZ0eXBlIChidWZmZXIpICE9IElOX3Bl
cmlwaF9kZXZ0eXBlX3NjYW5uZXINCiEgICAgICAgLyogb2xkIEhQIHNjYW5u
ZXJzIHVzZSB0aGUgQ1BVIGlkIC4uLiAqLw0KICAgICAgICAmJiBnZXRfaW5x
dWlyeV9wZXJpcGhfZGV2dHlwZSAoYnVmZmVyKSAhPSBJTl9wZXJpcGhfZGV2
dHlwZV9jcHUpDQogICAgICByZXR1cm47CQkJCS8qIG5vLCBjb250aW51ZSBz
ZWFyY2hpbmcgKi8NCiEgICANCiAgICBnZXRfaW5xdWlyeV92ZW5kb3IgKChj
aGFyICopIGJ1ZmZlciwgdmVuZG9yKTsNCiAgICBnZXRfaW5xdWlyeV9wcm9k
dWN0ICgoY2hhciAqKSBidWZmZXIsIHByb2R1Y3QpOw0KICAgIGdldF9pbnF1
aXJ5X3ZlcnNpb24gKChjaGFyICopIGJ1ZmZlciwgdmVyc2lvbik7DQoqKioq
KioqKioqKioqKioNCioqKiAxMzMsMTM5ICoqKioNCiAgew0KICAgIHVuc2ln
bmVkIGNoYXIgYnVmZmVyWzE2Mzg0XTsNCiAgICBjaGFyICoqZGV2X2xpc3Qs
ICpkZXZfbmFtZSwgKiphcDsNCiEgICBpbnQgc2ZkLCB2ZXJib3NlID0gMDsN
CiAgDQogICAgcHJvZ19uYW1lID0gc3RycmNociAoYXJndlswXSwgJy8nKTsN
CiAgICBpZiAocHJvZ19uYW1lKQ0KLS0tIDE0NywxNTMgLS0tLQ0KICB7DQog
ICAgdW5zaWduZWQgY2hhciBidWZmZXJbMTYzODRdOw0KICAgIGNoYXIgKipk
ZXZfbGlzdCwgKmRldl9uYW1lLCAqKmFwOw0KISAgIGludCBzZmQ7DQogIA0K
ICAgIHByb2dfbmFtZSA9IHN0cnJjaHIgKGFyZ3ZbMF0sICcvJyk7DQogICAg
aWYgKHByb2dfbmFtZSkNCioqKioqKioqKioqKioqKg0KKioqIDMyMSwzMjYg
KioqKg0KLS0tIDMzNSwzNDYgLS0tLQ0KICAJICAiL2Rldi9zZzJlIiwgIi9k
ZXYvc2cyZiIsICIvZGV2L3NnMmciLCAiL2Rldi9zZzJoIiwNCiAgCSAgIi9k
ZXYvc2czYSIsICIvZGV2L3NnM2IiLCAiL2Rldi9zZzNjIiwgIi9kZXYvc2cz
ZCIsDQogIAkgICIvZGV2L3NnM2UiLCAiL2Rldi9zZzNmIiwgIi9kZXYvc2cz
ZyIsICIvZGV2L3NnM2giLA0KKyAjZWxpZiBkZWZpbmVkKF9BSVgpDQorIAkg
ICIvZGV2L3NjYW5uZXIiLA0KKyAJICAiL2Rldi9nc2MwIiwgICIvZGV2L2dz
YzEiLCAgIi9kZXYvZ3NjMiIsICAiL2Rldi9nc2MzIiwgDQorIAkgICIvZGV2
L2dzYzQiLCAgIi9kZXYvZ3NjNSIsICAiL2Rldi9nc2M2IiwgICIvZGV2L2dz
YzciLA0KKyAJICAiL2Rldi9nc2M4IiwgICIvZGV2L2dzYzkiLCAgIi9kZXYv
Z3NjMTAiLCAiL2Rldi9nc2MxMSIsIA0KKyAJICAiL2Rldi9nc2MxMiIsICIv
ZGV2L2dzYzEzIiwgIi9kZXYvZ3NjMTQiLCAiL2Rldi9nc2MxNSIsIA0KICAj
ZW5kaWYNCiAgCSAgMA0KICAJfTsNCioqKiAuL1JFQURNRS5vcmkJVGh1IE5v
diAxMyAwNzozODoyOCAxOTk3DQotLS0gLi9SRUFETUUJTW9uIERlYyAxNSAx
NDozNTozNSAxOTk3DQoqKioqKioqKioqKioqKioNCioqKiAyMywyOSAqKioq
DQogIA0KICBTQU5FIGlzIGtub3cgdG8gYnVpbGQgb24gdGhlIGZvbGxvd2lu
ZyBwbGF0Zm9ybXM6DQogIA0KISAJLSBBSVgJCQkJW25vIGdlbmVyaWMgU0NT
SSBzdXBwb3J0XQ0KICAJLSBEaWdpdGFsIFVuaXggKEFscGhhKQkJW25vIGdl
bmVyaWMgU0NTSSBzdXBwb3J0XQ0KICAJLSBGcmVlQlNEDQogIAktIEZyZWVT
Q08NCi0tLSAyMywyOSAtLS0tDQogIA0KICBTQU5FIGlzIGtub3cgdG8gYnVp
bGQgb24gdGhlIGZvbGxvd2luZyBwbGF0Zm9ybXM6DQogIA0KISAJLSBBSVgN
CiAgCS0gRGlnaXRhbCBVbml4IChBbHBoYSkJCVtubyBnZW5lcmljIFNDU0kg
c3VwcG9ydF0NCiAgCS0gRnJlZUJTRA0KICAJLSBGcmVlU0NPDQoqKioqKioq
KioqKioqKioNCioqKiA3MCw3NSAqKioqDQotLS0gNzAsODYgLS0tLQ0KICBj
b25maWd1cmUgbGlrZSB0aGlzOg0KICANCiAgICAgQ0ZMQUdTPSItZyAtTyAt
V2FsbCIgLi9jb25maWd1cmUgLS1kaXNhYmxlLXNoYXJlZA0KKyANCisgKiog
QUlYDQorIA0KKyBVbmRlciBBSVgsIHlvdSdsbCBuZWVkIHRoZSBnZW5lcmlj
IFNDU0kgZGV2aWNlIGRyaXZlciBnc2Mgd3JpdHRlbiBieQ0KKyBNYXR0aGV3
IEphY29iIDxtamFjb2JAZmVyYWwuY29tPiAobmljZSBwaWVjZSBvZiB3b3Jr
ISkuIFdoZW4geW91DQorIGluc3RhbGwgdGhpcyBkcml2ZXIsIGNvcHkgdGhl
IGhlYWRlciBmaWxlIGdzY2Rkcy5oIHRvIC91c3IvaW5jbHVkZSwgYXMNCisg
d2UgbG9vayBmb3IgaXQgdGhlcmUuIA0KKyBGaW5kIHRoaXMgZHJpdmVyIHVu
ZGVyOg0KKyANCisgCWZ0cDovL2Z0cC5mZXJhbC5jb20vcHViL2FpeC9nc2Mu
dGFyLmd6DQorIAlmdHA6Ly9mdHAudGhwLlVuaS1EdWlzYnVyZy5ERS9wdWIv
c291cmNlL2dzYy50YXIuZ3oNCiAgDQogICoqIEhQLVVYDQogIA0KKioqIC4v
Y29uZmlndXJlLmluLm9yaQlXZWQgTm92IDE5IDA2OjA1OjMxIDE5OTcNCi0t
LSAuL2NvbmZpZ3VyZS5pbglUaHUgRGVjIDExIDE1OjQ2OjQ3IDE5OTcNCioq
KioqKioqKioqKioqKg0KKioqIDM4LDQ0ICoqKioNCiAgQUNfQ0hFQ0tfSEVB
REVSUyhmY250bC5oIHVuaXN0ZC5oIGxpYmludGwuaCBsaWJjLmggc3lzL2Rz
cmVxLmggc3lzL3NlbGVjdC5oIFwNCiAgICAgIHN5cy9zY2FuaW8uaCBzY3Np
Lmggc3lzL3Njc2kuaCBzeXMvc2NzaWNtZC5oIHN5cy9zY3NpaW8uaCBcDQog
ICAgICBic2QvZGV2L3Njc2lyZWcuaCBzY3NpL3NnLmggL3Vzci9zcmMvbGlu
dXgvaW5jbHVkZS9zY3NpL3NnLmggaW8vY2FtL2NhbS5oIFwNCiEgICAgIG9z
Mi5oIHN5cy9zb2NrZXQuaCBzeXMvaW8uaCBhc20vaW8uaCkNCiAgDQogIGRu
bCBDaGVja3MgZm9yIHR5cGVkZWZzLCBzdHJ1Y3R1cmVzLCBhbmQgY29tcGls
ZXIgY2hhcmFjdGVyaXN0aWNzLg0KICBBQ19DX0NPTlNUDQotLS0gMzgsNDQg
LS0tLQ0KICBBQ19DSEVDS19IRUFERVJTKGZjbnRsLmggdW5pc3RkLmggbGli
aW50bC5oIGxpYmMuaCBzeXMvZHNyZXEuaCBzeXMvc2VsZWN0LmggXA0KICAg
ICAgc3lzL3NjYW5pby5oIHNjc2kuaCBzeXMvc2NzaS5oIHN5cy9zY3NpY21k
Lmggc3lzL3Njc2lpby5oIFwNCiAgICAgIGJzZC9kZXYvc2NzaXJlZy5oIHNj
c2kvc2cuaCAvdXNyL3NyYy9saW51eC9pbmNsdWRlL3Njc2kvc2cuaCBpby9j
YW0vY2FtLmggXA0KISAgICAgb3MyLmggc3lzL3NvY2tldC5oIHN5cy9pby5o
IGFzbS9pby5oIGdzY2Rkcy5oKQ0KICANCiAgZG5sIENoZWNrcyBmb3IgdHlw
ZWRlZnMsIHN0cnVjdHVyZXMsIGFuZCBjb21waWxlciBjaGFyYWN0ZXJpc3Rp
Y3MuDQogIEFDX0NfQ09OU1QNCioqKiAuL0NoYW5nZUxvZy5vcmkJV2VkIERl
YyAgMyAwOToxMjozNyAxOTk3DQotLS0gLi9DaGFuZ2VMb2cJTW9uIERlYyAx
NSAxNDoxMjowMyAxOTk3DQoqKioqKioqKioqKioqKioNCioqKiAxLDMgKioq
Kg0KLS0tIDEsMjUgLS0tLQ0KKyAxOTk3LTEyLTE1ICBGcmVkIEh1Y2h0ICYg
TWljaGFlbCBTdGFhdHMgPHtmcmVkfG1pY2hhZWx9QHRocC5VbmktRHVpc2J1
cmcuREU+DQorIA0KKyAJKiBBZGRlZCBzdXBwb3J0IGZvciBnZW5lcmljIFND
U0kgdW5kZXIgQUlYIDQuMS54IHVzaW5nIHRoZSBkZXZpY2UNCisgCWRyaXZl
ciBnc2Mgd3JpdHRlbiBieSBNYXR0aGV3IEphY29iIDxtamFjb2JAZmVyYWwu
Y29tPiAobmljZSBwaWVjZQ0KKyAJb2Ygd29yayEpLg0KKyAJRmluZCB0aGlz
IGRyaXZlciB1bmRlcg0KKyAJZnRwOi8vZnRwLmZlcmFsLmNvbS9wdWIvYWl4
L2dzYy50YXIuZ3ogb3INCisgCWZ0cDovL2Z0cC50aHAuVW5pLUR1aXNidXJn
LkRFL3B1Yi9zb3VyY2UvZ3NjLnRhci5nei4NCisgCUNoYW5nZWQgZmlsZXM6
IHNhbmVpL3NhbmVpX3Njc2kuYywgaW5jbHVkZS9zYW5lL2NvbmZpZy5oLmlu
LA0KKyAJY29uZmlndXJlLmluLg0KKyANCisgCSogTW92ZWQgJyNpbmNsdWRl
IDxsYWxsb2NhLmg+JyB0byB2ZXJ5IGJlZ2lubmluZyBpbiBhbGwgc291cmNl
DQorIAlmaWxlcyBhcyBBSVggbmVlZHMgaXQgdGhlcmUuDQorIA0KKyAJKiBB
ZGRlZCBkZWZpbmUgT1VURklMRU5BTUUgdG8gZnJvbnRlbmQveHNjYW5pbWFn
ZS5jLg0KKyANCisgCSogRml4ZWQgd3JvbmcgZW52aXJvbm1lbnQgcmVmZXJl
bmNlIGluIC9kb2Mvc2FuZS1zY3NpLm1hbi4NCisgDQorIAkqIFNldmVyYWwg
Y2hhbmdlcyBpbiB0b29scy9maW5kLXNjYW5uZXIuYyB0byBydW4gdXNpbmcN
CisgCWFib3ZlIG1lbnRpb25lZCBkcml2ZXIuDQorIAlGaXhlZCB3cm9uZyBJ
Tl9wZXJpcGhfZGV2dHlwZV9jcHUgKHdhcyAxLCBzaG91bGQgYmUgMykuCQ0K
KyANCiAgMTk5Ny0xMi0wMyAgRGF2aWQgTW9zYmVyZ2VyLVRhbmcgIDxEYXZp
ZC5Nb3NiZXJnZXJAYWNtLm9yZz4NCiAgDQogIAkqIFZlcnNpb24gMC42OCBy
ZWxlYXNlZC4NCg==
---2040820479-1255864037-882195105=:81194--

--
Source code, list archive, and docs: http://www.mostang.com/sane/
To unsubscribe: echo unsubscribe sane-devel | mail majordomo@mostang.com