MD5 7cf37ee795b044d46571cdf4a52ce8ac files/broken_coolscan.patch 442
RMD160 9935934fe6963b7da31b544c7f3baa9065c39bab files/broken_coolscan.patch 442
SHA256 87b327a370f4f7e2884a9715dc880362f313611badf978ba1a1dd23f46284c98 files/broken_coolscan.patch 442
-AUX canoscan-focus.patch 472 RMD160 02a2734222e4725133150ca6c4b33491c5c47167 SHA1 dbfc6b2262799dd075cdc565627908afddb8055c SHA256 7abe4ab754f48c079c5ebffce4f15b84d5784ad0d4e1235e6f96fa308d71dea4
-MD5 026dc517ef9d45268cd506ec83519a0e files/canoscan-focus.patch 472
-RMD160 02a2734222e4725133150ca6c4b33491c5c47167 files/canoscan-focus.patch 472
-SHA256 7abe4ab754f48c079c5ebffce4f15b84d5784ad0d4e1235e6f96fa308d71dea4 files/canoscan-focus.patch 472
-AUX libusbscanner-device-r1.patch 681 RMD160 ab1932275a1970a9163d5972f851430220efeb8f SHA1 c624158a73081a31c793948025ed19bc49c6b025 SHA256 8a0d477fce2c683692a89df996cf72d379be7e0672a1f7552511d20cc167baa6
-MD5 cb4dcb744752238bdfed71fdcce81c79 files/libusbscanner-device-r1.patch 681
-RMD160 ab1932275a1970a9163d5972f851430220efeb8f files/libusbscanner-device-r1.patch 681
-SHA256 8a0d477fce2c683692a89df996cf72d379be7e0672a1f7552511d20cc167baa6 files/libusbscanner-device-r1.patch 681
-AUX libusbscanner-device.patch 582 RMD160 ca00fbf16ccaea368daa478d448b22388811cc2b SHA1 77f1130f61658e5c84f5d828e74210824cf3e68a SHA256 31caa1b205aa573d1f39f12567af9d769dd27d8c46a3d373944c0b4cc3e79b15
-MD5 820e842ff4247de984a89752ac129ceb files/libusbscanner-device.patch 582
-RMD160 ca00fbf16ccaea368daa478d448b22388811cc2b files/libusbscanner-device.patch 582
-SHA256 31caa1b205aa573d1f39f12567af9d769dd27d8c46a3d373944c0b4cc3e79b15 files/libusbscanner-device.patch 582
-AUX linux_sg3_err.h 4894 RMD160 8fe500bdd03127876a13e16772f6570cef310197 SHA1 71639851eebe9094fdcc79cd804ca32b954008c1 SHA256 a90f0d768c735d918a7b90bbf80b55a3d12fa03d0ef6d2a6320934132f9c483a
-MD5 365f695ec2c079ac06dd5bbf495f87ce files/linux_sg3_err.h 4894
-RMD160 8fe500bdd03127876a13e16772f6570cef310197 files/linux_sg3_err.h 4894
-SHA256 a90f0d768c735d918a7b90bbf80b55a3d12fa03d0ef6d2a6320934132f9c483a files/linux_sg3_err.h 4894
-AUX sane-backend-1.0.15-gt68xx-update67.patch 5682 RMD160 dc790785e9a4893c73ef2028fd0414009ee9dd37 SHA1 6272ad7787bcc3e8313ba7b9e507f3cfb32c5bae SHA256 9d7a19e48493516ca0e288ee19dd4321d2dbfd8906b677eff5d1fd7b66c94851
-MD5 f49c8e2b591496e87e91ae243d9864d0 files/sane-backend-1.0.15-gt68xx-update67.patch 5682
-RMD160 dc790785e9a4893c73ef2028fd0414009ee9dd37 files/sane-backend-1.0.15-gt68xx-update67.patch 5682
-SHA256 9d7a19e48493516ca0e288ee19dd4321d2dbfd8906b677eff5d1fd7b66c94851 files/sane-backend-1.0.15-gt68xx-update67.patch 5682
AUX udev-rule.patch 1307 RMD160 52db3085e925d2ae47caf15424be35d9c9561fa4 SHA1 887ce0e30d771b11e547ffd5f92be49e8908936c SHA256 8c1419b49933d85a53397e95ac268e11ea864f76a242cc02c604625bfdc5ff54
MD5 8d2c305dee317a0b715918c211de9719 files/udev-rule.patch 1307
RMD160 52db3085e925d2ae47caf15424be35d9c9561fa4 files/udev-rule.patch 1307
SHA256 8c1419b49933d85a53397e95ac268e11ea864f76a242cc02c604625bfdc5ff54 files/udev-rule.patch 1307
-DIST gt68xx-71.patch.bz2 20694 RMD160 0c33826b6d0e3a44bc1a243fd208826192f10fef SHA1 ab28a3a6bf40c870c296bc9bda045904505315bd SHA256 6cb6a4228927d44d400dfa81d39ed312d126c143022953ed688a69994e23ac66
DIST sane-1.0.16-brother-driver.diff.bz2 8224 RMD160 acbe36d7c4347d49f6e8e708ea81f0ee604fec9f SHA1 2f0cf77d8bbb98b9bb6cc1f56a86f662fa9bda48 SHA256 795b4c553e5195261b4dfe5f624d2dba256910996d10af3af9551c192bbc92fe
DIST sane-1.0.18-brother-driver.diff.bz2 8335 RMD160 8d86dccca4054699e367412c25d80d8641de42ca SHA1 60bf9c8d4b2fac3f250a95d1dc8043662fc974cd SHA256 4a2eceb222f6cd55979fd150c4a7c365a9a83f2beab15045852f8859404de23b
-DIST sane-backends-1.0.15-brothermfc.patch.bz2 9753 RMD160 83e388f8dc14af8c18296186d8983ff856e4487a SHA1 6382738710e092a6bbc78e0f77ba104d58f00a0b SHA256 afd0bf3cd17ce9240c2af0c2ecddc7ca8379ac70010330f4e7f3248325b35a6a
-DIST sane-backends-1.0.15.tar.gz 3231759 RMD160 0e42007ff24d0a5f94c7c901982619cf4d1a7068 SHA1 521bdeacbab389a6fd67f16123e09b9f86752169 SHA256 89106b5bc5a66ca0eaf4553371c89ac8542a757964d7a91c07b8fb77e040eebe
DIST sane-backends-1.0.17.tar.gz 3588993 RMD160 43e440712e9da676e235dc6148c5dda347c30e22 SHA1 a73e01575458a5fb7dc265cea50c6740555e1711 SHA256 f5478acc07494498fe94aa8801193f8511cacd023fed19aaee1429e10e805d77
DIST sane-backends-1.0.18.tar.gz 3789493 RMD160 aa863adff417d7c33cbb85c193878aa54a056100 SHA1 f4c360b87ced287e4015a0dafd766ad885c539e1 SHA256 d7876a78c5676b0c4bc29091c7a7e1287b5c0be5ff5bb61ef033fbffc73d66f3
-EBUILD sane-backends-1.0.15-r3.ebuild 3971 RMD160 a2cb065433b535fc43fe278d9fd12376cf412aae SHA1 f20879a3636550b436c464c009aa2bcbd721e41a SHA256 72b8d6a9bd78c640e2d81858ae7b90af2bc1a357274e0e8d0927bcea85860946
-MD5 faf6bd7e05c7d17b57793f8f3ebf5b2e sane-backends-1.0.15-r3.ebuild 3971
-RMD160 a2cb065433b535fc43fe278d9fd12376cf412aae sane-backends-1.0.15-r3.ebuild 3971
-SHA256 72b8d6a9bd78c640e2d81858ae7b90af2bc1a357274e0e8d0927bcea85860946 sane-backends-1.0.15-r3.ebuild 3971
-EBUILD sane-backends-1.0.15.ebuild 2598 RMD160 cc9a6e1e354edf5fffd1b16c63e414ab7883f67d SHA1 2b9b8eaa0de91c37743d7f7802f6b2039bd87083 SHA256 9b4c2a259d8789f24f0836b0c468c0408615fc371a89817af9b394119acafdb7
-MD5 e898804ea6825104b162de2ad41593ef sane-backends-1.0.15.ebuild 2598
-RMD160 cc9a6e1e354edf5fffd1b16c63e414ab7883f67d sane-backends-1.0.15.ebuild 2598
-SHA256 9b4c2a259d8789f24f0836b0c468c0408615fc371a89817af9b394119acafdb7 sane-backends-1.0.15.ebuild 2598
EBUILD sane-backends-1.0.17.ebuild 3858 RMD160 e36f305c9d651979131c05a4e9b3dfe976ca757d SHA1 a740e6c9c2248cc2abea6b34e95e29ea418ab4ca SHA256 606ca4844d881442e17b10e4656b2edd21fa32c74de7b1300d944b42ddf9a544
MD5 127776e6ae274020db9accb70da954e2 sane-backends-1.0.17.ebuild 3858
RMD160 e36f305c9d651979131c05a4e9b3dfe976ca757d sane-backends-1.0.17.ebuild 3858
MD5 9a498af1cef3e87c748147253f7e7947 sane-backends-1.0.18-r2.ebuild 4084
RMD160 a6f1c67b3a36019307105a7a546b4ec5aed12ac0 sane-backends-1.0.18-r2.ebuild 4084
SHA256 e67bf9be3807d586a792149bd5c3be06b30debf03a892afe9863a771863eaf20 sane-backends-1.0.18-r2.ebuild 4084
-EBUILD sane-backends-1.0.18.ebuild 3835 RMD160 8c2ac977c9bbe816cb8e673db8ef3ab1d81dde67 SHA1 b4a5ee1e268d06a02cc7ae0435a2f8b18a7cea08 SHA256 023f2d31bc194e592d49a45022641ad51e605955e29bfd408df46b50b75654d9
-MD5 89434813e78f7d724513298ff54ca454 sane-backends-1.0.18.ebuild 3835
-RMD160 8c2ac977c9bbe816cb8e673db8ef3ab1d81dde67 sane-backends-1.0.18.ebuild 3835
-SHA256 023f2d31bc194e592d49a45022641ad51e605955e29bfd408df46b50b75654d9 sane-backends-1.0.18.ebuild 3835
-MISC ChangeLog 18999 RMD160 6a943ca051296cc162dfba8d140667211f23fc69 SHA1 44d733d7d28045ec586a6e00ed1d87fa03002990 SHA256 b7338fc0058ba022d53fabf2616ab1e35c0358c04ac508a06de188f56c6a6b22
-MD5 1f07ed85a300aff5fd374ccdf207b0b8 ChangeLog 18999
-RMD160 6a943ca051296cc162dfba8d140667211f23fc69 ChangeLog 18999
-SHA256 b7338fc0058ba022d53fabf2616ab1e35c0358c04ac508a06de188f56c6a6b22 ChangeLog 18999
+MISC ChangeLog 19398 RMD160 e979cb5aea6d5c2d81fa16e3a6d4a5f799cfbd08 SHA1 72fd26a22a2cc2f7b7ae1d88d174ff30fa6589e9 SHA256 34b62a3a96291f21fc218726c8580787e06fd565917200ee78cf0984ccba6515
+MD5 70ad13bf9fd9dda805934c772c051911 ChangeLog 19398
+RMD160 e979cb5aea6d5c2d81fa16e3a6d4a5f799cfbd08 ChangeLog 19398
+SHA256 34b62a3a96291f21fc218726c8580787e06fd565917200ee78cf0984ccba6515 ChangeLog 19398
MISC metadata.xml 224 RMD160 d646bef174a902fd1910871e794292c44f292052 SHA1 411f9bc454756fe51f5ff5033b73f91b0b07a204 SHA256 c2d7984543cf5a2770459f930dc78cbe0a220cb3297123dc108b225edc33a822
MD5 b742040acaeddc3798a21739bd59e8aa metadata.xml 224
RMD160 d646bef174a902fd1910871e794292c44f292052 metadata.xml 224
SHA256 c2d7984543cf5a2770459f930dc78cbe0a220cb3297123dc108b225edc33a822 metadata.xml 224
-MD5 f6255592ca97f5f4285a5c95afd761c7 files/digest-sane-backends-1.0.15 563
-RMD160 d7606042e8795dd686c21f17cc7463e088341e5c files/digest-sane-backends-1.0.15 563
-SHA256 69b6ad295ceab64e179b1a3982e3053e279bc6db8392c037dd4a0f2dd12fae7b files/digest-sane-backends-1.0.15 563
-MD5 214948432c54700c98c4cd337549e64e files/digest-sane-backends-1.0.15-r3 798
-RMD160 62f762d9decd7b7f6fcb6b434bd192537ed6ef71 files/digest-sane-backends-1.0.15-r3 798
-SHA256 9588c58aeb8c1876f049876803b99794b5e0926fb3a05309753b6242a0b4db94 files/digest-sane-backends-1.0.15-r3 798
MD5 96cd93393228e66edd7dbea72cac58cc files/digest-sane-backends-1.0.17 545
RMD160 b870520524066d0ce38231558b644f3bd17514a4 files/digest-sane-backends-1.0.17 545
SHA256 2e34b33618661e8e23c7cee3d878bf759aa155250aec9f14d3c4ee1dd1eaac48 files/digest-sane-backends-1.0.17 545
-MD5 a5adbad07b9aed2a03f518664e2d94e6 files/digest-sane-backends-1.0.18 545
-RMD160 b2327e4254ffcf2074c21f2b1c629014ab83ed14 files/digest-sane-backends-1.0.18 545
-SHA256 64854e40d74b4a1b27aea1b2f5b5accdd348b8a835e9d8898b6f3dc5904f19a8 files/digest-sane-backends-1.0.18 545
MD5 a5adbad07b9aed2a03f518664e2d94e6 files/digest-sane-backends-1.0.18-r2 545
RMD160 b2327e4254ffcf2074c21f2b1c629014ab83ed14 files/digest-sane-backends-1.0.18-r2 545
SHA256 64854e40d74b4a1b27aea1b2f5b5accdd348b8a835e9d8898b6f3dc5904f19a8 files/digest-sane-backends-1.0.18-r2 545
+++ /dev/null
---- backend/canon.c 2003-03-22 17:59:24.000000000 +0100
-+++ backend/canon.c.new 2003-09-26 14:07:05.000000000 +0200
-@@ -861,7 +861,7 @@
- dev->sane.type = "film scanner";
- dev->adf.Status = ADF_STAT_NONE;
- dev->tpu.Status = TPU_STAT_NONE;
-- dev->info.can_focus = SANE_TRUE;
-+ dev->info.can_focus = SANE_FALSE;
- dev->info.can_autoexpose = SANE_FALSE;
- dev->info.can_calibrate = SANE_FALSE;
- dev->info.can_eject = SANE_TRUE;
+++ /dev/null
-MD5 f2d2c62caf1d4e12005fbb8ee62a5f39 sane-backends-1.0.15-brothermfc.patch.bz2 9753
-RMD160 83e388f8dc14af8c18296186d8983ff856e4487a sane-backends-1.0.15-brothermfc.patch.bz2 9753
-SHA256 afd0bf3cd17ce9240c2af0c2ecddc7ca8379ac70010330f4e7f3248325b35a6a sane-backends-1.0.15-brothermfc.patch.bz2 9753
-MD5 3b804f35cdfbc5ad2d201ffe078bbac9 sane-backends-1.0.15.tar.gz 3231759
-RMD160 0e42007ff24d0a5f94c7c901982619cf4d1a7068 sane-backends-1.0.15.tar.gz 3231759
-SHA256 89106b5bc5a66ca0eaf4553371c89ac8542a757964d7a91c07b8fb77e040eebe sane-backends-1.0.15.tar.gz 3231759
+++ /dev/null
-MD5 b8db53fe037a2cc50cdf6d185d368686 gt68xx-71.patch.bz2 20694
-RMD160 0c33826b6d0e3a44bc1a243fd208826192f10fef gt68xx-71.patch.bz2 20694
-SHA256 6cb6a4228927d44d400dfa81d39ed312d126c143022953ed688a69994e23ac66 gt68xx-71.patch.bz2 20694
-MD5 f2d2c62caf1d4e12005fbb8ee62a5f39 sane-backends-1.0.15-brothermfc.patch.bz2 9753
-RMD160 83e388f8dc14af8c18296186d8983ff856e4487a sane-backends-1.0.15-brothermfc.patch.bz2 9753
-SHA256 afd0bf3cd17ce9240c2af0c2ecddc7ca8379ac70010330f4e7f3248325b35a6a sane-backends-1.0.15-brothermfc.patch.bz2 9753
-MD5 3b804f35cdfbc5ad2d201ffe078bbac9 sane-backends-1.0.15.tar.gz 3231759
-RMD160 0e42007ff24d0a5f94c7c901982619cf4d1a7068 sane-backends-1.0.15.tar.gz 3231759
-SHA256 89106b5bc5a66ca0eaf4553371c89ac8542a757964d7a91c07b8fb77e040eebe sane-backends-1.0.15.tar.gz 3231759
+++ /dev/null
-MD5 69b18ea038b8cd0e289c04c512b43b8e sane-1.0.18-brother-driver.diff.bz2 8335
-RMD160 8d86dccca4054699e367412c25d80d8641de42ca sane-1.0.18-brother-driver.diff.bz2 8335
-SHA256 4a2eceb222f6cd55979fd150c4a7c365a9a83f2beab15045852f8859404de23b sane-1.0.18-brother-driver.diff.bz2 8335
-MD5 7ca7e2908e24721471de92cf40c75e60 sane-backends-1.0.18.tar.gz 3789493
-RMD160 aa863adff417d7c33cbb85c193878aa54a056100 sane-backends-1.0.18.tar.gz 3789493
-SHA256 d7876a78c5676b0c4bc29091c7a7e1287b5c0be5ff5bb61ef033fbffc73d66f3 sane-backends-1.0.18.tar.gz 3789493
+++ /dev/null
---- tools/hotplug/libusbscanner 2004-05-10 08:28:34.537782880 +0200
-+++ libusbscanner.new 2004-05-10 08:32:05.998691893 +0200
-@@ -13,6 +13,17 @@
- # DEVICE=/proc/bus/usb/BBB/DDD
- # TYPE=usb
-
-+
-+if [ -z "${DEVICE}" ] ; then
-+ IF=$(echo ${DEVPATH} | sed 's:\(bus/usb/devices/\)\(.*\)-\(.*\):\2:')
-+ if [ -r /sys/${DEVPATH}/devnum ]; then
-+ DEV=$(cat /sys/${DEVPATH}/devnum)
-+ else
-+ DEV=1 # you'll have to adjust this manually for kernel < 2.6.6
-+ fi
-+ DEVICE=$(printf '/proc/bus/usb/%.03d/%.03d' ${IF} ${DEV})
-+fi
-+
- if [ "$ACTION" = "add" -a "$TYPE" = "usb" ]; then
- chown root:scanner "$DEVICE"
- chmod 0660 "$DEVICE"
+++ /dev/null
---- tools/hotplug/libusbscanner 2004-05-10 08:28:34.537782880 +0200
-+++ libusbscanner.new 2004-05-10 08:32:05.998691893 +0200
-@@ -13,6 +13,14 @@
- # DEVICE=/proc/bus/usb/BBB/DDD
- # TYPE=usb
-
-+
-+if [ -z "$DEVICE" ] ; then
-+ IF=$(echo $DEVPATH | sed 's:\(bus/usb/devices/\)\(.*\)-\(.*\):\2:')
-+ DEV=$(echo $DEVPATH | sed 's:\(bus/usb/devices/\)\(.*\)-\(.*\):\3:')
-+ DEV=$(expr $DEV + 1)
-+ DEVICE=$(printf '/proc/bus/usb/%.03d/%.03d' $IF $DEV)
-+fi
-+
- if [ "$ACTION" = "add" -a "$TYPE" = "usb" ]; then
- chown root:scanner "$DEVICE"
- chmod 0660 "$DEVICE"
+++ /dev/null
-#ifndef SG_ERR_H
-#define SG_ERR_H
-#include </usr/include/scsi/scsi.h> /* cope with silly includes */
-#include </usr/include/scsi/sg.h>
-
-/* Feel free to copy and modify this GPL-ed code into your applications. */
-
-/* Version 0.82 (991025) */
-
-/* Some of the following error/status codes are exchanged between the
-various layers of the SCSI sub-system in Linux and should never
-reach the user. They are placed here for completeness. What appears
-here is copied from drivers/scsi/scsi.h which is not visible in
-the user space. */
-
-/* The following are 'host_status' codes */
-#ifndef DID_OK
-#define DID_OK 0x00
-#endif
-#ifndef DID_NO_CONNECT
-#define DID_NO_CONNECT 0x01 /* Unable to connect before timeout */
-#define DID_BUS_BUSY 0x02 /* Bus remain busy until timeout */
-#define DID_TIME_OUT 0x03 /* Timed out for some other reason */
-#define DID_BAD_TARGET 0x04 /* Bad target (id?) */
-#define DID_ABORT 0x05 /* Told to abort for some other reason */
-#define DID_PARITY 0x06 /* Parity error (on SCSI bus) */
-#define DID_ERROR 0x07 /* Internal error */
-#define DID_RESET 0x08 /* Reset by somebody */
-#define DID_BAD_INTR 0x09 /* Received an unexpected interrupt */
-#define DID_PASSTHROUGH 0x0a /* Force command past mid-level */
-#define DID_SOFT_ERROR 0x0b /* The low-level driver wants a retry */
-#endif
-
-/* These defines are to isolate applictaions from kernel define changes */
-#define SG_ERR_DID_OK DID_OK
-#define SG_ERR_DID_NO_CONNECT DID_NO_CONNECT
-#define SG_ERR_DID_BUS_BUSY DID_BUS_BUSY
-#define SG_ERR_DID_TIME_OUT DID_TIME_OUT
-#define SG_ERR_DID_BAD_TARGET DID_BAD_TARGET
-#define SG_ERR_DID_ABORT DID_ABORT
-#define SG_ERR_DID_PARITY DID_PARITY
-#define SG_ERR_DID_ERROR DID_ERROR
-#define SG_ERR_DID_RESET DID_RESET
-#define SG_ERR_DID_BAD_INTR DID_BAD_INTR
-#define SG_ERR_DID_PASSTHROUGH DID_PASSTHROUGH
-#define SG_ERR_DID_SOFT_ERROR DID_SOFT_ERROR
-
-/* The following are 'driver_status' codes */
-#ifndef DRIVER_OK
-#define DRIVER_OK 0x00
-#endif
-#ifndef DRIVER_BUSY
-#define DRIVER_BUSY 0x01
-#define DRIVER_SOFT 0x02
-#define DRIVER_MEDIA 0x03
-#define DRIVER_ERROR 0x04
-#define DRIVER_INVALID 0x05
-#define DRIVER_TIMEOUT 0x06
-#define DRIVER_HARD 0x07
-#define DRIVER_SENSE 0x08 /* Sense_buffer has been set */
-
-/* Following "suggests" are "or-ed" with one of previous 8 entries */
-#define SUGGEST_RETRY 0x10
-#define SUGGEST_ABORT 0x20
-#define SUGGEST_REMAP 0x30
-#define SUGGEST_DIE 0x40
-#define SUGGEST_SENSE 0x80
-#define SUGGEST_IS_OK 0xff
-#endif
-#ifndef DRIVER_MASK
-#define DRIVER_MASK 0x0f
-#endif
-#ifndef SUGGEST_MASK
-#define SUGGEST_MASK 0xf0
-#endif
-
-/* These defines are to isolate applictaions from kernel define changes */
-#define SG_ERR_DRIVER_OK DRIVER_OK
-#define SG_ERR_DRIVER_BUSY DRIVER_BUSY
-#define SG_ERR_DRIVER_SOFT DRIVER_SOFT
-#define SG_ERR_DRIVER_MEDIA DRIVER_MEDIA
-#define SG_ERR_DRIVER_ERROR DRIVER_ERROR
-#define SG_ERR_DRIVER_INVALID DRIVER_INVALID
-#define SG_ERR_DRIVER_TIMEOUT DRIVER_TIMEOUT
-#define SG_ERR_DRIVER_HARD DRIVER_HARD
-#define SG_ERR_DRIVER_SENSE DRIVER_SENSE
-#define SG_ERR_SUGGEST_RETRY SUGGEST_RETRY
-#define SG_ERR_SUGGEST_ABORT SUGGEST_ABORT
-#define SG_ERR_SUGGEST_REMAP SUGGEST_REMAP
-#define SG_ERR_SUGGEST_DIE SUGGEST_DIE
-#define SG_ERR_SUGGEST_SENSE SUGGEST_SENSE
-#define SG_ERR_SUGGEST_IS_OK SUGGEST_IS_OK
-#define SG_ERR_DRIVER_MASK DRIVER_MASK
-#define SG_ERR_SUGGEST_MASK SUGGEST_MASK
-
-/* The following "print" functions send ACSII to stdout */
-extern void sg_print_command(const unsigned char * command);
-extern void sg_print_sense(const char * leadin,
-const unsigned char * sense_buffer, int sb_len);
-extern void sg_print_status(int masked_status);
-extern void sg_print_host_status(int host_status);
-extern void sg_print_driver_status(int driver_status);
-
-/* sg_chk_n_print() returns 1 quietly if there are no errors/warnings
-else it prints to standard output and returns 0. */
-extern int sg_chk_n_print(const char * leadin, int masked_status,
-int host_status, int driver_status,
-const unsigned char * sense_buffer, int sb_len);
-#ifdef SG_IO
-extern int sg_chk_n_print3(const char * leadin, Sg_io_hdr * hp);
-#endif
-
-/* The following "category" function returns one of the following */
-#define SG_ERR_CAT_CLEAN 0 /* No errors or other information */
-#define SG_ERR_CAT_MEDIA_CHANGED 1 /* interpreted from sense buffer */
-#define SG_ERR_CAT_RESET 2 /* interpreted from sense buffer */
-#define SG_ERR_CAT_TIMEOUT 3
-#define SG_ERR_CAT_RECOVERED 4 /* Successful command after recovered err */
-#define SG_ERR_CAT_SENSE 98 /* Something else is in the sense buffer */
-#define SG_ERR_CAT_OTHER 99 /* Some other error/warning has occurred */
-
-extern int sg_err_category(int masked_status, int host_status,
-int driver_status, const unsigned char * sense_buffer,
-int sb_len);
-#ifdef SG_IO
-extern int sg_err_category3(Sg_io_hdr * hp);
-#endif
-
-/* Returns length of SCSI command given the opcode (first byte) */
-int sg_get_command_size(unsigned char opcode);
-
-#endif
+++ /dev/null
-diff -uNr sane-backends-1.0.15.org/backend/gt68xx.c sane-backends-1.0.15/backend/gt68xx.c
---- sane-backends-1.0.15.org/backend/gt68xx.c 2004-10-31 18:47:40.000000000 +0100
-+++ sane-backends-1.0.15/backend/gt68xx.c 2004-11-14 14:20:30.000000000 +0100
-@@ -48,7 +48,7 @@
-
- #include "../include/sane/config.h"
-
--#define BUILD 66
-+#define BUILD 67
- #define MAX_DEBUG
- #define WARMUP_TIME 60
- #define CALIBRATION_HEIGHT 2.5
-@@ -1342,7 +1342,7 @@
-
- RIE (gt68xx_device_get_id (dev));
-
-- if (!(dev->model->flags | GT68XX_FLAG_NO_STOP))
-+ if (!(dev->model->flags & GT68XX_FLAG_NO_STOP))
- RIE (gt68xx_device_stop_scan (dev));
-
- RIE (gt68xx_device_get_power_status (dev, &power_ok));
-@@ -1736,7 +1736,7 @@
- }
-
- s->calib = s->val[OPT_QUALITY_CAL].w;
-- if (!(s->dev->model->flags | GT68XX_FLAG_NO_STOP))
-+ if (!(s->dev->model->flags & GT68XX_FLAG_NO_STOP))
- RIE (gt68xx_device_stop_scan (s->dev));
-
- RIE (gt68xx_device_carriage_home (s->dev));
-diff -uNr sane-backends-1.0.15.org/backend/gt68xx_devices.c sane-backends-1.0.15/backend/gt68xx_devices.c
---- sane-backends-1.0.15.org/backend/gt68xx_devices.c 2004-10-05 19:22:53.000000000 +0200
-+++ sane-backends-1.0.15/backend/gt68xx_devices.c 2004-11-14 14:16:28.000000000 +0100
-@@ -1074,8 +1074,7 @@
- SANE_FALSE, /* Is this a CIS scanner? */
- GT68XX_FLAG_OFFSET_INV | GT68XX_FLAG_NO_POWER_STATUS| GT68XX_FLAG_NO_LINEMODE
- /* Which flags are needed for this scanner? */
-- /* Untested but as this scanner seems to be very similar to Plustelk U16B it
-- should work. */
-+ /* This scanner seems to be very similar to Plustelk U16B and is reported to work. */
- };
-
-
-@@ -1126,7 +1125,7 @@
-
- SANE_FALSE, /* Is this a CIS scanner? */
- GT68XX_FLAG_OFFSET_INV /* Which flags are needed for this scanner? */
-- /* Tested zo some degree, based on the Plustek OpticPro 1248U*/
-+ /* Tested to some degree, based on the Plustek OpticPro 1248U*/
- };
-
- static GT68xx_Model genius_vivid4x_model = {
-diff -uNr sane-backends-1.0.15.org/backend/gt68xx_gt6801.c sane-backends-1.0.15/backend/gt68xx_gt6801.c
---- sane-backends-1.0.15.org/backend/gt68xx_gt6801.c 2004-06-17 19:30:02.000000000 +0200
-+++ sane-backends-1.0.15/backend/gt68xx_gt6801.c 2004-11-14 13:53:22.000000000 +0100
-@@ -553,7 +553,7 @@
- GT68xx_Packet req;
- SANE_Byte motor_mode_1, motor_mode_2;
-
-- if ((dev->model->flags & GT68XX_FLAG_NO_LINEMODE) && line_mode)
-+ if ((dev->model->flags & GT68XX_FLAG_NO_LINEMODE) && line_mode && color)
- {
- DBG (0, "gt6801_setup_scan: the scanner's memory is too small for "
- "that combination of resolution, dpi and width\n");
-diff -uNr sane-backends-1.0.15.org/backend/gt68xx_gt6816.c sane-backends-1.0.15/backend/gt68xx_gt6816.c
---- sane-backends-1.0.15.org/backend/gt68xx_gt6816.c 2004-06-17 20:29:40.000000000 +0200
-+++ sane-backends-1.0.15/backend/gt68xx_gt6816.c 2004-11-14 13:52:55.000000000 +0100
-@@ -534,7 +534,7 @@
- return SANE_STATUS_NO_MEM;
- }
-
-- if ((dev->model->flags & GT68XX_FLAG_NO_LINEMODE) && line_mode)
-+ if ((dev->model->flags & GT68XX_FLAG_NO_LINEMODE) && line_mode && color)
- {
- DBG (0, "gt6816_setup_scan: the scanner's memory is too small for "
- "that combination of resolution, dpi and width\n");
-diff -uNr sane-backends-1.0.15.org/backend/gt68xx-s.c sane-backends-1.0.15/backend/gt68xx-s.c
---- sane-backends-1.0.15.org/backend/gt68xx-s.c 1970-01-01 01:00:00.000000000 +0100
-+++ sane-backends-1.0.15/backend/gt68xx-s.c 2000-08-12 17:09:44.000000000 +0200
-@@ -0,0 +1,83 @@
-+#include "sane/sanei_backend.h"
-+
-+/* Now define the wrappers (we could use aliases here, but go for
-+ robustness for now...: */
-+
-+SANE_Status
-+sane_init (SANE_Int *vc, SANE_Auth_Callback cb)
-+{
-+ return ENTRY(init) (vc, cb);
-+}
-+
-+SANE_Status
-+sane_get_devices (const SANE_Device ***dl, SANE_Bool local)
-+{
-+ return ENTRY(get_devices) (dl, local);
-+}
-+
-+SANE_Status
-+sane_open (SANE_String_Const name, SANE_Handle *h)
-+{
-+ return ENTRY(open) (name, h);
-+}
-+
-+const SANE_Option_Descriptor *
-+sane_get_option_descriptor (SANE_Handle h, SANE_Int opt)
-+{
-+ return ENTRY(get_option_descriptor) (h, opt);
-+}
-+
-+SANE_Status
-+sane_control_option (SANE_Handle h, SANE_Int opt, SANE_Action act,
-+ void *val, SANE_Word *info)
-+{
-+ return ENTRY(control_option) (h, opt, act, val, info);
-+}
-+
-+SANE_Status
-+sane_get_parameters (SANE_Handle h, SANE_Parameters *parms)
-+{
-+ return ENTRY(get_parameters) (h, parms);
-+}
-+
-+SANE_Status
-+sane_start (SANE_Handle h)
-+{
-+ return ENTRY(start) (h);
-+}
-+
-+SANE_Status
-+sane_read (SANE_Handle h, SANE_Byte *buf, SANE_Int maxlen, SANE_Int *lenp)
-+{
-+ return ENTRY(read) (h, buf, maxlen, lenp);
-+}
-+
-+SANE_Status
-+sane_set_io_mode (SANE_Handle h, SANE_Bool non_blocking)
-+{
-+ return ENTRY(set_io_mode) (h, non_blocking);
-+}
-+
-+SANE_Status
-+sane_get_select_fd (SANE_Handle h, SANE_Int *fdp)
-+{
-+ return ENTRY(get_select_fd) (h, fdp);
-+}
-+
-+void
-+sane_cancel (SANE_Handle h)
-+{
-+ ENTRY(cancel) (h);
-+}
-+
-+void
-+sane_close (SANE_Handle h)
-+{
-+ ENTRY(close) (h);
-+}
-+
-+void
-+sane_exit (void)
-+{
-+ ENTRY(exit) ();
-+}
-diff -uNr sane-backends-1.0.15.org/doc/gt68xx/gt68xx.CHANGES sane-backends-1.0.15/doc/gt68xx/gt68xx.CHANGES
---- sane-backends-1.0.15.org/doc/gt68xx/gt68xx.CHANGES 2004-10-31 18:59:18.000000000 +0100
-+++ sane-backends-1.0.15/doc/gt68xx/gt68xx.CHANGES 2004-11-14 13:56:39.000000000 +0100
-@@ -1,5 +1,11 @@
- gt68xx.CHANGES -*-text-*-
-
-+V 1.0.67 (2004-11-14)
-+
-+* Fixed test to move home sensor at the start of scan.
-+* Fixed gray mode linemode test. That stopped e.g. the Plustek OpticPro U 16 B
-+ from working in gray mode.
-+
- V 1.0.66 (2004-10-31)
-
- * Removed unused gain and offset options.
+++ /dev/null
-# Copyright 1999-2006 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-gfx/sane-backends/sane-backends-1.0.15-r3.ebuild,v 1.4 2006/02/20 17:01:14 corsair Exp $
-
-inherit eutils
-
-IUSE="usb gphoto2 ipv6 v4l"
-
-DESCRIPTION="Scanner Access Now Easy - Backends"
-HOMEPAGE="http://www.sane-project.org/"
-
-DEPEND=">=media-libs/jpeg-6b
- amd64? ( sys-libs/libieee1284 )
- x86? ( sys-libs/libieee1284 )
- usb? ( dev-libs/libusb )
- gphoto2? ( media-libs/libgphoto2 )
- v4l? ( sys-kernel/linux-headers )"
-
-BROTHERMFCDRIVER="sane-backends-1.0.15-brothermfc.patch"
-
-SRC_URI="ftp://ftp.mostang.com/pub/sane/${P}/${P}.tar.gz
- ftp://ftp.mostang.com/pub/sane/old-versions/${P}/${P}.tar.gz
- mirror://gentoo/gt68xx-71.patch.bz2
- http://dev.gentoo.org/~phosphan/gt68xx-71.patch.bz2
- usb? ( mirror://gentoo/${BROTHERMFCDRIVER}.bz2 )"
-SLOT="0"
-LICENSE="GPL-2 public-domain"
-KEYWORDS="alpha ~amd64 ia64 ~ppc ppc64 ~sparc ~x86"
-
-# To enable specific backends, define SANE_BACKENDS with the backends you want
-# in those:
-# abaton agfafocus apple artec as6e avision bh canon canon630u coolscan
-# coolscan2 dc25 dmc epson fujitsu gt68xx hp leo matsushita microtek
-# microtek2 mustek mustek_usb nec pie plustek plustek_pp ricoh s9036
-# sceptre sharp sp15c st400 tamarack test teco1 teco2 teco3 umax umax_pp
-# umax1220u artec_eplus48u ma1509 ibm hp5400 u12 snapscan niash dc210 dc240
-# pint net
-#
-# Note that some backends has specific dependencies which make the compilation
-# fail because not supported on your current platform.
-pkg_setup() {
- IEEE1284_BACKENDS="canon_pp hpsj5s mustek_pp"
-
- if [[ "${SANE_BACKENDS}" != "" ]]; then
- use gphoto2 && SANE_BACKENDS="${SANE_BACKENDS} gphoto2"
- use v4l && SANE_BACKENDS="${SANE_BACKENDS} v4l"
- use usb && SANE_BACKENDS="${SANE_BACKENDS} sm3600"
- fi
-
- if ! use x86 && ! use amd64; then
- tmp="${SANE_BACKENDS}"
- for backend in ${IEEE1284_BACKENDS}; do
- if [[ "${tmp/$backend/}" != "${SANE_BACKENDS}" ]]; then
- ewarn "You selected a backend which is disabled because it's not usable in your arch."
- fi
- done
- fi
-}
-
-src_unpack() {
- if [ -z "${SANE_BACKENDS}" ]; then
- einfo "You can use the variable SANE_BACKENDS to pick backends"
- einfo "instead of building all of them."
- fi
- unpack ${A}
- if use usb; then
- unpack ${BROTHERMFCDRIVER}.bz2
- fi
- cp ${FILESDIR}/linux_sg3_err.h ${S}/sanei
-
- cd ${S}
-
- epatch ${FILESDIR}/canoscan-focus.patch
- epatch ${WORKDIR}/gt68xx-71.patch
-
- #only generate the .ps and not the fonts
- sed -i -e 's:$(DVIPS) sane.dvi -o sane.ps:$(DVIPS) sane.dvi -M1 -o sane.ps:' \
- doc/Makefile.in
- #compile errors when using NDEBUG otherwise
- sed -i -e 's:function_name:__FUNCTION__:g' backend/artec_eplus48u.c
-
- if use usb; then
- epatch ${WORKDIR}/${BROTHERMFCDRIVER}
- epatch ${FILESDIR}/libusbscanner-device-r1.patch
- fi
-}
-
-src_compile() {
- SANEI_JPEG="sanei_jpeg.o" SANEI_JPEG_LO="sanei_jpeg.lo" \
- BACKENDS="${SANE_BACKENDS}" \
- econf \
- $(use_enable usb libusb) \
- $(use_with gphoto2) \
- $(use_enable ipv6) \
- ${myconf} || die "econf failed"
-
- emake || die
-
- if use usb; then
- cd tools/hotplug
- grep -v '^$' libsane.usermap > libsane.usermap.new
- mv libsane.usermap.new libsane.usermap
- fi
-}
-
-src_install () {
- einstall docdir=${D}/usr/share/doc/${PF}
-
- if use usb; then
- cd tools/hotplug
- insinto /etc/hotplug/usb
- exeinto /etc/hotplug/usb
- doins libsane.usermap
- doexe libusbscanner
- newdoc README README.hotplug
- cd ../..
- fi
-
- docinto backend
- cd backend
- dodoc GUIDE *.README *.BUGS *.CHANGES *.FAQ *.TODO
-
- echo "SANE_CONFIG_DIR=/etc/sane.d" > 30sane
- insinto /etc/env.d
- doins 30sane
-
-}
-
-pkg_preinst() {
- enewgroup scanner
-}
-
-pkg_postinst() {
- if use usb; then
- einfo "There are some problems with the hotplug script when"
- einfo "restarting hotplug with some kernel versions."
- einfo "If you have trouble, please edit"
- einfo "/etc/hotplug/usb/libusbscanner"
- einfo "and see bug #50934 for details."
- fi
-}
+++ /dev/null
-# Copyright 1999-2006 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-gfx/sane-backends/sane-backends-1.0.15.ebuild,v 1.13 2006/01/18 13:49:34 jer Exp $
-
-inherit eutils
-
-IUSE="usb gphoto2 ipv6"
-
-DESCRIPTION="Scanner Access Now Easy - Backends"
-HOMEPAGE="http://www.sane-project.org/"
-
-DEPEND=">=media-libs/jpeg-6b
- x86? ( sys-libs/libieee1284 )
- =sys-apps/sed-4*
- usb? ( dev-libs/libusb )
- gphoto2? ( media-libs/libgphoto2 )"
-
-BROTHERMFCDRIVER="sane-backends-1.0.15-brothermfc.patch"
-
-SRC_URI="ftp://ftp.mostang.com/pub/sane/${P}/${P}.tar.gz
- ftp://ftp.mostang.com/pub/sane/old-versions/${P}/${P}.tar.gz
- usb? ( mirror://gentoo/${BROTHERMFCDRIVER}.bz2 )"
-SLOT="0"
-LICENSE="GPL-2 public-domain"
-KEYWORDS="alpha amd64 hppa ppc ppc64 sparc x86"
-
-
-src_unpack() {
- unpack ${A}
- if use usb; then
- unpack ${BROTHERMFCDRIVER}.bz2
- fi
- cp ${FILESDIR}/linux_sg3_err.h ${S}/sanei
-
- cd ${S}
-
- epatch ${FILESDIR}/canoscan-focus.patch
-
- #only generate the .ps and not the fonts
- sed -i -e 's:$(DVIPS) sane.dvi -o sane.ps:$(DVIPS) sane.dvi -M1 -o sane.ps:' \
- doc/Makefile.in
- #compile errors when using NDEBUG otherwise
- sed -i -e 's:function_name:__FUNCTION__:g' backend/artec_eplus48u.c
- use usb && epatch ${WORKDIR}/${BROTHERMFCDRIVER}
- use usb && epatch ${FILESDIR}/libusbscanner-device-r1.patch
-}
-
-src_compile() {
- local myconf
- myconf="$(use_enable usb libusb) $(use_with gphoto2) $(use_enable ipv6)"
- ./configure --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --host=${CHOST} ${myconf} || die
- make || die
- if use usb; then
- cd tools/hotplug
- grep < libsane.usermap -v '^$' > libsane.usermap.new
- mv libsane.usermap.new libsane.usermap
- fi
-}
-
-src_install () {
-
-
- make prefix=${D}/usr \
- sysconfdir=${D}/etc \
- mandir=${D}/usr/share/man \
- docdir=${D}/usr/share/doc/${PF} \
- libdir=${D}/usr/$(get_libdir) \
- install || die
-
- if use usb; then
- cd tools/hotplug
- insinto /etc/hotplug/usb
- exeinto /etc/hotplug/usb
- doins libsane.usermap
- doexe libusbscanner
- newdoc README README.hotplug
- cd ../..
- fi
-
- docinto backend
- cd backend
- dodoc GUIDE *.README *.BUGS *.CHANGES *.FAQ *.TODO
-
- echo "SANE_CONFIG_DIR=/etc/sane.d" > 30sane
- insinto /etc/env.d
- doins 30sane
-
-}
-
-pkg_preinst() {
- enewgroup scanner
-}
-
-pkg_postinst() {
- if use usb; then
- einfo "There are some problems with the hotplug script when"
- einfo "restarting hotplug with some kernel versions."
- einfo "If you have trouble, please edit"
- einfo "/etc/hotplug/usb/libusbscanner"
- einfo "and see bug #50934 for details."
- fi
-}
+++ /dev/null
-# Copyright 1999-2006 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-gfx/sane-backends/sane-backends-1.0.18.ebuild,v 1.3 2006/07/28 09:12:14 phosphan Exp $
-
-inherit eutils
-
-IUSE="usb gphoto2 ipv6 v4l"
-
-DESCRIPTION="Scanner Access Now Easy - Backends"
-HOMEPAGE="http://www.sane-project.org/"
-
-RDEPEND=">=media-libs/jpeg-6b
- amd64? ( sys-libs/libieee1284 )
- x86? ( sys-libs/libieee1284 )
- usb? ( >=dev-libs/libusb-0.1.8 )
- gphoto2? ( media-libs/libgphoto2 )
- v4l? ( sys-kernel/linux-headers )"
-
-DEPEND="${RDEPEND}
- >=sys-apps/sed-4"
-
-BROTHERMFCPATCHVER="1.0.18"
-BROTHERMFCDRIVER="sane-${BROTHERMFCPATCHVER}-brother-driver.diff"
-
-# Could not access via ftp on 2006-07-20
-SRC_URI="http://alioth.debian.org/download.php/1669/sane-backends-1.0.18.tar.gz
- ftp://ftp.sane-project.org/pub/sane/${P}/${P}.tar.gz
- ftp://ftp.sane-project.org/pub/sane/old-versions/${P}/${P}.tar.gz
- usb? ( mirror://gentoo/${BROTHERMFCDRIVER}.bz2
- http://dev.gentoo.org/~phosphan/${BROTHERMFCDRIVER}.bz2 )"
-SLOT="0"
-LICENSE="GPL-2 public-domain"
-KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
-
-# To enable specific backends, define SANE_BACKENDS with the backends you want
-# in those:
-#
-# abaton agfafocus apple artec as6e avision bh brother canon
-# canon630u coolscan coolscan2 dc25 dmc
-# epson fujitsu genesys gt68xx hp leo lexmark matsushita microtek
-# microtek2 mustek mustek_usb nec pie pixma plustek
-# plustek_pp ricoh s9036 sceptre sharp
-# sp15c st400 tamarack test teco1 teco2 teco3 umax umax_pp umax1220u
-# artec_eplus48u ma1509 ibm hp5400 u12 snapscan niash sm3840 hp4200
-# sm3600 hp3500 stv680"
-
-# Note that some backends has specific dependencies which make the compilation
-# fail because not supported on your current platform.
-
-pkg_setup() {
- enewgroup scanner
-
- IEEE1284_BACKENDS="canon_pp hpsj5s mustek_pp"
-
- if [[ "${SANE_BACKENDS}" != "" ]]; then
- use gphoto2 && SANE_BACKENDS="${SANE_BACKENDS} gphoto2"
- use v4l && SANE_BACKENDS="${SANE_BACKENDS} v4l"
- use usb && SANE_BACKENDS="${SANE_BACKENDS} sm3600"
- fi
-
- if ! use x86 && ! use amd64; then
- tmp="${SANE_BACKENDS}"
- for backend in ${IEEE1284_BACKENDS}; do
- if [[ "${tmp/$backend/}" != "${SANE_BACKENDS}" ]]; then
- ewarn "You selected a backend which is disabled because it's not usable in your arch."
- fi
- done
- fi
-}
-
-src_unpack() {
- if [ -z "${SANE_BACKENDS}" ]; then
- einfo "You can use the variable SANE_BACKENDS to pick backends"
- einfo "instead of building all of them."
- fi
- unpack ${A}
- if use usb; then
- unpack ${BROTHERMFCDRIVER}.bz2
- fi
-
- cd ${S}
-
- #only generate the .ps and not the fonts
- sed -i -e 's:$(DVIPS) sane.dvi -o sane.ps:$(DVIPS) sane.dvi -M1 -o sane.ps:' \
- doc/Makefile.in
-
- if use usb; then
- epatch ${WORKDIR}/${BROTHERMFCDRIVER}
- sed -e 's/bh canon/bh brother canon/' -i configure || \
- die "could not add 'brother' to backend list"
- fi
-
-}
-
-src_compile() {
- SANEI_JPEG="sanei_jpeg.o" SANEI_JPEG_LO="sanei_jpeg.lo" \
- BACKENDS="${SANE_BACKENDS}" \
- econf \
- $(use_enable usb libusb) \
- $(use_with gphoto2) \
- $(use_enable ipv6) \
- ${myconf} || die "econf failed"
-
- emake || die
-
- if use usb; then
- cd tools/hotplug
- grep -v '^$' libsane.usermap > libsane.usermap.new
- mv libsane.usermap.new libsane.usermap
- fi
-}
-
-src_install () {
- make INSTALL_LOCKPATH="" DESTDIR="${D}" install \
- docdir=/usr/share/doc/${PF}
- keepdir /var/lib/lock/sane
- fowners root:scanner /var/lib/lock/sane
- fperms g+w /var/lib/lock/sane
- if use usb; then
- cd tools/hotplug
- insinto /etc/hotplug/usb
- exeinto /etc/hotplug/usb
- doins libsane.usermap
- doexe libusbscanner
- newdoc README README.hotplug
- cd ../..
- fi
-
- dodoc NEWS AUTHORS LICENSE ChangeLog* README README.linux
-
- echo "SANE_CONFIG_DIR=/etc/sane.d" > 30sane
- insinto /etc/env.d
- doins 30sane
-
-}