__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
�

���gR��*�SSKrSSKrSSKrSSK7 SSKJr SSKJr SSKJ	r	 \R"S5rSr\RS\RS	\RS
\R S\R"S\R$S
0r\R(S\R*S\R,S\R.S\R0S\R2S\R4S0rSr"SS5r"SS5r"SS\R>5r Sr!Sr"Sr#S!Sjr$S r%g)"�N)�*)�utils��
to_bytes_utf8)�queue�scanext��	TYPE_BOOL�TYPE_INT�
TYPE_FIXED�TYPE_STRING�TYPE_BUTTON�
TYPE_GROUP�	UNIT_NONE�
UNIT_PIXEL�UNIT_BIT�UNIT_MM�UNIT_DPI�UNIT_PERCENT�UNIT_MICROSECONDic�6�\rSrSrSrSrSrSrSrSr	Sr
g	)
�Option�VaClass representing a SANE option.
Attributes:
index -- number from 0 to n, giving the option number
name -- a string uniquely identifying the option
title -- single-line string containing a title for the option
desc -- a long string describing the option; useful as a help message
type -- type of this option.  Possible values: TYPE_BOOL,
        TYPE_INT, TYPE_STRING, and so forth.
unit -- units of this option.  Possible values: UNIT_NONE,
        UNIT_PIXEL, etc.
size -- size of the value in bytes
cap -- capabilities available; CAP_EMULATED, CAP_SOFT_SELECT, etc.
constraint -- constraint on values.  Possible values:
    None : No constraint
    (min,max,step)  Integer values, from min to max, stepping by
    list of integers or strings: only the listed values are allowed
c
��SSKnX lUu	UlUlUlUlUlUlUlUl	Ul
[
UR5[
S5:wa[UR5Ulgg)Nr�)�string�
cur_device�index�name�title�desc�type�unit�size�cap�
constraint�str)�self�argsrrs    �/usr/share/hplip/scan/sane.py�__init__�Option.__init__isb���$��?C�	<��
�D�I�t�z�4�9�d�i��I�t�y�$�(�D�O���	�	�?�d�2�h�&��D�I�I��D�I�'�c�@�[RUR5$�N)r�isOptionActiver%�r(s r*�isActive�Option.isActivess���%�%�d�h�h�/�/r-c�@�[RUR5$r/)r�isOptionSettabler%r1s r*�
isSettable�Option.isSettablevs���'�'����1�1r-c�|�UR5(aSnOSnUR5(a(SnURRUR5nOSnSnSURUUR
URUR[UR[URURX!4
-$)N�yes�noz <not available, inactive option>z�
Name:      %s
Cur value: %s
Index:     %d
Title:     %s
Desc:      %s
Type:      %s
Unit:      %s
Constr:    %s
isActive:    %s
isSettable:  %s
)r6r2r�	getOptionrrr r!�TYPE_STRr"�UNIT_STRr#r&�s)r(�settable�active�curValues    r*�__repr__�Option.__repr__ys����?�?����H��H��=�=�?�?��F����0�0����;�H��F�9�H�	��	�	�8��j�j�$�*�*�d�i�i��t�y�y�)�8�D�I�I�+>��o�o�v�9�9�	9r-c	�8�UGb�URGb�[UR5[S5:Xa�XRS:a?URSn[RSURURX4-5 OPXRS:�a>URSn[RSURURX4-5 UR
R
URU5 U$[UR5[/5:Xa�XR;a�URSn[RnURH%n[X-
5U:dM[X-
5nUnM' [RSURURUSRUR5U4-5 UR
R
URU5 U$UR
RUR5nU$)N�rz6Invalid value for %s (%s < min value of %d). Using %d.r	z6Invalid value for %s (%s > max value of %d). Using %d.z?Invalid value for %s (%s not in constraint list: %s). Using %d.z, )r&r"�log�warnrr�	setOption�sys�maxsize�abs�joinr;)r(�value�v�min_dist�xs     r*�limitAndSet�Option.limitAndSet�s��������!<��D�O�O�$��R��0��?�?�1�-�-� �O�O�A�.�E��H�H�U����D�I�I�u�<�=�>��_�_�Q�/�/� �O�O�A�.�E��H�H�U����D�I�I�u�<�=�>����)�)�$�)�)�U�;�&��#�d�o�o�&�$�r�(�2����/�����*�A�"�{�{�H�!�_�_���u�w�<�(�2�'*�5�7�|�H� !�A�-�
�H�H�^����D�I�I�u�d�i�i����6P�RS�T�U�V��O�O�-�-�d�i�i��;�
���O�O�-�-�d�i�i�8�E��r-)
r%r&rr!rrr$r r"r#N)�__name__�
__module__�__qualname__�__firstlineno__�__doc__r+r2r6rBrQ�__static_attributes__rEr-r*rrVs ���$'�0�2��: r-rc�v�\rSrSrSrSrSrSrSrSr	Sr
S	rSSjrSr
S
rSrSrSrSrSrSrg
)�
ScanDevice��a�Class representing a SANE device.
Methods:
startScan()    -- initiate a scan, using the current settings
cancelScan()   -- cancel an in-progress scanning operation

Also available, but rather low-level:
getParameters() -- get the current parameter settings of the device
getOptions()    -- return a list of tuples describing all the options.

Attributes:
optlist -- list of option names

You can also access an option name to retrieve its value, and to
set it.  For example, if one option has a .name attribute of
imagemode, and scanner is a ScanDevice object, you can do:
     print scanner.imagemode
     scanner.imagemode = 'Full frame'
     scanner.['imagemode'] returns the corresponding Option object.
c�t�SUl[RU5Ul0UlUR5 gr/)�scan_threadr�
openDevice�dev�options�_ScanDevice__load_options_dict)r(r_s  r*r+�ScanDevice.__init__�s/������%�%�c�*������� � �"r-c���URnURR5nUH<n[X05nUR[
R:wdM.XAUR'M> gr/)r`r_�
getOptionsrr"rrr)r(�opts�opt_list�t�os     r*�__load_options_dict�ScanDevice.__load_options_dict�sM���|�|���8�8�&�&�(���A��q��A��v�v��+�+�+� �Q�V�V��	r-c�8�URnX;aX#U'gX1nUR[R:Xa[RSU-5 [R
UR5(d[RSU-5 [RUR5(d[RSU-5 [U5[:Xa)UR[R:Xa[U5nURRURU5UlUR[R -(aUR#5 gg![R
a  [RSU<SU<35 gf=f)NzGroups can't be set: %s�Inactive option: %sz#Option can't be set by software: %szUnable to set option z
 to value )r`r"rrrF�errorr0r%r5�intr�floatr_rHr�last_opt�INFO_RELOAD_OPTIONSra)r(�keyrMre�opts     r*rH�ScanDevice.setOption�s(���|�|���?���I���i���8�8�w�)�)�)��I�I�/�#�5�6��%�%�c�g�g�.�.��I�I�+�c�1�2��'�'����0�0��I�I�;�c�A�B���;�#��#�(�(�g�.@�.@�"@��%�L�E�	� �H�H�.�.�s�y�y�%�@�D�M��=�=�7�6�6�6��$�$�&�7���}�}�	��I�I�s�E�J�K��	�s�+E%�%1F�Fc��URnUS:Xa[UR55$US:XaUSUS4USUS44$X;a[SU-5eX!nUR[
R:Xa[SU-5eUR[
R:Xa[S	U-5e[
RUR5(d[S
U-5eURRUR5$)N�optlist�areaztl-xztl-yzbr-xzbr-yzNo such attribute: %szButtons don't have values: %szGroups don't have values: %s rl)
r`�list�keys�AttributeErrorr"rrrr0r%r_r;r)r(rrrerss    r*r;�ScanDevice.getOptions����|�|���)����	�	��$�$��&�=���L�$�v�,�/�$�v�,��V��1M�M�M��?� �!8�3�!>�?�?��i���8�8�w�*�*�*� �!@�3�!F�G�G��8�8�w�)�)�)� �!@�3�!F�G�G��%�%�c�g�g�.�.� �!6��!<�=�=��x�x�!�!�#�)�)�,�,r-c�.�URnX;aX!$gr/)r`)r(rrres   r*�getOptionObj�ScanDevice.getOptionObj5s���|�|���;��9��r-c�6�URR5$)a�Return a 6-tuple holding all the current device settings:
(format, format_name, last_frame, (pixels_per_line, lines), depth, bytes_per_line)

 - format is the SANE frame type
 - format is one of 'grey', 'color' (RGB), 'red', 'green', 'blue'.
 - last_frame [bool] indicates if this is the last frame of a multi frame image
 - (pixels_per_line, lines) specifies the size of the scanned image (x,y)
 - lines denotes the number of scanlines per frame
 - depth gives number of pixels per sample
)r_�
getParametersr1s r*r��ScanDevice.getParameters;s���x�x�%�%�'�'r-c�6�URR5$)z<Return a list of tuples describing all the available options)r_rdr1s r*rd�ScanDevice.getOptionsI����x�x�"�"�$�$r-Nc���UR5(d�URR5nURR5uUlUlUlUlUlUl	Ul
[URXU5UlSURl
URR5 SURUR-U4$SS[R 4$)z=
Perform a scan with the current device.
Calls sane_start().
TFr)�isScanActiver_�	startScanr��format�format_name�
last_frame�pixels_per_line�lines�depth�bytes_per_line�
ScanThreadr]�scan_active�startr�SANE_STATUS_DEVICE_BUSY)r(�byte_format�update_queue�event_queue�statuss     r*r��ScanDevice.startScanNs���
� � �"�"��X�X�'�'�)�F�:>�(�(�:P�:P�:R�
8�D�K��)�4�?�D�<P��J��
�D�$7�)�$�(�(�K�{�[�D��+/�D���(����"�"�$�����d�&9�&9�9�6�A�A��!�W�<�<�<�<r-c�6�URR5$)z)Cancel an in-progress scanning operation.)r_�
cancelScanr1s r*r��ScanDevice.cancelScanar�r-c
�&�UR5(d|URnURURURUR
URURURURURUR4
$g)z6Get the output buffer and info about a completed scan.N)r�r]�bufferr�r�r�r�r�r��	pad_bytes�
total_read�total_write�r(r>s  r*�getScan�ScanDevice.getScanfso��� � �"�"�� � �A��8�8�Q�X�X�q�}�}�a�6G�6G�������!�"2�"2�A�K�K����q�}�}�]�
]�#r-c���UR5(dHURnURR5 [R
"UR5 gg![[4a gf=f)z-Cleanup the scan file after a completed scan.N)	r�r]r��close�os�remove�buffer_path�IOErrorrzr�s  r*�freeScan�ScanDevice.freeScanos]��� � �"�"�� � �A�
������ ��	�	�!�-�-�(�#���^�,�
��
�s�:A�A2�1A2c��URb7URR5=(a URR$g)NF)r]�is_aliver�r1s r*r��ScanDevice.isScanActive{s7�����'��#�#�,�,�.�O�4�3C�3C�3O�3O�O�r-c���URbXURR5(a8URR(aURR5 gggg![a gf=fr/)r]r�r�rL�KeyboardInterruptr1s r*�waitForScanDone�ScanDevice.waitForScanDone�sl�����'����%�%�'�'����(�(�
�� � �%�%�'�
)�
(�(��%�
��
�s�	A'�'
A4�3A4c���URbTURR5(aURR(ag[R"S5 MSg)N皙�����?)r]r�r��time�sleepr1s r*�waitForScanActive�ScanDevice.waitForScanActive�sO�����'���#�#�,�,�.�.��$�$�0�0���
�
�3���(r-c�8�URR5 g)z#Close the SANE device after a scan.N)r_�	closeScanr1s r*r��ScanDevice.closeScan�s�������r-)r�r�r_r�r�r�rpr�r`r�r]��BGRANN)rSrTrUrVrWr+rarHr;r}r�rdr�r�r�r�r�r�r�r�rXrEr-r*rZrZ�sT���(#�!�'�B-�4�(�%�
=�&%�
]�	���
 �$r-rZc�0�\rSrSrSSjrSrSrSrSrg)	r�i�Nc��[RRU5 SUlXlX0lX@l[R"SS9uUl	Ul
[R"URS5Ul
SUlSUlSUlSUlSUlSUlSUlSUlSUlX lSUlg)NT�hpscan)�prefixzw+b���rr)�	threading�Threadr+r�r_r�r�r�make_temp_file�	buffer_fdr�r��fdopenr�r�r�r�r�r�r�r�r�r�r�r�)r(�devicer�r�r�s     r*r+�ScanThread.__init__�s������!�!�$�'������(��&��+0�+?�+?�x�+P�(����(��i�i�����6������������!�����
���
� ���������&����r-c��URb)[U5nURR	X45 gg![[4a SnN2f=f)Nr�)r�rn�
ValueError�	TypeError�put)r(r��
bytes_reads   r*�updateQueue�ScanThread.updateQueue�sU�����(�
��V���
���!�!�6�"6�7�
)���	�*�
���
�s�8�A
�A
c�f�SSKJn URR5uUlUlUlUlUlUl	Ul
[RSUR-5 [RSUR
-5 [RSUR-5 [RSUR-5 [RSUR-5 [RSUR-5 [RS	UR-5 [RS
UR-5 URRnURnUR[ R":XGa�URS:XGa�URSUR--
Ul[RS
UR$-5 SnURS:XaSnURR'U5upVU[ R.:XGa7W(a�[1U5nU"SR3[5SX�R$-
S5V	s/sHo�X�S-U2S-PM sn	55 U=R6U-
slU=R8X�UR$-
S---
slUR-XPR65 [RSUR6-5 O[:R<"S5 URR'U5upVUR?5(aGO�U[ R.:XaGM7GO�UR[ R@:XGa�URS:XGa�URURS-S--
Ul[RS
UR$-5 URR'U5upVU[ R.:XGadW(a�[1U5nU"SR3[5SX�R$-
5V	V
s/sH>n	SR3SV
s/sHo�[CXiU	S-5-(aSOSPM  sn
5PM@ sn
n	55 U=R6U-
slU=R8X�R$-
S--
slUR-XPR65 [RSUR6-5 O[:R<"S5 URR'U5upVUR?5(aGO�U[ R.:XaGMdGO�URS:XGa�URUR-
Ul[RS
UR$-5 URR'U5upVU[ R.:XGa3W(a�[1U5nU"SR3[5SX�R$-
5V	s/sHn	SXiU	S--S-PM sn	55 U=R6U-
slU=R8X�R$-
S--
slUR-XPR65 [RSUR6-5 O[:R<"S5 URR'U5upVUR?5(aOU[ R.:XaGM3URRES5 SUl#[RS5 g![ R(a,nUR*SnUR-US5 SnAGN�SnAff=fs sn	f![ R(a5nUR*SnUR-XPR65 SnAM�SnAff=f![ R(a,nUR*SnUR-US5 SnAGN9SnAff=fs sn
fs sn
n	f![ R(a6nUR*SnUR-XPR65 SnAGM_SnAff=f![ R(a,nUR*SnUR-US5 SnAGN�SnAff=fs sn	f![ R(a6nUR*SnUR-XPR65 SnAGM�SnAff=f)Nrrz	format=%dzformat_name=%sz
last_frame=%dzppl=%dzlines=%dzdepth=%dzbpl=%dzbyte_format=%s��zpad_bytes=%dr��RGBAr	r-��zColor Read %d bytesr��)��@� �r���r	s�s����r�zLineart Read %d bytesr�zGray Read %d bytesFzScan thread exiting...)$�base.sixextrr_r�r�r�r�r�r�r�r�rF�debugr�r��writer�	FRAME_RGBr��readScanrmr)r��SANE_STATUS_GOOD�lenrL�ranger�r�r�r��checkCancel�
FRAME_GRAY�ord�seekr�)r(r�w�
readbuffer�dir�strg�stObj�len_tr�ks           r*�run�ScanThread.run�sT��-�;?�(�(�:P�:P�:R�	8���T�%�t���8L��J��
�D�$7��	�	�+����+�,��	�	�"�T�%5�%5�5�6��	�	�/�D�O�O�3�4��	�	�(�T�1�1�1�2��	�	�*�t�z�z�)�*��	�	�*�t�z�z�)�*��	�	�(�T�0�0�0�1��	�	�"�T�%5�%5�5�6��K�K�����(�(�
��;�;�'�+�+�+��z�z�Q��!%�!4�!4�q�4�;O�;O�7O�!O����	�	�.�4�>�>�9�:����#�#�v�-��C�,� �H�H�-�-�j�9�E�B�
�G�4�4�4�� #�A����#�(�(�PU�VW�X]�`n�`n�Xn�op�Pq�#r�Pq�u�e�!�G�C�&7�$8�7�$B�Pq�#r�s�t����5�0���(�(�U�D�N�N�4J�A�3M�-M�M�(��(�(��_�_�=��	�	�"7�$�/�/�"I�J��
�
�3��� $��� 1� 1�*� =����'�'�)�)��)�G�4�4�4��,�[�[�G�.�.�
.��z�z�Q��!%�!4�!4��8L�8L�q�8P�UV�7V�!V����	�	�.�4�>�>�9�:�,� �H�H�-�-�j�9�E�B�
�G�4�4�4�� #�A����#�(�(�~C�DE�GL�O]�O]�G]�~^�$_�~^�uz�C�H�H�Bn�.o�Bn�|}��Q�UZ�[\�U\�M]�I^�E^�.A�dw�.w�Bn�.o�%p�~^�$_�`�a����5�0���(�(�e�n�n�.D��-J�K�(��(�(��_�_�=��	�	�"9�D�O�O�"K�L��
�
�3��� $��� 1� 1�*� =����'�'�)�)��'�G�4�4�4��(���q��!%�!4�!4�t�7K�7K�!K����	�	�.�4�>�>�9�:�,� �H�H�-�-�j�9�E�B��G�4�4�4�� #�A����#�(�(�e�TU�W\�_m�_m�Wm�Nn�#o�Nn�U�A�a�e�A�g�&6�$6��$@�Nn�#o�p�q����5�0���(�(�e�~�~�.E��-J�K�(��(�(��_�_�=��	�	�"6����"H�I��
�
�3��� $��� 1� 1�*� =����'�'�)�)��'�G�4�4�4�,	
������� ����	�	�*�+��y�}�}�,����A��B��$�$�R��+�+��,��$s��#�=�=��"�Z�Z��]���(�(��_�_�=�����"�}�}�,����A��B��$�$�R��+�+��,��.o��$_��#�=�=��"�Z�Z��]���(�(��_�_�=������}�}�,����A��B��$�$�R��+�+��,��$p��#�=�=��"�Z�Z��]���(�(��_�_�=����s��]/�2^2�$^7�(`�a�)%a�a�3a�b�=c!�-c&�/^/�!^*�*^/�7`�*_;�;`�a�!`>�>a�a�b�%*b�b�c�2!c�c�&d0�:*d+�+d0c�n�SnURR5(axURRS5nU[:Xa1Sn[RS5 URR5 URR5(aMxU$![Ra U$f=f)NFrTzCancel pressed!)
r��qsize�get�EVENT_SCAN_CANCELEDrFr�r_�	canclScanr�Empty)r(�canceled�events   r*r��ScanThread.checkCancelDs��������$�$�&�&�	
��(�(�,�,�Q�/���/�/�#�H��I�I�/�0��H�H�&�&�(�
���$�$�&�&�����;�;�
����
�s�AB�B4�3B4)r�r�r�r�r�r�r_r�r�r�r�r�r�r�r�r�r�r�r�)	rSrTrUrVr+r�r�r�rXrEr-r*r�r��s���*8�z,�|r-r�c�*�[R5$r/)r�initrEr-r*r�r�Vs���<�<�>�r-c�*�[R5$r/)r�deInitrEr-r*r�r�Zs���>�>��r-c��[U5$)zOpen a device for scanning)rZ)r_s r*r^r^^s���c�?�r-c�,�[RU5$r/)r�
getDevices)�
local_onlys r*rrcs�����j�)�)r-c�^�[RS[RU5U4-5 g)NzSANE: %s (code=%d))rFrmr�getErrorMessage)�codes r*�reportErrorrgs$���I�I�"�g�&=�&=�d�&C�T�%J�J�Kr-)r)&r�r�r��base.g�baserr�r�base.sixext.movesr�
import_extrr�r
rrr
rrr<rrrrrrrr=�MAX_READSIZErrZr�r�r�r�r^rrrEr-r*�<module>rs!��r��	���%�#�
�
�
�9�
%����
�
�
�+��1A�1A�j�
�
�
�,��1D�1D�m�
�
 �
 �-��1C�1C�l�U���
�
�{�
�
�
�|�
�
�
�z�
�_�_�y�
�
�
�z�
�
!�
!�~�
�
%�
%�'9�
<����`�`�zN�N�dm��!�!�m�b���
*�Lr-

Filemanager

Name Type Size Permission Actions
__init__.cpython-313.pyc File 130 B 0644
sane.cpython-313.pyc File 25.99 KB 0644
Filemanager