[sane-devel] CanoScan5000F backend project beginning soon...
m. allan noah
anoah@pfeiffer.edu
Thu, 24 Jun 2004 16:01:31 -0400 (EDT)
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.
--1386611826-263747728-1088107291=:13997
Content-Type: TEXT/PLAIN; charset=US-ASCII
asking for help on this list, and posting your sniffer logs up on the web
usually will get some helpful pointers, but you are going to have to do
most of the work, since you own the scanner.
the script that henning may have mentioned is called spike. you cant look
for it online. however, it only works with certain older versions of
usbsnoopy.
i have written a replacement for it, called spike4, which is attached to
this mail. spike4 understands benoit's usb sniffer (which i highly
recommend) logs. it is availible after a little googling as well.
allan
On Thu, 24 Jun 2004, Thibault North wrote:
> Good afternoon,
> As I said it some time ago, I am going to try and make the scanner Canon
> canoscan5000F work... This will begin probably beginning of July, as
> soon as my exams are done. I have then time to work with a friend which
> knows more C than I do :)
> I wanted to know if some of you where interested in helping us (if you
> have this scanner) or be available to answer our questions (using IRC ?)
> : we have never done a project like that and it is a little frightening :)
>
> If it is the case, please answer here of @ tnorth@bluewin.ch.
> An adress used to communicate : http://gna.org/projects/canoscan5000F
>
> Thanks !
>
> Thibault North
>
> P.S to Henning Meier-Geinitz : could you please send me the Perl script
> we spoke about which is able to filter the log file from SniffUSB ?
> Thank you very much,
>
> Here is the sane-find-scanner -v -v :
>
>
> searching for SCSI scanners:
> checking /dev/scanner... failed to open (Invalid argument)
> checking /dev/sg0... failed to open (Invalid argument)
> checking /dev/sg1... failed to open (Access to resource has been denied)
> checking /dev/sg2... failed to open (Access to resource has been denied)
> checking /dev/sg3... failed to open (Access to resource has been denied)
> checking /dev/sg4... failed to open (Access to resource has been denied)
> checking /dev/sg5... failed to open (Access to resource has been denied)
> checking /dev/sg6... failed to open (Access to resource has been denied)
> checking /dev/sg7... failed to open (Access to resource has been denied)
> checking /dev/sg8... failed to open (Access to resource has been denied)
> checking /dev/sg9... failed to open (Access to resource has been denied)
> checking /dev/sga... failed to open (Invalid argument)
> checking /dev/sgb... failed to open (Access to resource has been denied)
> checking /dev/sgc... failed to open (Access to resource has been denied)
> checking /dev/sgd... failed to open (Access to resource has been denied)
> checking /dev/sge... failed to open (Access to resource has been denied)
> checking /dev/sgf... failed to open (Access to resource has been denied)
> checking /dev/sgg... failed to open (Access to resource has been denied)
> checking /dev/sgh... failed to open (Access to resource has been denied)
> checking /dev/sgi... failed to open (Access to resource has been denied)
> checking /dev/sgj... failed to open (Access to resource has been denied)
> checking /dev/sgk... failed to open (Access to resource has been denied)
> checking /dev/sgl... failed to open (Access to resource has been denied)
> checking /dev/sgm... failed to open (Access to resource has been denied)
> checking /dev/sgn... failed to open (Access to resource has been denied)
> checking /dev/sgo... failed to open (Access to resource has been denied)
> checking /dev/sgp... failed to open (Access to resource has been denied)
> checking /dev/sgq... failed to open (Invalid argument)
> checking /dev/sgr... failed to open (Invalid argument)
> checking /dev/sgs... failed to open (Invalid argument)
> checking /dev/sgt... failed to open (Invalid argument)
> checking /dev/sgu... failed to open (Invalid argument)
> checking /dev/sgv... failed to open (Invalid argument)
> checking /dev/sgw... failed to open (Invalid argument)
> checking /dev/sgx... failed to open (Invalid argument)
> checking /dev/sgy... failed to open (Invalid argument)
> checking /dev/sgz... failed to open (Invalid argument)
> # No SCSI scanners found. If you expected something different, make
> sure that
> # you have loaded a SCSI driver for your SCSI adapter.
>
> searching for USB scanners:
> checking /dev/usb/scanner... failed to open (Invalid argument)
> checking /dev/usb/scanner0... failed to open (Invalid argument)
> checking /dev/usb/scanner1... failed to open (Invalid argument)
> checking /dev/usb/scanner2... failed to open (Invalid argument)
> checking /dev/usb/scanner3... failed to open (Invalid argument)
> checking /dev/usb/scanner4... failed to open (Invalid argument)
> checking /dev/usb/scanner5... failed to open (Invalid argument)
> checking /dev/usb/scanner5... failed to open (Invalid argument)
> checking /dev/usb/scanner7... failed to open (Invalid argument)
> checking /dev/usb/scanner8... failed to open (Invalid argument)
> checking /dev/usb/scanner9... failed to open (Invalid argument)
> checking /dev/usb/scanner10... failed to open (Invalid argument)
> checking /dev/usb/scanner11... failed to open (Invalid argument)
> checking /dev/usb/scanner12... failed to open (Invalid argument)
> checking /dev/usb/scanner13... failed to open (Invalid argument)
> checking /dev/usb/scanner14... failed to open (Invalid argument)
> checking /dev/usb/scanner15... failed to open (Invalid argument)
> checking /dev/usbscanner... failed to open (Invalid argument)
> checking /dev/usbscanner0... failed to open (Invalid argument)
> checking /dev/usbscanner1... failed to open (Invalid argument)
> checking /dev/usbscanner2... failed to open (Invalid argument)
> checking /dev/usbscanner3... failed to open (Invalid argument)
> checking /dev/usbscanner4... failed to open (Invalid argument)
> checking /dev/usbscanner5... failed to open (Invalid argument)
> checking /dev/usbscanner6... failed to open (Invalid argument)
> checking /dev/usbscanner7... failed to open (Invalid argument)
> checking /dev/usbscanner8... failed to open (Invalid argument)
> checking /dev/usbscanner9... failed to open (Invalid argument)
> checking /dev/usbscanner10... failed to open (Invalid argument)
> checking /dev/usbscanner11... failed to open (Invalid argument)
> checking /dev/usbscanner12... failed to open (Invalid argument)
> checking /dev/usbscanner13... failed to open (Invalid argument)
> checking /dev/usbscanner14... failed to open (Invalid argument)
> checking /dev/usbscanner15... failed to open (Invalid argument)
> trying libusb:
>
> <device descriptor of 0x0000/0x0000 at 004:001>
> bLength 18
> bDescriptorType 1
> bcdUSB 2.00
> bDeviceClass 9
> bDeviceSubClass 0
> bDeviceProtocol 1
> bMaxPacketSize0 8
> idVendor 0x0000
> idProduct 0x0000
> bcdDevice 2.04
> iManufacturer 3 ((null))
> iProduct 2 ((null))
> iSerialNumber 1 ((null))
> bNumConfigurations 1
> <configuration 0>
> bLength 9
> bDescriptorType 2
> wTotalLength 25
> bNumInterfaces 1
> bConfigurationValue 1
> iConfiguration 0 ()
> bmAttributes 64 (Self-powered)
> MaxPower 0 mA
> <interface 0>
> <altsetting 0>
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 0
> bAlternateSetting 0
> bNumEndpoints 1
> bInterfaceClass 9
> bInterfaceSubClass 0
> bInterfaceProtocol 0
> iInterface 0 ()
> <endpoint 0>
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x81 (in 0x01)
> bmAttributes 3 (interrupt)
> wMaxPacketSize 2
> bInterval 12 ms
> bRefresh 0
> bSynchAddress 0
>
> <device descriptor of 0x04a9/0x2212 at 004:002>
> bLength 18
> bDescriptorType 1
> bcdUSB 2.00
> bDeviceClass 255
> bDeviceSubClass 255
> bDeviceProtocol 255
> bMaxPacketSize0 64
> idVendor 0x04A9
> idProduct 0x2212
> bcdDevice 3.03
> iManufacturer 2 ((null))
> iProduct 3 ((null))
> iSerialNumber 1 ((null))
> bNumConfigurations 1
> <configuration 0>
> bLength 9
> bDescriptorType 2
> wTotalLength 39
> bNumInterfaces 1
> bConfigurationValue 1
> iConfiguration 0 ()
> bmAttributes 192 (Self-powered)
> MaxPower 10 mA
> <interface 0>
> <altsetting 0>
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 0
> bAlternateSetting 0
> bNumEndpoints 3
> bInterfaceClass 0
> bInterfaceSubClass 0
> bInterfaceProtocol 0
> iInterface 0 ()
> <endpoint 0>
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x81 (in 0x01)
> bmAttributes 2 (bulk)
> wMaxPacketSize 512
> bInterval 0 ms
> bRefresh 0
> bSynchAddress 0
> <endpoint 1>
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x02 (out 0x02)
> bmAttributes 2 (bulk)
> wMaxPacketSize 512
> bInterval 0 ms
> bRefresh 0
> bSynchAddress 0
> <endpoint 2>
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x83 (in 0x03)
> bmAttributes 3 (interrupt)
> wMaxPacketSize 1
> bInterval 8 ms
> bRefresh 0
> bSynchAddress 0
> found USB scanner (vendor=0x04a9, product=0x2212) at libusb:004:002
>
> <device descriptor of 0x0000/0x0000 at 003:001>
> bLength 18
> bDescriptorType 1
> bcdUSB 1.00
> bDeviceClass 9
> bDeviceSubClass 0
> bDeviceProtocol 0
> bMaxPacketSize0 8
> idVendor 0x0000
> idProduct 0x0000
> bcdDevice 0.00
> iManufacturer 0 ()
> iProduct 2 ((null))
> iSerialNumber 1 ((null))
> bNumConfigurations 1
> <configuration 0>
> bLength 9
> bDescriptorType 2
> wTotalLength 25
> bNumInterfaces 1
> bConfigurationValue 1
> iConfiguration 0 ()
> bmAttributes 64 (Self-powered)
> MaxPower 0 mA
> <interface 0>
> <altsetting 0>
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 0
> bAlternateSetting 0
> bNumEndpoints 1
> bInterfaceClass 9
> bInterfaceSubClass 0
> bInterfaceProtocol 0
> iInterface 0 ()
> <endpoint 0>
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x81 (in 0x01)
> bmAttributes 3 (interrupt)
> wMaxPacketSize 8
> bInterval 255 ms
> bRefresh 0
> bSynchAddress 0
>
> <device descriptor of 0x0000/0x0000 at 002:001>
> bLength 18
> bDescriptorType 1
> bcdUSB 1.00
> bDeviceClass 9
> bDeviceSubClass 0
> bDeviceProtocol 0
> bMaxPacketSize0 8
> idVendor 0x0000
> idProduct 0x0000
> bcdDevice 0.00
> iManufacturer 0 ()
> iProduct 2 ((null))
> iSerialNumber 1 ((null))
> bNumConfigurations 1
> <configuration 0>
> bLength 9
> bDescriptorType 2
> wTotalLength 25
> bNumInterfaces 1
> bConfigurationValue 1
> iConfiguration 0 ()
> bmAttributes 64 (Self-powered)
> MaxPower 0 mA
> <interface 0>
> <altsetting 0>
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 0
> bAlternateSetting 0
> bNumEndpoints 1
> bInterfaceClass 9
> bInterfaceSubClass 0
> bInterfaceProtocol 0
> iInterface 0 ()
> <endpoint 0>
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x81 (in 0x01)
> bmAttributes 3 (interrupt)
> wMaxPacketSize 8
> bInterval 255 ms
> bRefresh 0
> bSynchAddress 0
>
> <device descriptor of 0x0000/0x0000 at 001:001>
> bLength 18
> bDescriptorType 1
> bcdUSB 1.00
> bDeviceClass 9
> bDeviceSubClass 0
> bDeviceProtocol 0
> bMaxPacketSize0 8
> idVendor 0x0000
> idProduct 0x0000
> bcdDevice 0.00
> iManufacturer 0 ()
> iProduct 2 ((null))
> iSerialNumber 1 ((null))
> bNumConfigurations 1
> <configuration 0>
> bLength 9
> bDescriptorType 2
> wTotalLength 25
> bNumInterfaces 1
> bConfigurationValue 1
> iConfiguration 0 ()
> bmAttributes 64 (Self-powered)
> MaxPower 0 mA
> <interface 0>
> <altsetting 0>
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 0
> bAlternateSetting 0
> bNumEndpoints 1
> bInterfaceClass 9
> bInterfaceSubClass 0
> bInterfaceProtocol 0
> iInterface 0 ()
> <endpoint 0>
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x81 (in 0x01)
> bmAttributes 3 (interrupt)
> wMaxPacketSize 8
> bInterval 255 ms
> bRefresh 0
> bSynchAddress 0
>
> <device descriptor of 0x046d/0xc00e at 001:002>
> bLength 18
> bDescriptorType 1
> bcdUSB 2.00
> bDeviceClass 0
> bDeviceSubClass 0
> bDeviceProtocol 0
> bMaxPacketSize0 8
> idVendor 0x046D
> idProduct 0xC00E
> bcdDevice 17.10
> iManufacturer 1 ((null))
> iProduct 2 ((null))
> iSerialNumber 0 ()
> bNumConfigurations 1
> <configuration 0>
> bLength 9
> bDescriptorType 2
> wTotalLength 34
> bNumInterfaces 1
> bConfigurationValue 1
> iConfiguration 0 ()
> bmAttributes 160 (Remote Wakeup)
> MaxPower 98 mA
> <interface 0>
> <altsetting 0>
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 0
> bAlternateSetting 0
> bNumEndpoints 1
> bInterfaceClass 3
> bInterfaceSubClass 1
> bInterfaceProtocol 2
> iInterface 0 ()
> <endpoint 0>
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x81 (in 0x01)
> bmAttributes 3 (interrupt)
> wMaxPacketSize 4
> bInterval 10 ms
> bRefresh 0
> bSynchAddress 0
>
> <device descriptor of 0x413c/0x8000 at 001:003>
> bLength 18
> bDescriptorType 1
> bcdUSB 1.10
> bDeviceClass 224
> bDeviceSubClass 1
> bDeviceProtocol 1
> bMaxPacketSize0 64
> idVendor 0x413C
> idProduct 0x8000
> bcdDevice 5.65
> iManufacturer 0 ()
> iProduct 0 ()
> iSerialNumber 0 ()
> bNumConfigurations 1
> <configuration 0>
> bLength 9
> bDescriptorType 2
> wTotalLength 193
> bNumInterfaces 3
> bConfigurationValue 1
> iConfiguration 0 ()
> bmAttributes 224 (Self-poweredRemote Wakeup)
> MaxPower 0 mA
> <interface 0>
> <altsetting 0>
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 0
> bAlternateSetting 0
> bNumEndpoints 3
> bInterfaceClass 224
> bInterfaceSubClass 1
> bInterfaceProtocol 1
> iInterface 0 ()
> <endpoint 0>
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x81 (in 0x01)
> bmAttributes 3 (interrupt)
> wMaxPacketSize 16
> bInterval 1 ms
> bRefresh 0
> bSynchAddress 0
> <endpoint 1>
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x02 (out 0x02)
> bmAttributes 2 (bulk)
> wMaxPacketSize 64
> bInterval 1 ms
> bRefresh 0
> bSynchAddress 0
> <endpoint 2>
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x82 (in 0x02)
> bmAttributes 2 (bulk)
> wMaxPacketSize 64
> bInterval 1 ms
> bRefresh 0
> bSynchAddress 0
> <interface 1>
> <altsetting 0>
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 1
> bAlternateSetting 0
> bNumEndpoints 2
> bInterfaceClass 224
> bInterfaceSubClass 1
> bInterfaceProtocol 1
> iInterface 0 ()
> <endpoint 0>
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x03 (out 0x03)
> bmAttributes 1 (isochronous)
> wMaxPacketSize 0
> bInterval 1 ms
> bRefresh 0
> bSynchAddress 0
> <endpoint 1>
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x83 (in 0x03)
> bmAttributes 1 (isochronous)
> wMaxPacketSize 0
> bInterval 1 ms
> bRefresh 0
> bSynchAddress 0
> <altsetting 1>
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 1
> bAlternateSetting 0
> bNumEndpoints 2
> bInterfaceClass 224
> bInterfaceSubClass 1
> bInterfaceProtocol 1
> iInterface 0 ()
> <endpoint 0>
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x03 (out 0x03)
> bmAttributes 1 (isochronous)
> wMaxPacketSize 0
> bInterval 1 ms
> bRefresh 0
> bSynchAddress 0
> <endpoint 1>
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x83 (in 0x03)
> bmAttributes 1 (isochronous)
> wMaxPacketSize 0
> bInterval 1 ms
> bRefresh 0
> bSynchAddress 0
> <altsetting 2>
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 1
> bAlternateSetting 0
> bNumEndpoints 2
> bInterfaceClass 224
> bInterfaceSubClass 1
> bInterfaceProtocol 1
> iInterface 0 ()
> <endpoint 0>
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x03 (out 0x03)
> bmAttributes 1 (isochronous)
> wMaxPacketSize 0
> bInterval 1 ms
> bRefresh 0
> bSynchAddress 0
> <endpoint 1>
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x83 (in 0x03)
> bmAttributes 1 (isochronous)
> wMaxPacketSize 0
> bInterval 1 ms
> bRefresh 0
> bSynchAddress 0
> <altsetting 3>
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 1
> bAlternateSetting 0
> bNumEndpoints 2
> bInterfaceClass 224
> bInterfaceSubClass 1
> bInterfaceProtocol 1
> iInterface 0 ()
> <endpoint 0>
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x03 (out 0x03)
> bmAttributes 1 (isochronous)
> wMaxPacketSize 0
> bInterval 1 ms
> bRefresh 0
> bSynchAddress 0
> <endpoint 1>
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x83 (in 0x03)
> bmAttributes 1 (isochronous)
> wMaxPacketSize 0
> bInterval 1 ms
> bRefresh 0
> bSynchAddress 0
> <altsetting 4>
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 1
> bAlternateSetting 0
> bNumEndpoints 2
> bInterfaceClass 224
> bInterfaceSubClass 1
> bInterfaceProtocol 1
> iInterface 0 ()
> <endpoint 0>
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x03 (out 0x03)
> bmAttributes 1 (isochronous)
> wMaxPacketSize 0
> bInterval 1 ms
> bRefresh 0
> bSynchAddress 0
> <endpoint 1>
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x83 (in 0x03)
> bmAttributes 1 (isochronous)
> wMaxPacketSize 0
> bInterval 1 ms
> bRefresh 0
> bSynchAddress 0
> <altsetting 5>
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 1
> bAlternateSetting 0
> bNumEndpoints 2
> bInterfaceClass 224
> bInterfaceSubClass 1
> bInterfaceProtocol 1
> iInterface 0 ()
> <endpoint 0>
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x03 (out 0x03)
> bmAttributes 1 (isochronous)
> wMaxPacketSize 0
> bInterval 1 ms
> bRefresh 0
> bSynchAddress 0
> <endpoint 1>
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x83 (in 0x03)
> bmAttributes 1 (isochronous)
> wMaxPacketSize 0
> bInterval 1 ms
> bRefresh 0
> bSynchAddress 0
> <interface 2>
> <altsetting 0>
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 2
> bAlternateSetting 0
> bNumEndpoints 0
> bInterfaceClass 254
> bInterfaceSubClass 1
> bInterfaceProtocol 0
> iInterface 0 ()
> # Your USB scanner was (probably) detected. It may or may not be
> supported by
> # SANE. Try scanimage -L and read the backend's manpage.
>
> # Scanners connected to the parallel port or other proprietary ports
> can't be
> # detected by this program.
>
> # You may want to run this program as root to find all devices. Once you
> # found the scanner devices, be sure to adjust access permissions as
> # necessary.
> done
>
>
>
--
"so don't tell us it can't be done, putting down what you don't know.
money isn't our god, integrity will free our souls" - Max Cavalera
--1386611826-263747728-1088107291=:13997
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="spike4.pl"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.58.0406241601310.13997@thanatos.pfeiffer.edu>
Content-Description:
Content-Disposition: attachment; filename="spike4.pl"
IyEgL3Vzci9iaW4vcGVybA0KDQojIHNpbXBsZSBsb2cgcmVmb3JtYXR0ZXIg
Zm9yIGJlbm9pdCdzIHNuaWZmdXNiLmV4ZQ0KIyBwdWJsaWMgZG9tYWluLiBi
eSBhbm9haEBwZmVpZmZlci5lZHUNCg0KdXNlIHN0cmljdDsNCg0KbXkgJGNv
dW50PTA7DQpteSAkbGFzdFVyYkxUaW1lPTA7DQpteSBAYnVmZmVyOw0KDQp3
aGlsZSAobXkgJGxpbmUgPSA8U1RESU4+KSB7DQoNCiAgICAgICAgaWYgKCAk
bGluZSA9fiBtLz4+Pi8gKSB7DQogICAgICAgICAgICBkdW1wZXIoQGJ1ZmZl
cikgaWYgJGNvdW50Ow0KICAgICAgICAgICAgQGJ1ZmZlciA9ICgpOw0KICAg
ICAgICAgICAgJGNvdW50Kys7DQogICAgICAgIH0NCiAgICAgICAgaWYgKCAk
bGluZSA9fiBtL1VzYlNub29wLyApe25leHQ7fQ0KICAgICAgICBwdXNoKEBi
dWZmZXIsJGxpbmUpOw0KDQp9DQpkdW1wZXIoQGJ1ZmZlcikgaWYgJGNvdW50
Ow0KDQpzdWIgZHVtcGVyIHsNCg0KICAgIG15ICRkaXI9J291dCc7DQogICAg
bXkgJHR5cGU9J0MnOw0KICAgIG15ICRkYXRhPSgpOw0KICAgIG15ICR1cmI9
MDsNCiAgICBteSAkZXA9Jyc7DQogICAgbXkgJGZUaW1lPTA7DQogICAgbXkg
JGxUaW1lPTA7DQoNCiAgICBmb3JlYWNoIG15ICRsaW5lIChAXykgew0KDQog
ICAgICAgIGlmKCRsaW5lID1+IG0vXFsoXGQrKSBtc1xdIC4qIFVSQiAoXGQr
KSBnb2luZyBkb3duLyl7DQogICAgICAgICAgJGZUaW1lPSQxOw0KICAgICAg
ICAgICR1cmI9JDI7DQogICAgICAgICAgcHJpbnQgIlxucGF1c2UgIiAuICgk
ZlRpbWUtJGxhc3RVcmJMVGltZSkgLiAiIG1zXG5cbiI7DQogICAgICAgIH0N
CiAgICAgICAgZWxzaWYgKCAkbGluZSA9fiBtL1VTQkRfVFJBTlNGRVJfRElS
RUNUSU9OX0lOLyApIHsNCiAgICAgICAgICAkZGlyPSdpbic7DQogICAgICAg
ICAgJGRhdGE9KCk7DQogICAgICAgIH0NCiAgICAgICAgZWxzaWYgKCAkbGlu
ZSA9fiBtLy0tIFVSQl9GVU5DVElPTl9CVUxLX09SX0lOVEVSUlVQVF9UUkFO
U0ZFUi8gKSB7DQogICAgICAgICAgJHR5cGU9J0InOw0KICAgICAgICB9DQog
ICAgICAgIGVsc2lmKCAkbGluZSA9fiBtL1BpcGVIYW5kbGUuKmVuZHBvaW50
ICgweFxkKykvKXsNCiAgICAgICAgICAkZXA9JDE7DQogICAgICAgIH0NCiAg
ICAgICAgZWxzaWYgKCAkbGluZSA9fiBtIC8gIChbMC05YS1mXXs4fTogKShb
MC05YS1mIF0qKS8gKSB7DQogICAgICAgICAgcHVzaChAeyRkYXRhfSwgJDEg
LiAkMik7DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoICRsaW5lID1+IG0v
XFsoXGQrKSBtc1xdLyApew0KICAgICAgICAgICRsVGltZT0kMTsNCiAgICAg
ICAgfQ0KDQogICAgICAgICRlcD1+cy9eMHgwKy8vOw0KICAgIH0NCg0KICAg
IGlmKCRkaXIgZXEgJ2luJyl7DQogICAgICAgIHByaW50ICJVcmIgJHVyYiAo
JHR5cGUpIGVwPSRlcCAocmVhZCkgIjsNCiAgICB9DQogICAgZWxzZXsNCiAg
ICAgICAgcHJpbnQgIlVyYiAkdXJiICgkdHlwZSkgZXA9JGVwICh3cml0ZSkg
IjsNCiAgICB9DQogICAgcHJpbnQgJGxUaW1lLSRmVGltZSAuICIgbXNcbiI7
DQoNCiAgICBmb3JlYWNoIG15ICRsaW5lIChAeyRkYXRhfSkgew0KICAgICAg
ICAgICAgcHJpbnRmKCIgJXMiLCAkbGluZSk7DQogICAgICAgICAgICBwcmlu
dCAiXG4iOw0KICAgIH0NCg0KICAgICRsYXN0VXJiTFRpbWU9JGxUaW1lOw0K
DQp9DQoNCmV4aXQgMDsNCg==
--1386611826-263747728-1088107291=:13997--