403Webshell
Server IP : 54.37.205.81  /  Your IP : 216.73.216.76
Web Server : nginx/1.22.1
System : Linux vps-249481fa 6.1.0-50-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.176-1 (2026-07-02) x86_64
User : debian ( 1000)
PHP Version : 8.2.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /usr/lib/python3/dist-packages/reportlab/lib/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3/dist-packages/reportlab/lib/__pycache__/utils.cpython-311.pyc
�

{�
g���	�dZdZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddlmZ
mZddlmZddlmZddlmZmZd	d
lmZmZmZmZddlmZGd�d
��Ze��Z	ddlZej��dkZ n	#dZ YnxYwd�Z!Gd�d��Z"e#e"j$��fd�Z%["d�Z&e'e(ffd�Z)d�Z*e#d��Z+e,e-fZ.d�Z/d�d�Z0d�d�Z1d�d�Z2d�d�Z3d�Z4d�Z5d�Z6d �Z7d!�Z8d"�Z9d#�Z:d�d$�Z;d%�Z<d&�Z=d'�Z>d(�Z?ddl@Z@eAe@d)��ZB[@d*�ZCd�d+�ZDd,�ZEd�d-�ZFd�d/�ZGGd0�d1eH��ZIejJd2krddlKZKddlLZLd3d4d4d5d6d6d7d7d8d9d:d:d;d<d=�ZMd�d?�ZNnd�d@�ZNddlOZOejP�QeOjR��ZSejP�TeS��reSpejP�UeS��ZV[O	eRn#ejWdZRYnxYwddlXZXddlYZY	eZZ[e[Z\eFe[�A��se]dBe[z���ejP�^ejP�_e[j`����ZaeaejbzZcejP�Qea��ZdedejbzZeefec��Zgefee��ZheceeeaedejPj_ejPj^ejiejbefejb��f	dC�ZjdD�ZkeXjXeYjYeVejPjlfdE�Zmn0#ejP�neR��Z\dZ[dF�ZkeXjXfdG�ZmYnxYw[X[Ye\o:ejP�nejP�oeR��ddHz��ZpdI�ZqdJ�ZrdK�ZsdL�ZteAedMdN���Zud�dO�ZveduZwGdP�dQ��ZxdR�Zyd�dS�ZzdT�Z{d�dV�Z|ddWl}m~Z~mZddXl�m�Z�dY�Z�d�dZ�Z�d�d[�Z�d�d]�Z�ejPjnfd^�Z�ejPj�ejPj_fd_�Z�ejPj�ejPj_ej�fd`�Z�ejPjnejPj_ejPj�ej�fda�Z�ddblm�Z�dc�Z�dd�Z�de�Z�Gdf�dg��Z�Gdh�die���Z�dj�Z�Gdk�dl��Z�dm�Z�dn�Z�d�do�Z�Gdp�dq��Z�Gdr�ds��Z�dt�Z�du�Z�dv�Z�dw�Z�ddl�Z�dx�Z�dy�Z�dz�Z�d�d|�Z�d�d�Z�d��Z�Gd��d�e,��Z�Gd��d�e,��Z�d��Z�Gd��d�ej���Z�Gd��d���Z�d�d��Z�d��Z�d��Z�d��Z�dS)�z3.5.34z6Gazillions of miscellaneous internal utility functions�N)�literal_eval)�decodebytes�encodebytes)�BytesIO)�md5)�get_rl_tempfile�get_rl_tempdir�)�rl_safe_exec�rl_safe_eval�
safer_globals�rl_extended_literal_eval)�Imagec�>�eZdZed���Zed���ZeZdS)�	__UNSET__c��dS)NF�r��5/usr/lib/python3/dist-packages/reportlab/lib/utils.py�__bool__z__UNSET__.__bool__s���urc��dS)Nrrrrr�__str__z__UNSET__.__str__s���{rN)�__name__�
__module__�__qualname__�staticmethodrr�__repr__rrrrrsE����������\������\���H�H�Hrr�PyPyFc�L�t|��tt��kS�N)�type�
isFunction��vs rr"r"!s����7�7�d�:�&�&�&�&rc��eZdZd�ZdS)�cc��dSr r��selfs r�mzc.m%s���rN)rrrr*rrrr&r&$s����������rr&c�(�t|��|kSr )r!)r$�mts  r�isMethodr-'s����7�7�b�=�rc�L�t|��tt��kSr )r!�sysr#s r�isModuler0+s����7�7�d�3�i�i��rc�"�t||��Sr )�
isinstance)r$�_sts  r�isSeqr4.s���a����rc�,�t|t��Sr �r2�strr#s r�isNativer81����a����rc��tt|��r|n|�d�������S)N�utf8)r�isBytes�encode�	hexdigest��ss r�	_digesterrA9s7���G�A�J�J�4�q�q�A�H�H�V�$4�$4�5�5�?�?�A�A�Arr;c	���t|t��r|S	|�|��S#tdt	|���dt	|���d���YdSxYw)NzasBytes(�,enc=�	) error: )r2�bytesr=�annotateException�ascii�r$�encs  r�asBytesrJ<si���!�E���$�1�H�P��x�x��}�}���P���%��(�(�(�(�5��:�:�:�:�N�O�O�O�O�O�O����	�.�2A#c	���t|t��r|S	|�|��S#tdt	|���dt	|���d���YdSxYw)Nz
asUnicode(rCrD)r2r7�decoderFrGrHs  r�	asUnicoderNCsi���!�C���"��(�R��x�x��}�}���R���E�!�H�H�H�H�U�3�Z�Z�Z�Z�P�Q�Q�Q�Q�Q�Q���rKc	��t|t��r|S	t|t��r|�|��nt|��S#t	dt|���dt|���d���YdSxYw)NzasUnicodeEx(rCrD)r2r7rErMrFrGrHs  r�asUnicodeExrPJs����!�C���"��(�T� *�1�U� 3� 3�?�q�x�x��}�}�}��Q���?��T���e�A�h�h�h�h�u�S�z�z�z�z�R�S�S�S�S�S�S���s�8A�2Bc�$�t||���S)N)rI)rNrHs  r�asNativerRQs���Q�3����rc�"�t|g��Sr )rE)�is r�int2ByterUTs���!��:�:�rc�:�t|ttf��Sr )r2r7rEr#s r�isStrrWWs���a�#�e��%�%�%rc�,�t|t��Sr )r2rEr#s rr<r<Zs���a����rc�,�t|t��Sr r6r#s r�	isUnicoderZ]r9rc�,�t|t��Sr �r2r!r#s r�isClassr]`s���a����rc���t|ttttt
ttttttttjtjtjtjtjtjtjtjtjtjtjtjtjtjf��Sr )r2�float�intr!�tuple�list�dictr7rE�complex�bool�slice�_rl_NoneType�types�FunctionType�
LambdaType�CodeType�MappingProxyType�SimpleNamespace�
GeneratorType�
MethodType�BuiltinFunctionType�BuiltinMethodType�
ModuleType�
TracebackType�	FrameType�GetSetDescriptorType�MemberDescriptorType)�xs r�isNonPrimitiveInstancerxcs����!�U�3�t�E�$�t�C��g�d�SX�Ye�
��5�+�E�N�
��u�4�
��E�,�U�-F�
��� 0��1D�
���2�5�3M�O�P�P�P�Prc�.�t|t��Sr r\r#s r�instantiatedrzks���!�D�!�!�!�!rc���t|t��r|�|��St|t��r|St|���|��Sr )r2r7r=rE)rwrIs  r�bytestrr|nsS���!�C���"��x�x��}�}��	�A�e�	�	�"����1�v�v�}�}�S�!�!�!rc��ttj|��������d��S�N�latin1)�base64_encodebytes�pickle�dumps�striprM)�argss r�encode_labelr�vs4���f�l�4�0�0�1�1�7�7�9�9�@�@��J�J�Jrc�j�tjt|�d������Sr~)r��loads�base64_decodebytesr=)�labels r�decode_labelr�ys'���<�*�5�<�<��+A�+A�B�B�C�C�Crc�Z�t|t��s|�d��n|S�zconverts first 256 unicodes 1-1r)r2r7rMr?s r�
rawUnicoder�|s(��%/��#�%6�%6�=�1�8�8�H����A�=rc�Z�t|t��r|�d��n|Sr�)r2r7r=r?s r�rawBytesr��s(��!+�A�c�!2�!2�9�1�8�8�H�����9r�execc��t|t��r|n8tt|t��r|n|�d����Sr~)r2r`�ordr7rMr?s r�char2intr��sC���A�c�"�"�[�A�A���A�c�1B�1B�,Z�A�A����QY�HZ�HZ�([�([�[rc�B�|j|ur|�|���|�r )�
__traceback__�with_traceback)�tr$�bs   r�
rl_reraiser��s(����a������q�!�!�!�
�Grc�d�ddl}|���D]\}}t|||���dS�Nr)�builtins�items�setattr)�kwdr��kr$s    r�rl_add_builtinsr��sE���O�O�O��y�y�{�{�����!����1������rc��	|stjd��jd}ddlm}t||��rt
|j��r|ndS#YdSxYw)Nr
�
__loader__r)�zipimporter)r/�	_getframe�	f_globals�	zipimportr�r2�len�_files)�ldrr�s  r�zipImportedr��sn����	;��-��"�"�,�\�:�C�)�)�)�)�)�)� ��[�1�1�O�c�#�*�o�o�O�s�s�4�O����t�t���s�AA�A�.ttfc�4�ddlm}m}m}ddlm}|���}g}|j}|D]g}||��s�||��D]M}	|||	��}	||	��r4|r'|	����|��r||	���N�h|S)Nr)�isfile�isdir�join)�listdir)	�os.pathr�r�r��osr��lower�append�endswith)
�dirList�extr�r��	path_joinr��R�A�D�fns
          r�
_findFilesr��s���8�8�8�8�8�8�8�8�8�8�������

�)�)�+�+�C�
�A�	��A�
�K�K���u�Q�x�x�!���'�!�*�*�	K�	K�B���1�R���B��v�b�z�z�J�3�J�"�(�(�*�*�*=�*=�c�*B�*B�J�Q�Q�r�U�U�U��	K�
�Hrc�F�eZdZd�Zd�Zd�Zd�Zd�Zdd�Zd�Z	d	�Z
d
�ZdS)�CIDictc�d�|D]}|�|���|�|��dSr )�update)r)r��kwds�as    r�__init__zCIDict.__init__�s5���%�%�A�t�{�{�1�~�~�~�~����D�����rc�D�|���D]
\}}|||<�dSr )r�)r)r�r�r$s    rr�z
CIDict.update�s)���7�7�9�9�)�)�C�A�a��d�1�g�g�)�)rc�x�	|���}n#YnxYwt�|||��dSr )r�rc�__setitem__�r)r�r$s   rr�zCIDict.__setitem__�sB��	����	�	�A�A��	��D��������a��"�"�"�"�"���c�r�	|���}n#YnxYwt�||��Sr )r�rc�__getitem__�r)r�s  rr�zCIDict.__getitem__��:��	����	�	�A�A��	��D��������Q�'�'�'r�c�r�	|���}n#YnxYwt�||��Sr )r�rc�__delitem__r�s  rr�zCIDict.__delitem__�r�r�Nc�8�	||S#t$r|cYSwxYwr )�KeyError)r)r��dvs   r�getz
CIDict.get�s4��	���7�N���	�	�	��I�I�I�	���s�
��c�(�	||dS#YdSxYw)NTFrr�s  r�__contains__zCIDict.__contains__�s%��	���G�G��4��	��5�5���s��c�b�	|���}n#YnxYwtj||f|z�Sr )r�rc�pop�r)r�r�s   rr�z
CIDict.pop�s9��	����	�	�A�A��	��D�����x�4��(�1�*�&�&r�c�b�	|���}n#YnxYwtj||f|z�Sr )r�rc�
setdefaultr�s   rr�zCIDict.setdefault�s9��	����	�	�A�A��	��D������$�q��!��-�-r�r )rrrr�r�r�r�r�r�r�r�r�rrrr�r��s����������*�*�*�#�#�#�(�(�(�(�(�(��������'�'�'�.�.�.�.�.rr��mac)�oglezBMP )r��EPSF)r��GIFf)r��JPEG)�ttxt�PICT)r��PNGf)r�z.PPM)r��TIFF)�CAROzPDF )�MSIE�TEXT)�BMP�EPSr��GIF�JPGr��PCTr��PNG�PPM�TIFr��PDF�HTMLr�c���	|�|�.|�,	t|���\}}n#YdSxYwtj|���||��tj|��dS#YdSxYwr )�_KNOWN_MAC_EXT�upper�macfs�FSSpec�SetCreatorType�
macostools�touched)�filename�creatorcode�filetyper�s    r�markfilenamer��s���		��"�h�&6�3�?��,:�3�9�9�;�;�,G�)�K������F�F�����L��"�"�1�1�+�h�G�G�G���x�(�(�(�(�(��	��D�D���s"�A2�",�A2�1�A2�?A2�2A7c��dSr r)r�r�r�s   rr�r�s���r)r�z#can't handle compact distro type %rc
�2�||�d|����}||��}
|
||fvrdS|
�|��rd|td�fS|
�|��rd|td�fS||����}t	|��}|
�|��rA||d��|��rd|||	zd�fS|t	|��krdSt
j�|��|fS)z3if the name starts with a known prefix strip it off�/)r
�r
N)�replace�
startswith�_archivepfxlen�_archivedirpfxlenr�r��path�isabs)
r��_archivepfx�_archivedirpfx�_archive�_archivedir�os_path_normpath�os_path_normcase�	os_getcwd�os_sep�
os_sep_len�nfn�cwd�ns
             r�__startswith_rlrs*���
�b�j�j��V�4�4�
5�
5����r�"�"���;�x�(�(�(����>�>�+�&�&�D�q��N�O�O�1D�/D�(D��>�>�.�)�)�J�!�B�7H�7I�7I�4J�2J�+J���y�y�{�{�+�+����H�H���>�>�#���	'��!�"�"�v� � ��(�(�E��B�q��|�}�}�4E�1E�*E��#�b�'�'�z�z�$�$��7�=�=��$�$�$�R�'�'rc�,�t|��dS)Nr
)r�r�s r�_startswith_rlr3s���r�"�"�1�%�%rc�2�t|��\}}||��}|s|gkrq|ttt|fd�tt	||fd�tt
j�������������z
}|S)Nc�$�|t|��Sr )r)rwr��pjoins   r�<lambda>zrl_glob.<locals>.<lambda>:s��e�e�K�PQ�>R�>R�rc��|||��Sr r)rw�pfn�fnmatchs   rrzrl_glob.<locals>.<lambda>:s.��BI�BI�JK�LO�BP�BP�r)rrb�mapr�filter�
__rl_loader__r��keys)�pattern�globr�_RL_DIRrr&r�rs        r�rl_globr'6s��� ��)�)���3��D��I�I���	v��2���
��c�[�u�R�R�R�SW�X^�lo�x�`P�`P�`P�QU�Vc�Vj�Vo�Vo�Vq�Vq�Qr�Qr�Ys�Ys�Tt�Tt�u�u�v�v�
v�A��rc��|Sr rrs rrr?s���	rc��||��Sr r)r#r$s  rr'r'As���t�G�}�}�r�.pyc��tS)z*return truth if a file system distribution��_isFSDrrr�isFileSystemDistror.Fs���Mrc��tS)z.return truth if not a file system distributionr,rrr�isCompactDistror0Js
���:�rc��tS)z1return truth if a source file system distribution)�_isFSSDrrr�isSourceDistror3Ns���Nrc��tj�tj�tj�|������Sr )r�r�normcase�abspath�normpath)�ps r�normalize_pathr9Rs6��
�7���B�G�O�O�B�G�,<�,<�Q�,?�,?�@�@�A�A�Ar�invalidate_cachesc��dSr rrrrrrUs��T�rc��d�tjD��}|rOt|ttf��r|n|fD]-}|r)t|��}||vr|�d|���.|rGddtd��fD]3}||vr-|rtd|z��|�|��||v�-�4n-tj
��}||vr|�d|��tj}	|t_t��|�rt��td��tdt|��z��tdttj
����z��td	ttj��z��td
td|z���dttj�
d|z��������td
t|��z��td��tj|��|t_t��|r tdt!|��z��SS#t"$r6t%d|�dtj�dtj
������Yn`t%dt'tj��d���d|�dtj�dtj
������YnxYw|t_t��|r!tdt!|��z��dSdS#|t_t��|r tdt!|��z��wwxYw)zEDynamically imports possible packagized module, or raises ImportErrorc�,�g|]}t|����Sr)r9)�.0r8s  r�
<listcomp>z#recursiveImport.<locals>.<listcomp>Ys ��0�0�0�!�N�1���0�0�0rrr�.zremoved "%s" from pathz++++++++++++++++++++z+++++ modulename=%sz+++++ cwd=%sz+++++ sys.path=%sz+++++ os.paths.isfile(z./%s.pyz)=z+++++ opath=%sz--------------------z===== restore sys.path=%szCould not import z
using sys.path z in cwd=z
Exception r
z while importing N)r/rr2rbrar9�insert�print�remover��getcwd�_importlib_invalidate_cachesrGr��	importlib�
import_module�repr�ImportErrorrFr7�exc_info)�
modulename�baseDir�noCWD�debugrr8�opaths       r�recursiveImportrPWs���0�0�s�x�0�0�0�D��3�&�w��U�|�<�<�L���7�*�	3�	3�A��
3�"�1�%�%���D�=�=�$�+�+�a��"2�"2�"2�����S���,�,�-�	�	�A��t�)�)��=�%� 8�1� <�=�=�=����A�����t�)�)��	�

�I�K�K���D�=�=��K�K��!����
�H�E�=����$�&�&�&��	��G�G�G��&�M�M�M��'�%�
�*;�*;�;�<�<�<��.�5�����#5�#5�5�6�6�6��%��c�h���7�8�8�8��E�E�)�J�:N�4O�4O�4O�4O�QV�WY�W^�We�We�fo�pz�fz�W{�W{�Q|�Q|�Q|�}�~�~�~��"�U�5�\�\�1�2�2�2��&�M�M�M��&�z�2�2����$�&�&�&��	=��-��U���;�<�<�<�<�	=���������
�
�3�8�8�8�B�I�K�K�K�1�	�	�	�	�	�J����C�L�N�N�1�%�&�&�&�&�
�
�
�3�8�8�8�B�I�K�K�K�I�	J�	J�	J�	J�	J�������$�&�&�&��	=��-��U���;�<�<�<�<�<�	=�	=�����$�&�&�&��	=��-��U���;�<�<�<�<�	=���s&�+EI-�-=L	�*M�,AL	�M�>N	c��eZdZdZd�ZdS)�
ArgvDictValuezGA type to allow clients of getArgvDict to specify a conversion functionc�"�||_||_dSr )�value�func)r)rTrUs   rr�zArgvDictValue.__init__�s����
���	�	�	rN)rrr�__doc__r�rrrrRrR�s)������Q�Q�����rrRc��d�}tjdd�}i}|���D]�\}}t|t��r|j|j}}nd}d}|dz}|D]W}	|	�|��r@|	t|��d�}
|�	|	��|||
|��||<d}n�X|s||||��||<��|S)z� Builds a dictionary from its keyword arguments with overrides from sys.argv.
        Attempts to be smart about conversions, but the value can be an instance
        of ArgDictValue to allow specifying a conversion function.
    c���|r||��}n�t|��r|}n�t|t��rt|��}n�t|t��rt|��}n�t|t��rt	t|��i��}nUt|t��rt
t|��i��}n"td|�dt|�������|S)NzCan't convert string z to )	rWr2r_r`rbrra�	TypeErrorr!)r$�avrUs   r�handleValuez getArgvDict.<locals>.handleValue�s����	P���R���A�A��Q�x�x�
P�����A�e�$�$�	
P��"�I�I����A�c�"�"�
P���G�G����A�d�#�#�
P���b�)�)�"�-�-����A�e�$�$�
P��,�r�*�*�2�.�.����i�2�2�2�d�1�g�g�g� N�O�O�O��rr
Nr�=)
r/�argvr�r2rRrTrUrr�rC)�kwr[r�r�r�r$rU�handled�ker�rZs           r�getArgvDictra�s��
���$	������A�
�A����
�
�5�5���1��a�
�&�&�	��g�q�v�t�A�A��D���
�s�U���	�	�A��|�|�B���
��s�2�w�w�x�x�[���������"�{�1�R��-�-��!������
��4�{�{�1�Q�t�4�4��!����Hrc��	ddlm}|�Btj�tj�t��d��}||��S#t$r}t|��dkr�Yd}~dSd}~wwxYw)Nr)�Hyphenz
hyphen.mashedzNo module named pyHnj)	�reportlab.lib.pyHnjrcr�rr��dirname�__file__rIr7)�hDictrc�errMsgs   r�
getHyphenaterri�s����.�.�.�.�.�.��=�����R�W�_�_�X�-F�-F�� W� W�%��v�e�}�}��������v�;�;�/�/�/���t�t�t�t�t��������s�AA�
B�!A;�;Bc��	|jj}|�d��}|dkr
||dzd�S|S#t$rt	|��cYSwxYw)zReturn a shortened class namer@rr
N)�	__class__r�rfind�AttributeErrorr7)r)�namerTs   r�
_classNamero�sl����~�&��
�*�*�S�/�/���a�4�4��Q�q�S�T�T�
�"���������4�y�y�������s�38�8�A�Ar�c�L�d|vrd|z}	t||��S#t$r~tst��t	|��}t�|��}d|vr0tjdkr |�tjd��}t|��cYSwxYw)Nr&r��
)
�open�IOErrorr-r!r�get_datar��lineseprr)rn�moder@s   r�open_for_read_by_namerw�s���
�$���s�4�x��	��D�����������1�]�*�E��d�#�#���"�"�4�(�(���d�?�?�r�z�4�/�/�Q�Y�Y�r�z�$�5O�5O���q�z�z�������s��BB#�"B#)�unquote�urlparse)�urlopenc�D�t|�����Sr )rz�read)rns r�	rlUrlReadr}�s���4�=�=�����rc�.�����tfd��ddlm�m��rYddl}ddl��fd�}|�d�dd�t|�����df�����d���fd
�	}|t��d<|||��S)
Nc��	|�dd��\}}n#t$rtdd���wxYw|sd}|�d��}|dkr$d||d	�vr||dzd	�}|d	|�}nd
}|dkr#t	|�d����}n||���d
��}|S)zUse "data" URL.�,r
z
data errorzbad data URLztext/plain;charset=US-ASCII�;rr\Nr�base64rGzlatin-1)�split�
ValueErrorrsrlr�r=)�urlrx�typ�data�semi�encodings      r�
datareaderz!open_for_read.<locals>.datareader�s���	8��	�	�#�q�)�)�I�C�����	8�	8�	8��,��7�7�7�	8�����	0�/�C��y�y��~�~���1�9�9��C����J�.�.��4��6�7�7�|�H��e�t�e�*�C�C��H��x���%�d�k�k�'�&:�&:�;�;�D�D��7�4�=�=�'�'�	�2�2�D��s��7r)�trustedHosts�trustedSchemesc�v���j|��}|�d��r
|dd�n	|dd�S)Nz(?s:����i����)�	translater)r@rs �r�xrezopen_for_read.<locals>.xres@���!��!�!�$�$�A��l�l�6�2�2�>�1�Q�r�T�7�7��#�2�#��>rrz^(?:�|z)\Zr�c���t|d��r|S	t||��S#	��Ut|��}|dr>|ddvs��|d��r
|d�vst	d���t|dd����dkr�nt|����cYS#td	|z���xYwxYw)
z)attempt to open a file or URL for readingr|Nr)r��filer
zAttempted untrusted host access�zdata:zCannot open resource "%s")	�hasattrrwry�matchr�rr�r}rs)rnrv�purlr�r�r�s   ���r�
open_for_readz$open_for_read.<locals>.open_for_reads����4����,���
	B�(��d�3�3�3��	B�
B��+�#�D�>�>�D��A�w�L��a��O�)C�)C�|�GY�GY�Z^�_`�Za�Gb�Gb�)C�im�no�ip�uC�jC�jC�(�)J�K�K�K�� V�d�2�A�2�h�n�n�.>�.>��.G�.G�
�
�Y�X\�]�]�^�^�^�^�^��
B��9�D�@�A�A�A������s!�%�C�BC�=C�C�Cr��r�)
rx�reportlab.rl_configr�r��rer�compiler�r�globals)	rnrvr�r�r�r�rr�r�s	     @@@@rr�r��s
������
!(�����6A�@�@�@�@�@�@�@��*���������	?�	?�	?�	?�	?��z�z�"�'�'�6� #����S��)>�)>� ?� ?� &�+(�#)�#)�*�*��
B�
B�
B�
B�
B�
B�
B�
B�"/�G�I�I�o���=��d�#�#�#rc���t||��}||ur@t|d��r0|5|���cddd��S#1swxYwYdS|���S)N�__exit__)r�r�r|)rnrv�fs   r�
open_and_readr�s����d�4� � �A��1�}�}���:�.�.�}�
�	�	��6�6�8�8�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	��v�v�x�x�s�A�A�Ar�c�H�t||���d��S�Nrq)r�r�)rnrvs  r�open_and_readlinesr� s ����d�#�#�)�)�$�/�/�/rc���t|d��rdS||��rdStst�dSt|��}|t	tj�����vS)Nr|TF)r�r-r!rrbr�r")r��os_path_isfiles  r�	rl_isfiler�#sh���r�&���&�$�$��~�b���&�$�$�
�4��&�u�u�	��	�	�B�
��m�*�/�/�1�1�2�2�2�2rc�|�||��rdStst�dSt||����}|�tj��s|tjz
}t
tt|fd�ttj	�
����������dkS)NTFc�,�|�|��Sr )r)rw�pns  rrzrl_isdir.<locals>.<lambda>/s��1�<�<��+;�+;�rr)r-r!rr�r��sepr�rbr r�r")r��
os_path_isdirrs   r�rl_isdirr�*s����}�R���%���
�4��&�u�u�	�(�(��,�,�	-�	-�B�
�;�;�r�v���,��b�f����t�F�r�;�;�;�D��AU�AZ�AZ�A\�A\�<]�<]�^�^�_�_�`�`�ab�b�brc�,��|���stst�|���St|��������tj��s�tjz
��fd�tj���D��S)Nc�h��g|].}|�����|t���d���/Sr )rr�)r>rwr�s  �rr?zrl_listdir.<locals>.<listcomp>5s8���Q�Q�Q�A����R�@P�@P�Q�A�c�"�g�g�h�h�K�Q�Q�Qr)r-r!rr�r�r�r�r")r�r�r�
os_listdirs`   r�
rl_listdirr�1s�����}�R���R�F�R�m�&;�J�J�r�N�N�=R�	�(�(��,�,�	-�	-�B�
�;�;�r�v���,��b�f���Q�Q�Q�Q��!5�!:�!:�!<�!<�Q�Q�Q�Qrc�h�||��stst�||��St||����}	tj|}n#t$r||��cYSwxYw|d}|d}||dz	dzdz|dz	dz|dz|dz	dz|dz	d	z|dzd
zdddf	��S)Nr���	�i�����?r
r)r-r!rr�r�)	r�r�r�os_path_getmtime�time_mktimer8�er@�ds	         r�rl_getmtimer�7s����~�b���Y�V�Y�}�'<�EU�EU�VX�EY�EY�>Y��'�'��+�+�,�,�A�$�� ��#�����$�$�$����#�#�#�#�#�$����	�!��A�	�!��A��;�!�Q�$���d�*�A�q�D�#�:�a��f�a��e�T�\�1�a�4�QU�+�WX�Y]�W]�`a�Va�bc�de�fg�h�i�i�is�A�A)�(A))�utilc��dD]t}tj�|||z��}tj�|��r0t	j||��}|j���cS�utd���)N)r*z.pywz.pyoz.pycz.pydzno suitable file found)	r�rr�r��importlib_util�spec_from_file_location�loader�load_modulerI)rn�dirr�r�specs     r�__rl_get_module__r�Cs���2�-�-���w�|�|�C��S��)�)��
�7�>�>�$���	-�!�9�$�t�D�D�D��;�*�*�,�,�,�,�,�	-��.�
/�
/�/rc�n�|tjvr tj|}tj|=nd}		t||��|r|tj|<SS#t��r�ddl}t|��}|dks|rtpBtj�	t|�
dtj����}|�|��}|�
|��cY|r|tj|<SSt|�d|�d����xYw#|r|tj|<wxYw)Nrr@r�[�])r/�modulesr�r0r�rr
r�rr�rr�r�r�rI)rnr��omr��zis     r�
rl_get_moduler�KsI���s�{���
�[��
���K����
��
&�
	5�$�T�#�.�.��%�2�s�{�4� � �%��	5�� � �
,� � � � �$�S�)�)���C�x�*�s�7�8��j�B�G�L�L��RU�R]�R]�^a�bd�bh�Ri�Ri�<j�<j���*�*�3�/�/���~�~�d�+�+�+�+��%�2�s�{�4� � �%��$�$�$�s�s�s�3�4�4�4�����
�%�2�s�{�4� �%�%�%�%s$�A�B D�5D!�	D�D!�!D4c�Z�	t|tj��S#t$rYdSwxYwr�)r2rrm)�ims r�_isPILImager�`s;����"�U�[�)�)�)�������q�q����s��
*�*c��eZdZdZiZdZdd�Zd�Zd�Ze	d���Z
e	dd���Zd�Zd	�Z
d
�Zd�Zd�Zd
�ZdS)�ImageReaderz%Wraps up PIL to get data from bitmapsNc��t|t��r|j|_dS||_||_d|_d|_d|_d|_d|_	t|��rY||_t|dd��|_	|jj|_dS#t$rdt|��z|_YdSwxYw	ddlm}|dkrt#d���t%|d��}t|t&��s8|t'|�����}}|���~||_|�|j��|_t|t.��r|nt1|��|j_|�|j��t|jdd��dkr|j|_dSdS#t9d	|�d
|�������YdSxYw)N�fpzPILIMAGE_%dr)�imageReaderFlagszYimageReaderFlags values other than 0 are no longer supported; all images are interned nowr��formatr�z

fileName=z
 identity=)r2r��__dict__�_ident�fileName�_image�_width�_height�_transparent�_datar��getattrr�rm�idr�r�r�r�rr|�close�_read_imager7rH�check_pil_image_size�_jpeg_fh�jpeg_fhrF�identity)r)r��identr�r��tfps      rr�zImageReader.__init__js���h�{�+�+�	�$�-�D�M��F����!��
���������� �����
��x� � �	Z�"�D�K��h�t�D�1�1�D�G�
9� $�� 4��
�
�
��!�
9�
9�
9� -��4��� 8��
�
�
�
�
9����
Z�@�@�@�@�@�@�#�q�(�(�$�&A�B�B�B�"�8�C�0�0��!�"�g�.�.�� �'�"�'�'�)�)�"4�"4��C��I�I�K�K�K�����"�.�.�t�w�7�7���3=�h�s�3K�3K�'_�x�x�QU�V^�Q_�Q_���$��)�)�$�+�6�6�6��4�;�x��5�5�v�=�=�#'�=�D�L�L�L�>�=��
Z�!�!�x�x�x��
�
����"X�Y�Y�Y�Y�Y�Y���s�B�!B:�9B:�>DG�)G<c��|j}t|��s tt|dd��dd��}|j}d|jj�dt
t|�����|rd|zpd�|rd|zpd�d	�S)
z9try to return information that will identify the instancer�Nrnr��@z	 ident=%rrz filename=%rr�)r�rWr�r�rkr�hexr�)r)r�r�s   rr�zImageReader.identity�s���
�]���R�y�y�	>����d�4�0�0���=�=�B����� $�� 7� 7� 7��B�t�H�H�
�
�
�e�Fe�Q\�_d�Qd�Fk�ik�Fk�ln�mI�uC�FH�uH�mO�MO�mO�mO�P�	Prc�*�tj|��Sr )rrr�r)r�s  rr�zImageReader._read_image�s���z�"�~�~�rc
���|j}|�dS|j\}}|j}td|dkrdndt	|��z|z|zdz	��}||krtd|�d|�d|�d|�d	|�d
����dS)Nr
�1��zPIL � z x z image would use z > z bytes)�_max_image_size�sizerv�maxr��MemoryError)�clsr��max_image_size�w�hr*r�s       rr�z ImageReader.check_pil_image_size�s����,���!�6�6��w���1��G���1�A�s�F�F�q�q��#�a�&�&��!�3�A�5��9�:�:�������+�./�a�a����!�!�!�D�D�D����I�J�J�
J��rc�H�||_|�ddlm}||j��dSdS)Nr)�register_reset)r�r�r��set_max_image_size)r�r�r�s   rr�zImageReader.set_max_image_size�sC��,����%�:�:�:�:�:�:��N�3�1�2�2�2�2�2�&�%rc�>�|j}|�d��|Sr�)r��seekr�s  rr�zImageReader._jpeg_fh�s��
�W��
����
�
�
��	rc��dSr rr(s rr�zImageReader.jpeg_fh�s���trc�l�|j�|j�|jj\|_|_|j|jfSr )r�r�r�r�r(s r�getSizezImageReader.getSize�s3���K��4�<�#7�(,��(8�%�D�K�����T�\�*�*rc�l�	|j��yd|_|j}|jx}|_|dvr�t	t
dd���d��r|���t|�	��|dkrdnd��|_|dd	�}|�
|��}||_n�|d
vr�|jdkrk|jdkr`d
|jvrW|�
d��}t|�	��d��|_|�
d��}n|�
d��}d|_t|d��r|jn|j��|_|jS#t!d|���z��YdSxYw)z'Return byte array of RGB data as stringN)�LA�RGBA�VERSIONrz1.1.7rr�r
���)�L�RGB�CMYKr��P�transparencyr�tobytesz
identity=%s)r��_dataAr�rvr�rr�loadr�r��convertr��infor�r�tostringrFr�)r)r�rv�nms    r�
getRGBDatazImageReader.getRGBData�s���	?��z�!�"����[��#%�7�*��t�y��=�(�(��u�Y�r�2�2�=�=�g�F�F�"����	�	�	�"-�b�h�h�j�j�d�F�l�l���PQ�.R�"S�"S�D�K��c�r�c��B����B���B� "�D�I�I��!3�3�3��y�%�'�'�B�G�S�L�L�^�r�w�=V�=V��Z�Z��/�/��&1�"�(�(�*�*�Q�-�&@�&@����Z�Z��.�.����Z�Z��.�.�� %�D�I�S�G�B�	�,B�,B�S�b�j�j���V�V��
��:���	?��o�d�m�m�o�o�=�>�>�>�>�>�>���s�FF
�
&F3c�^�|���\}}|||���fSr )rr)r)�width�heights   r�getImageDatazImageReader.getImageData�s*�������
��v��f�d�o�o�/�/�/�/rc���d|jjvrP|jjddz}|jj}	|j}n#	|j}n	#YYdSxYwYnxYw|||dz�SdS)Nrr�)r�r�paletter�)r)rrs   r�getTransparentzImageReader.getTransparent�s����T�[�-�-�-��;�+�N�;�a�?�L��k�)�G�
 �!�/����
 � �%�l�G�G�� ��4�4�4�����G�����<��Q��6�7�7��4s&�9�A�A�A�A
�A�
Ar )rrrrV�_cacher�r�r�r��classmethodr�r�r�r�rrrrrrrr�r�fs�������+�+�
�F��O�%Z�%Z�%Z�%Z�NP�P�P�����J�J��[�J��3�3�3��[�3����
���+�+�+�
?�?�?�60�0�0�
�
�
�
�
rr�c��eZdZdS)�LazyImageReaderN)rrrrrrr!r!�s�������Drr!c��	|���S#t$r$t|�����cYSwxYw)z<Get width, height and RGB pixels from image file.  Wraps PIL)rrmr�)�
imageFileNames rrr�sT��9��)�)�+�+�+���9�9�9��=�)�)�6�6�8�8�8�8�8�9���s��+A�Ac��eZdZdZdd�Zd�Zd	�Zd
�Zd�Zd�Z	d
�Z
d�Zd�Zd�Z
d�Zd�Zd�Zd�Zd�Zd�Zd�Ze
eeed�Zd�Zd�Zd�Zd�Zd�ZdS)�	DebugMemoa�Intended as a simple report back encapsulator

    Typical usages:
        
    1. To record error data::
        
        dbg = DebugMemo(fn='dbgmemo.dbg',myVar=value)
        dbg.add(anotherPayload='aaaa',andagain='bbb')
        dbg.dump()

    2. To show the recorded info::
        
        dbg = DebugMemo(fn='dbgmemo.dbg',mode='r')
        dbg.load()
        dbg.show()

    3. To re-use recorded information::
        
        dbg = DebugMemo(fn='dbgmemo.dbg',mode='r')
            dbg.load()
        myTestFunc(dbg.payload('myVar'),dbg.payload('andagain'))

    In addition to the payload variables the dump records many useful bits
    of information which are also printed in the show() method.
    �rl_dbgmemo.dbgr�r
rNc
�h
���ddl}||_|stj|_n-t	|d��r||_nt|d��|_|dkrdSix|_}	|rVtj��dkr?ddl}
t��}|
�
d|��|���|	d<tj
��}tj|��}
tj�|��}|rtj|��pd}tj�tj�tjd����}d}d}	ddl}|�t*�d����}|d}n#YnxYwtj�t1������}|���|	�id	t9jt9jt9j�������d
tj�dtj �dtCtj"���d
tj#�dtj$�dtj%�dtj�dtj�d|�d|�&���d|
�d|�dtj'�dtQtdd���dtQtdd���dtQtdd���tQtdd��d�)dg�fd�|D��z��tUt*��||d ����td!ftd"ffD]>\}}|D]6}t	||��r$	tQ||����|	|<�/#Y�3xYw�7�?||kr3	|	�|tj|��d#���n#YnxYw|r~tj�tjd��}tj�+|��r0	|t|d$���,��f|	d%<n#YnxYwi}tj-�.��D]w\}�|d&ks"|d'ks|dd(�d)ks|dd*�d+krJ�fd,�d-D��}d.�|D��r0|dgd/�|d0d�D��z}t_|��||<�x||	d1<i|jd2<|�0|��dS)3Nr�writer�)NNN�__tracebackz???z
meta_data.mar�project_version�gmt�platform�version�
hexversion�
executable�exec_prefix�prefixrr]r�hostname�lcwd�lpcwd�	byteorder�maxint�
maxunicodez????�api_version�version_info�winverz
			rc�*��g|]}|�d�|����S)r\r)r>r��envs  �rr?z&DebugMemo.__init__.<locals>.<listcomp>?s)���<]�<]�<]�VW����#�a�&�&�=Q�<]�<]�<]r)r:�environmentr!�project_meta_datar*)�getwindowsversion�getfilesystemencoding)�uname�ctermid�getgid�getuid�getegid�geteuid�getlogin�	getgroups�getpgrp�getpid�getppid)�exed�lexedr&�__script�	reportlab�rlextra�
z
reportlab.r�zrlextra.c�2��g|]}t�|d����Sr )r�)r>rwr*s  �rr?z&DebugMemo.__init__.<locals>.<listcomp>_s%���V�V�V�1�W�Q�q��&�&�V�V�Vr)�__version__�__path__rfc��g|]}|�|��Srr�r>�_fs  rr?z&DebugMemo.__init__.<locals>.<listcomp>`s��)�)�)�2�b�)�B�)�)�)rc��g|]}|�|��SrrrVs  rr?z&DebugMemo.__init__.<locals>.<listcomp>as��!;�!;�!;���!;�"�!;�!;�!;rr
�__module_versions�	__payload)1�socketr�r/�stdoutr�rr�storerJ�	tracebackr�	print_exc�getvaluer�rDr�rrer6r]�marshalr�r!rt�environrbr"�sortr��time�asctime�gmtimer,r-r�r.r/r0r1�gethostnamer5r�r�rHr�r|r�r�ra�_add)r)r�rv�	getScriptr��capture_tracebackr\r^r[r]r^r@rr3�pcwdr4rLr*�mdra�K�Mr�r��module_versionsrr$r<r*s                           @@rr�zDebugMemo.__init__sp�����
�
�
�����	/��*�D�K�K��v�g�&�&�
/�$����"�6�#�.�.�����9�9�f�f����
�U��	0�����3C�!C�!C������	�	�A�����Q�'�'�'�#$�:�:�<�<�E�-� ��I�K�K���z�#�����w���s�#�#���)���D�)�)�2�U���w���r�w���s�x��{�;�;�<�<������	��N�N�N��}�}�]�3�3�O�D�D�E�E�B��0�1�O�O��	��D�����j��
�s�x�x�z�z�
�
��	������
�����t�|�D�K��	���,D�,D�E�E��"�C�L��!�3�;��%�c�#�.�&9�&9��%�c�n�	�
&�s���!�#�*�
����������s��#�F�$6�$6�$8�$8����� ���$�S�]��!�'�#�l�6�"B�"B��&�w�s�=��'H�'H�� '���N�6�(J�(J�!�"#*�#�h�v�">�">�'1����t�<]�<]�<]�<]�[\�<]�<]�<]�7]�'^�'^�)-�m�)<�)<�-/�+:�+���	�	�	�0�B�C�����	�	�C�A�a��
�
���1�Q�<�<���#/�7�1�Q�<�<�>�>��a����������	�
���9�9�
����d�R�Z��5E�5E�G�G�H�H�H�H��
�������	�������!��-�-�B��w�~�~�b�!�!�
��)+�D��C�L�L�,=�,=�,?�,?�(@�E�*�%�%����D�������;�$�$�&�&�	2�	2�C�A�a��+�~�~��I����3�B�3���1E�1E��2�A�2��PZ�IZ�IZ�V�V�V�V�0U�V�V�V��)�)��)�)�)�2��1���!;�!;�q����u�!;�!;�!;�;�A�).�q���O�A�&��%4��!�"�"$��
�;���	�	�"�
�
�
�
�
s0�'9F!�!F%�N4�4N8�*O/�/O3�'Q/�/Q3c�^�|jd}|���D]
\}}|||<�dS�NrZ)r]r�)r)r��payloadr�r$s     rrhzDebugMemo._addgs>���*�[�)���G�G�I�I�	�	�D�A�q��G�A�J�J�	�	rc�0�|�|��dSr )rh)r)r^s  r�addz
DebugMemo.addls���	�	�"�
�
�
�
�
rc��	|���}tj|j|��dS#|j���}t��}|���D],\}}	tj||i|���#d|z||<Y�*xYw|�|d��tj||��YdSxYw)Nz<unpicklable object %r>r)�tellr��dumpr]�copyrr�r)r)r��pos�S�ffr�r$s       r�_dumpzDebugMemo._dumpos���	������C��K��
�1�%�%�%�%�%��		��j�o�o���A��y�y�B��w�w�y�y�
9�
9���!�9��K��1��b�)�)�)�)��9�4�q�8�A�a�D�D�D����
�F�F�3�q�M�M�M��K��!���������s"�.2�AC
�5B
�C
�
B�0C
c��t|jd��}	|�|��|���dS#|���wxYw)N�wb)rrr�r|r��r)r�s  rrwzDebugMemo.dump~�J���������	��J�J�q�M�M�M�
�G�G�I�I�I�I�I��A�G�G�I�I�I�I�����A�Ac�p�t��}|�|��|���Sr )rr|r`rs  rr�zDebugMemo.dumps�s(���I�I���
�
�1�
�
�
��z�z�|�|�rc�8�tj|��|_dSr )r�rr]rs  r�_loadzDebugMemo._load�s���[��^�^��
�
�
rc��t|jd��}	|�|��|���dS#|���wxYw)N�rb)rrr�r�r�rs  rrzDebugMemo.load�r�r�c�J�|�t|����dSr )r�r)r)r@s  rr�zDebugMemo.loads�s ���
�
�7�1�:�:�����rc
���|�|dd���t|�����}|���|D]�}||x}}t	|t
��r|d}	t
|��tj|}t|dd��|krdpd}n#d}d}YnxYw|�d|�d|�d	|�d
�����dS)N�rrS�SAME�	DIFFERENTz??????unknown??????z  � = z (�))
�_writelnrbr"rcr2ra�
__import__r/r�r�)r)r�r$rm�vk�vk0r*r�s        r�_show_module_versionszDebugMemo._show_module_versions�s����
�
�a����e����������N�N��	�������
	7�
	7�A���t�O�B���"�U�#�#�0�2�a�5�S�
*��1�
�
�
��K��N���A�m�D�1�1�3�6�A�6�P�[����
*���)��������M�M�M�a�a�a����1�1�1�5�6�6�6�6�
	7�
	7s�?:B:�:Cc�N�|�d|�d|dd��d���dS)Nz###################r�r�z##################)r�)r)r��whats   r�_bannerzDebugMemo._banner�s1���
�
�
�d�d�d�1�Q�R�R�5�5�5�Q�R�R�R�R�Rrc�2�|�|d��dS)NzStart  �r�r�s  r�_startzDebugMemo._start�������Q�y�!�!�!�!�!rc�2�|�|d��dS)NzFinish r�r�s  r�_finishzDebugMemo._finish�r�rc��|�|��|�|��|�|��dSr )r�r�r�r�s   r�_show_lineszDebugMemo._show_lines�s6�����A�����
�
�a�������Q�����rc��|�dtj�|d����}|�||d��dS)Nr�rr
)r�r�basenamer�r�s   r�
_show_filezDebugMemo._show_file�sG���q�q���)�)�!�A�$�/�/�/�0������1�Q�4� � � � � rc��|rKddl}|�|��|�||j��|�|��dSdSr�)�pprintr�r\r�)r)r�r$r�s    r�
_show_payloadzDebugMemo._show_payload�sU���	��M�M�M��K�K��N�N�N��M�M�!�D�K�(�(�(��L�L��O�O�O�O�O�		�	rc
�p�dD]�}	|gj}t|��tj|}||j��dD]0}t||��r||�dt
||�������1n#|d��YnxYw|�dd�|j	��z����dS)N)�	_rl_accel�	_renderPM�sgmlop�pyRXP�pyRXPU�_imagingr)rSr�_versionr-r\z	not foundr�)
r�r�r/r�rfr�r�r�r��__self__)r)�mnr�r*�vns     r�_show_extensionszDebugMemo._show_extensions�s���X�	4�	4�B�	
��D�K���2�����K��O����!�*�
�
�
�H�8�8�B��q��}�}�8���R�R�R���"�
�
�
�6�7�7�7��8��
���+����������M�M�#�c�h�h�q�z�2�2�2�3�3�3�3�	4�	4s�A,A3�3
B)rYrZr)rNc���t|j�����}|���|D]P}|t|j�����vr&|�|d�d|j|�����Q|D]M}|t|j�����vr#|j||||j|���N|���dS)N�15r�)rbr]r"rc�specialsr�r�)r)rmr�s   r�showzDebugMemo.show�s��������"�"�#�#��	�������	d�	d�A���T�]�/�/�1�1�2�2�2�2�D�M�M�RS�RS�RS�RS�TX�T^�_`�Ta�Ta�Bb�4c�4c�4c���	W�	W�A��D���+�+�-�-�.�.�.�.�0@��
�a�0@��a��
�ST�
�0V�0V�0V���������rc�(�|jd|Srq�r]�r)rns  rrrzDebugMemo.payload�����z�+�&�t�,�,rc�&�||jd|<dSrqr�)r)rnrTs   rr�zDebugMemo.__setitem__�s��(-��
�;���%�%�%rc�(�|jd|Srqr�r�s  rr�zDebugMemo.__getitem__�r�rc�@�|j�|dz��dSr�)r\r()r)�msgs  rr�zDebugMemo._writeln�s"������#�d�(�#�#�#�#�#r)r&r�r
rr
N)rrrrVr�rhrtr|rwr�r�rr�r�r�r�r�r�r�r�r�r�r�rrr�r�r�rrrr%r%�s���������2Y�Y�Y�Y�v���
���
�
�
�������
$�$�$�������7�7�7� S�S�S�"�"�"�"�"�"����
!�!�!����4�4�4�&;�*�*�&���H�
 � � �-�-�-�.�.�.�-�-�-�$�$�$�$�$rr%c�f�|D]-}t|��rt||���"||���.dSr )r4�_flatten)r
r�rws   rr�r��sF��
������8�8�	�X�a��]�]�]�]��a��d�d�d�d��rc�4�g}t||j��|S)z'recursively flatten the list or tuple L)r�r�)r
r�s  r�flattenr��s��
�A��Q�q�x�����Hrc�\�	|tj|��j��}|r|S|dz
}�,)zPapply func to the locals at each stack frame till func returns a non false valuer
)r/r��f_locals)rU�depth�_s   r�find_localsr��s:����D���u�%�%�.�/�/����Q�h�
��
��rc��eZdZd�Zd�ZdS)�_FmtSelfDictc�"�||_||_dSr )�obj�
_overrideArgs)r)r��overrideArgss   rr�z_FmtSelfDict.__init__�s�����)����rc��	|j|S#t$r=	|jj|cYS#t$rt	|j|��cYcYSwxYwwxYwr )r�r�r�r�r�r�s  rr�z_FmtSelfDict.__getitem__�s���	+��%�a�(�(���	+�	+�	+�
+��x�(��+�+�+�+���
+�
+�
+��t�x��*�*�*�*�*�*�*�
+����	+���s)��
A�.�A�A�
A�A�AN)rrrr�r�rrrr�r��s2������*�*�*�+�+�+�+�+rr�c��eZdZdZd�ZdS)�FmtSelfDictz mixin to provide the _fmt methodc�,�t||��}||zSr )r�)r)�fmtr�r�s    r�_fmtzFmtSelfDict._fmt	s����|�,�,���Q�w�rN)rrrrVr�rrrr�r�s)������*�*�����rr�c��g}|d��}g}|}|���D]j}||��}||z|z|ks|gkr|�|��||z|z}�=|�d�|����|g}|}�k|gkr(|�d�|����|S)Nr�)r�r�r�)	�txt�mW�SWr
�ws�Or�r��lts	         r�_simpleSplitr�
s���
�A�	��C���B�
�A�	��A�
�Y�Y�[�[����
�R��U�U���R�4��7�B�;�;�!�R�%�%�
�H�H�Q�K�K�K��B����A�A�
�H�H�S�X�X�a�[�[�!�!�!���A��A�A��"�u�u�a�h�h�s�x�x��{�{�#�#�#��Hrc����ddlm�t|���d��}||f�fd�	}|r-g}|D]&}|�t|||�����'|}|S)Nr)�stringWidthrqc����|||��Sr r)�text�fN�fSr�s   �rrzsimpleSplit.<locals>.<lambda>!s�����D�"�b�0I�0I�r)�reportlab.pdfbase.pdfmetricsr�rNr��extendr�)	r��fontName�fontSize�maxWidth�linesr�r
�lr�s	        @r�simpleSplitr�s����8�8�8�8�8�8��d�O�O�!�!�%�(�(�E�!�h�	I�	I�	I�	I�	I�B������	2�	2�A�
�H�H�\�!�H�R�0�0�1�1�1�1����Lrc��ddlm}|�|St|��r|�d��}||��}|�dd��}|�dd��}|�d	d
��}|S)zEscapes once onlyr)�escapeNr;�	&amp;amp;�&amp;�&amp;gt;�&gt;�&amp;lt;�&lt;)�xml.sax.saxutilsr�r<rMr)r�r�r@s   r�escapeTextOncer�)s���'�'�'�'�'�'��|����t�}�}�-�$�+�+�f�-�-�a��6�$�<�<�D��<�<��X�.�.�D��<�<��W�-�-�D��<�<��W�-�-�D��Krc��t|��r|StD] }	|�|��cS#Y�xYwtd|z���)Nz(cannot convert %r to filesystem encoding)rZ�fsEncodingsrMr�)r�rIs  r�fileName2FSEncr�5sa����}�}���
��	�	�C�
��y�y��~�~�%�%�%��
������
�?�"�D�
E�
E�Es�3�7c���tjdg|dg��}tj|d��\}}}	||��||��||��n#t$rYnwxYwt	|||��S)a�
    Loop over a collection with look-ahead and look-back.
    
    From Thomas Guest, 
    http://wordaligned.org/articles/zippy-triples-served-with-python
    
    Seriously useful looping tool (Google "zippy triples")
    lets you loop a collection and see the previous and next items,
    which get set to None at the ends.
    
    To be used in layout algorithms where one wants a peek at the
    next item coming down the pipe.

    Nr�)�	itertools�chain�tee�
StopIteration�zip)r�r��prev�this�nexts     r�prev_this_nextr�As��� �_�d�V�U�T�F�
3�
3�F� �}�V�Q�/�/��D�$��
���T�
�
�
���T�
�
�
���T�
�
�
�
���
�
�
���
�����t�T�4� � � s�!A�
A"�!A"c���t|��r|�d��}t|��dz
}|dz
}d}dg}||kr�||dkr^||dzdkr|dxxdz
cc<|dz
}nO|d���|d<||kr|�d��n|dxx||z
cc<|dz
}||k��|d���|d<|S)a
    Splits the string s at every unescaped comma and returns the result as a list.
    To escape a comma, double it. Individual items are stripped.
    To avoid the ambiguity of 3 successive commas to denote a comma at the beginning
    or end of an item, add a space between the item seperator and the escaped comma.
    
    >>> commasplit(u'a,b,c') == [u'a', u'b', u'c']
    True
    >>> commasplit('a,, , b , c    ') == [u'a,', u'b', u'c']
    True
    >>> commasplit(u'a, ,,b, c') == [u'a', u',b', u'c']
    r;r
r�rrr�r	)r<rMr�r�r�)r@rrTr&s    r�
commasplitr�[s���q�z�z�'�q�x�x��'�'�1��A���q��A���I�A�	�A�
�e�A�
�Q�$�$��Q�4��:�:���1��v�t�|�|��"����t������Q�����"����
�
��"���a�4�4����#�����
�b�E�E�E�Q�q�T�M�E�E�E�	�1����Q�$�$�
�b�E�K�K�M�M�A�b�E��Hrc�@�d�d�|D����S)a�
    Inverse of commasplit, except that whitespace around items is not conserved.
    Adds more whitespace than needed for simplicity and performance.
    
    >>> commasplit(commajoin(['a', 'b', 'c'])) == [u'a', u'b', u'c']
    True
    >>> commasplit((commajoin([u'a,', u' b ', u'c'])) == [u'a,', u'b', u'c']
    True
    >>> commasplit((commajoin([u'a ', u',b', u'c'])) == [u'a', u',b', u'c'] 
    r�c�`�g|]+}dt|���dd��zdz��,S)r�r�z,,)rNr)r>rTs  rr?zcommajoin.<locals>.<listcomp>�s8��S�S�S�1�t�i��l�l�2�2�4��?�?�?�$�F�S�S�Sr)r�)r�s r�	commajoinr{s&���9�9�S�S�PQ�S�S�S�T�T�TrTc�6�|rtjjptjj}||��r|Stjj}tj�|��s |D]}|||��}||��r|cS�|rt
d|�d|�����|S)z*search for relative files in likely placeszcannot locate z with paths=)r�rr�r�r�rr�)r��pathsr��fail�existsrr8rs        r�findInPathsr�s���
�
&����
7�"�'�-�F�
�v�b�z�z��"�9��G�L�E�
�7�=�=������	�	�A��%��"�+�+�C��v�c�{�{�
��
�
�
�
��L�:�:�"�"�"�U�U�K�L�L�
L�
�Irrr�c���tj��\}}}t|||�d�|t	|��|fD������|��dS)z,add msg to the args of an existing exceptionc3�K�|]}|�|V��	dSr r)r>r�s  r�	<genexpr>z$annotateException.<locals>.<genexpr>�s'����B�B�1��B�Q�B�B�B�B�B�BrN)r/rJr�r�r7)r�rI�postMsgr�r�r$r�s       rrFrF�s]��

�,�.�.�E�A�a���q���3�8�8�B�B��S��V�V�G�(<�B�B�B�C�C�D�D�Q�G�G�G�G�Grc�f�|�dd��}|�dd��}|�dd��}|�dd��}|�dd	��}|�dd��}|�dd��}|�dd��}|S)
z�Ensure XML output is escaped just once, irrespective of input

    >>> escapeOnce('A & B')
    'A &amp; B'
    >>> escapeOnce('C &amp; D')
    'C &amp; D'
    >>> escapeOnce('E &amp;amp; F')
    'E &amp; F'

    �&r�r�r�r�r�r�z&amp;#z&#)r)r�s r�
escapeOncer�s����<�<��W�%�%�D�
�<�<��W�-�-�D��<�<�
�F�+�+�D��<�<�
�F�+�+�D��<�<��$�'�'�D��<�<��W�-�-�D��<�<�
�F�+�+�D��<�<�
�F�+�+�D��Krc��eZdZdZd�ZdS)�IdentStrz,useful for identifying things that get splitc���t|t��r5|j}|ddtt	|����z�}|dz
}nd}|d|zz
}t�||��}||_|S)Nr�r
rz[%d])r2r�_IdentStr__incr�r7�__new__)r�rT�incr)s    rrzIdentStr.__new__�s{���e�H�%�%�	��+�C��-�Q�s�3�s�8�8�}�}�_�-�-�.�E��1�H�C�C��C�
��#�����{�{�3�u�%�%����
��rN�rrrrVrrrrrr�s)������6�6�
�
�
�
�
rrc��eZdZdZd�ZdS)�RLStringz�allows specification of extra properties of a string using a dictionary of extra attributes
    eg fontName = RLString('proxima-nova-bold',
                    svgAttrs=dict(family='"proxima-nova"',weight='bold'))
    c��t�||��}|���D]\}}t|||���|Sr )r7rr�r�)r�r$r�r)r�s     rrzRLString.__new__�sJ���{�{�3�q�!�!���:�:�<�<�	�	�C�A�a��D��1������rNrrrrrr�s-������������rrc�N�t|��s|�d��}|S)zEforce filename strings to unicode so python can handle encoding stuffr;)rZrMr?s r�makeFileNamer�s&���Q�<�<��
�H�H�V�����Hrc�*�eZdZdZd�Zd�Zd�Zd�ZdS)�
FixedOffsetTZz&Fixed offset in minutes east from UTC.c�J�tj||���|_||_dS)N)�hours�minutes)�datetime�	timedelta�_FixedOffsetTZ__offset�_FixedOffsetTZ__name)r)r�r*rns    rr�zFixedOffsetTZ.__init__�s$�� �*��a�@�@�@��
�����rc��|jSr )r"�r)�dts  r�	utcoffsetzFixedOffsetTZ.utcoffset�s
���}�rc��|jSr )r#r%s  r�tznamezFixedOffsetTZ.tzname�s
���{�rc�*�tjd��Sr�)r r!r%s  r�dstzFixedOffsetTZ.dst�s���!�!�$�$�$rN)rrrrVr�r'r)r+rrrrr�sV������0�0����������%�%�%�%�%rrc�B�eZdZdd�Zed���Zed���ZdS)�	TimeStampNc�*�|�ddlm}tj�dd�����}|s|r3|rt
|��nd}tj|��}dx}}d|_	nitj��}ttj|����}t
tjdz��}tjdzd	z}d|_	||_
||_t|��dd
�|_||_||_dS)Nr)�	invariant�SOURCE_DATE_EPOCHrg��6�A�UTCg �@i�<r�)r�r/r�rbr�r�r`rdrfr)ra�	localtime�timezoner�r��YMDhms�dhh�dmm)r)r/r�r�r6r7s      rr�zTimeStamp.__init__�s����5�5�5�5�5�5��J�N�N�.�r�2�2�8�8�:�:���
	��
	��,��A�����A���Q���B��M�C�#��D�K�K��	���A��t�~�a�(�(�)�)�B��d�m�v�.�/�/�C��=�4�'�2�-�C��D�K��������B�i�i����m����������rc���|jrCtj�|jt	|j|j|j����Stj���Sr )r)r �
fromtimestampr�rr6r7�nowr(s rr zTimeStamp.datetime�sR���;�	+��$�2�2�4�6�-���QU�QY�Z^�Ze�:f�:f�g�g�g��$�(�(�*�*�*rc�4�tj|j��Sr )rdrer�r(s rrezTimeStamp.asctimes���|�D�G�$�$�$rr )rrrr��propertyr rerrrr-r-�s^����������*�+�+��X�+��%�%��X�%�%�%rr-c�V�t|��s"tdt|���d|�����t|��}|���}|stdt|��z���|r|ddvrdnd}t
d|�|��it|����	��S)
z/Can call down into e.g. object1.object2[4].attrzinvalid recursive access of r@zempty recursive access of %srz[.(rr�)r�)�gr�)rWrYrHrRr�r�rrc)r�rnr>�dots    r�recursiveGetAttrr@s�����;�;�_�i�i�t�TW�y�y�y�y�Y]�Y]�(^�_�_�_��D�>�>�D��:�:�<�<�D��M�z�"@�4��9�9�"L�M�M�M��
6�$�q�'��.�.�#�#�B�C��<�3�3�t�t�,��d�s�m�m�m�D�D�D�Drc��|�d��}t|��dkrt|||��dSd�|dd���}|d}t	||��}t|||��dS)z7Can call down into e.g. object1.object2[4].attr = valuer@r
Nr	)r�r�r�r�r@)r�rnrT�tokens�most�last�parents       r�recursiveSetAttrrFs����Z�Z��_�_�F�
�6�{�{�a�����T�5�!�!�!�!�!��x�x��s��s��$�$���b�z��!�#�t�,�,�����e�$�$�$�$�$rc��|�d��}t|��dkrt||��dSd�|dd���}|d}t	||��}t||��dS)Nr@r
r	)r�r��delattrr�r@)r�rnrBrCrDrEs      r�recursiveDelAttrrIs��
�Z�Z��_�_�F�
�6�{�{�a�����T�������x�x��s��s��$�$���b�z��!�#�t�,�,���������rc#��K�d}t|��}||krR	|�d|��}|||�V�|dz}|sdSn#t$r||d�V�YdSwxYw||k�PdSdS)z:yield sublists of L separated by None; the Nones disappearrNr
)r��indexr�)r
rTr�js    r�yieldNoneSplitsrM$s�����	�A��A���A�
�A�#�#�	�����Q���A��A�a�C�&�L�L�L��!��A��O�e�e�O���	�	�	��A�B�B�%�K�K�K��E�E�	����
�A�#�#�#�#�#�#s�)A�A!� A!)r;r )r�)NNr�)NN)Nrrr�)r�)r)TF)r;rr�)�rSrVr�r�r/rdrhr rF�astrr�rr�rr��ior�hashlibr�reportlab.lib.rltempfilerr	rrr
r�PILrrr,�python_implementation�isPyPyr"r&r!r*r-r0rarbr4r8rgr7rE�strTypesrArJrNrPrRrUrWr<rZr]rxrzr|r�r�r�r�r�r��rl_execr�r�r�r�r�rcr�rnr�r�r�r�rOrrerf�__RL_DIRrr6r%r]r$rr�r!r-�NotImplementedErrorr5r7�archiver
r�rrr	r�rrrDrrr�r'r��splitextr2r.r0r3r9rErP�
haveImagesrRrarirorw�urllib.parserxry�urllib.requestrzr}r�r�r�r�r�r�r�r��getmtime�mktimer�r�r�r�r�r�r�r!rr%r�r�r�r�r�r�r�r�r�r�r�r�rrrFrrrr�tzinforr-r@rFrIrMrrr�<module>ras���
��D��8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�������W�W�W�W�W�W�W�W�������������D�D�D�D�D�D�D�D�^�^�^�^�^�^�^�^�^�^�^�^���������������
�I�K�K�	���O�O�O�
+�X�
+�
-�
-�v�
5�F�F���
�F�F�F����'�'�'����������$�q�s�)�)������ � � ��t����������T�$�Z�Z����;��B�B�B�P�P�P�P�R�R�R�R�T�T�T�T� � � � ����&�&�&� � � �������P�P�P�"�"�"�"�"�"�"�K�K�K�D�D�D�>�>�>�:�:�:�����
�'�(�6�
"�
"���\�\�\��������
����
�
�
�
�6.�6.�6.�6.�6.�T�6.�6.�6.�p�7�e�������������������������
�
�N� 
�
�
�
�
�
�
�
�
�����	�����+�	,�	,��
��
�
�h���,�H�I������0I�0I��
���H�H����x��{�H�H�H������������1��M��
�F��;�=�)�)�)�Y�!�!�"G�-�"W�X�X�X��w����� 0� 0��1F� G� G�H�H�H��R�V�#�K��'�/�/�(�+�+�K� �2�6�)�N��S��%�%�N���N�+�+�� +�#1�%� +�%'�W�%5�%'�W�%5� �i��6�!$��R�V���(�(�(�(�.&�&�&�"�Y�w���VX�V]�Vb��������
�W�^�^�H�
%�
%�F��M����!�Y�����������'�
�
I�R�W�^�^�B�G�$4�$4�X�$>�$>�q�$A�5�$H�I�I�����������B�B�B� '�w�y�1D�\�\�R�R��,=�,=�,=�,=�\�$�
�
���������*
�*
�*
�X�����������+�*�*�*�*�*�*�*�"�"�"�"�"�"� � � �8$�8$�8$�8$�t����0�0�0�0�!#���3�3�3�3�!�g�m�R�W�=M�c�c�c�c�!#��
�r�w�?O�[]�[e�R�R�R�R�#%�'�.�"�'�BR�df�dk�dt�BF�BM�	j�	j�	j�	j�-�,�,�,�,�,�0�0�0�&�&�&�*���@�@�@�@�@�@�@�@�D	�	�	�	�	�k�	�	�	�9�9�9�t$�t$�t$�t$�t$�t$�t$�t$�l���

�
�
�����+�+�+�+�+�+�+�+���������
�
�
�"	�	�	�
�
�
�	F�	F�	F�����!�!�!�4
�
�
�@U�U�U�����H�H�H�H�
���6�����s����	�	�	�	�	�s�	�	�	�
�
�
�%�%�%�%�%�H�O�%�%�%� %�%�%�%�%�%�%�%�BE�E�E�E�
%�
%�
%��������s%�-B�B�?G�G�C2K�+K?

Youez - 2016 - github.com/yon3zu
LinuXploit