a
    ¥Q•h©4  ã                
   @   s€  i Z i Zeed d ¡ ƒƒZdd lZeeddƒZ[eD ]PZ	i Z
z*ede	 e
ƒ e
d e e	< erdd ee	< W n ey€   d ee	< Y n0 [
q4er¾ddlmZmZmZmZmZ ddlmZ dd	lmZ d
ev �reedƒfdd„ZdZdd
„ Zdedƒv rþeZdd„ Zeed
< dev �r dd„ Zeed< dev �r<dBdd„Zeed< dev �rXdCdd„Zeed< dev �rrdd„ Zeed< dev �rŒdd„ Z e ed< d ev �r¦d!d „ Z!e!ed < d"ev �r2i Z"e#d#ƒD ]bZ$e$d$k �sÔe$d%k�râd&e$ e"e$< n:e$e%d'ƒe%d(ƒe%d)ƒfv �rd'e&e$ƒ e"e$< ne&e$ƒe"e$< �q¼[$d*d"„ Z'e'ed"< d+ev �rLd,d+„ Z(e(ed+< d-ev �rfd.d-„ Z)e)ed-< d/ev �r€d0d/„ Z*e*ed/< e+ƒ Z,eD ]:Z	e	e v �r e e	 nee	 Z-e-�sºe.d1e	 ƒ‚e-e,e	< �qŠ[	[-[,e/d2k�r|dd l0Z0dd l1Z1d 2d3 ¡ ¡Z3d4D ]‚\Z4Z5d5D ]rZ6d6 2d7d8d9e6› d:e3› �fe5 ¡Z7e6d;k�r:d<e7 Z7e8d=e6› d>e4› �ƒ e#d?ƒD ]Z9e1 :e0j;d@dAe7e4g¡ �qV�q�qød S )DNzð
        fp_str
        unicode2T1
        instanceStringWidthT1
        instanceStringWidthTTF
        asciiBase85Encode
        asciiBase85Decode
        escapePDF
        sameFrag
        calcChecksum
        add32
        hex32
        é    Z_rl_testingFzfrom _rl_accel import %s as fÚf)Ú	isUnicodeÚisSeqÚrawBytesÚasNativeÚasBytes)Úlog)ÚunpackÚfp_strg      $@c                 C   s   || ƒ| S ©N© )Úxr   Z	_log_e_10r   r   úO/var/www/sistema_ama/venv/lib/python3.9/site-packages/reportlab/lib/rl_accel.pyÚ<lambda>'   ó    r   )z%.0fz%.1fz%.2fz%.3fz%.4fz%.5fz%.6fc                  G   s   t | ƒdkr t| d ƒr | d } g }|j}| D ]Æ}t|ƒ}|dkrL|dƒ q.|dkrXdprttddtt|ƒƒ ƒdƒ}t| | }|rÈt |ƒ}|r¼|d8 }|| dkrŒ|| dkr¼|d7 }q¼qŒ|d|… }||d dksât |ƒdkræ|pð|dd… ƒ q.d 	|¡S )	zXconvert separate arguments (or single sequence arg) into space separated numeric stringsé   r   gH¯¼šò×z>Ú0é   Ú.Nú )
Úlenr   ÚappendÚabsÚminÚmaxÚintÚ_log_10Ú_fp_fmtsÚjoin)ÚaÚsÚAÚiÚsaÚlÚnÚjr   r   r   r
   )   s$     (.ú,g      Ð?c                  G   s   t | Ž  dd¡S )Nr'   r   )Ú_FP_STRÚreplace)r   r   r   r   Ú_fp_strB   s    r*   Ú
unicode2T1c           	   
   C   s   g }|d |dd…  }}|j }d|v r,d}| rüz.t| ƒrF|  |¡}n| }| ||f¡ W qüW q, tyø } z‚|jdd… \}}|r | || d|…  |¡f¡ |r¾| t| ||… |ƒ¡ n| |j|j	||  f¡ | |d… } W Y d}~q,d}~0 0 q,|S )zBreturn a list of (font,string) pairs representing the unicode textr   r   NzUCS-2ZUTF16é   é   )
ZencNamer   Úencoder   ÚUnicodeEncodeErrorÚargsÚextendr+   Z_notdefFontZ_notdefChar)	ZutextZfontsÚRÚfontÚencr    ÚeZi0Zilr   r   r   r+   G   s*    $ÚinstanceStringWidthT1Úutf8c                 C   s:   t |ƒs| |¡}tdd„ t|| g| j ƒD ƒƒd | S )z&This is the "purist" approach to widthc                 s   s$   | ]\}}t t|jj|ƒƒV  qd S r   )ÚsumÚmapZwidthsÚ__getitem__)Ú.0r   Útr   r   r   Ú	<genexpr>f   r   z(instanceStringWidthT1.<locals>.<genexpr>çü©ñÒMbP?)r   Údecoder8   r+   ZsubstitutionFonts©ÚselfÚtextÚsizeÚencodingr   r   r   r6   c   s    ÚinstanceStringWidthTTFúutf-8c                    sH   t |ƒs| |pd¡}| jjj‰| jj‰ d| t‡ ‡fdd„|D ƒƒ S )zCalculate text widthrF   r>   c                 3   s   | ]}ˆt |ƒˆ ƒV  qd S r   )Úord)r;   Úu©ZdwÚgr   r   r=   p   r   z)instanceStringWidthTTF.<locals>.<genexpr>)r   r?   ZfaceZ
charWidthsÚgetZdefaultWidthr8   r@   r   rI   r   rE   j   s
    
Úhex32c                 C   s   dt | ƒd@  S )Nz0X%8.8Xì   ÿÿ )r   )r"   r   r   r   rL   t   s    Úadd32c                 C   s   | | d@ S )zCalculate (x + y) modulo 2**32rM   r   )r   Úyr   r   r   rN   y   s    ÚcalcChecksumc                 C   sJ   t | ƒ} t| ƒd@ r,| dt| ƒd@  d  } ttdt| ƒd?  | ƒƒd@ S )zCalculates TTF-style checksumsé   r-   ó    z>%dlr,   rM   )r   r   r8   r	   )Údatar   r   r   rP      s    $Ú	escapePDFé   é    é   z\%03oú\ú(ú)c                 C   s:   g }| D ]&}t |ƒtur t|ƒ}| t| ¡ qd |¡S )NÚ )Útyper   rG   r   Ú_ESCAPEDICTr   )r    ÚrÚcr   r   r   rT   ‘   s    ÚasciiBase85Encodec                 C   sÞ  t | ƒ}tt| ƒdƒ\}}d| }| d|… | |d…  }}g j}t|ƒD �]j}|d }	||	 }
||	d  }||	d  }||	d  }|r¨t|
ƒ}
t|ƒ}t|ƒ}t|ƒ}|
dk rÎ|
d> |B d> |B d> |B }nd	|
 d
|  d|  | }|dkrü|dƒ qJt|dƒ\}}t|dƒ\}}t|dƒ\}}t|dƒ\}}d| d|  d|  d|  | |k�sfJ dƒ‚|t|d ƒƒ |t|d ƒƒ |t|d ƒƒ |t|d ƒƒ |t|d ƒƒ qJ|dk�rÊ|dt|ƒ |�rØdnd 7 }|d }
|d }|d }|d }|�r&t|
ƒ}
t|ƒ}t|ƒ}t|ƒ}d	|
 d
|  d|  | }t|dƒ\}}t|dƒ\}}t|dƒ\}}t|dƒ\}}t|d ƒt|d ƒ t|d ƒ t|d ƒ t|d ƒ }||d|d … ƒ |dƒ d |j¡S )zñEncodes input using ASCII-Base85 coding.

        This is a compact encoding used for binary data within
        a PDF file.  Four bytes of binary data become five bytes of
        ASCII.  This is the default method used for encoding images.r-   r   Nr   r,   rQ   é€   é   é   é   rU   ÚzéU   é±„éí^	 é9  údodgy code!é!   ú rR   ú~>r[   )	r   Údivmodr   r   ÚrangerG   Úchrr   Ú__self__)ÚinputZdoOrdÚwhole_word_countÚremainder_sizeÚcutÚbodyÚlastbitÚoutr"   ÚoffsetÚb1Úb2Úb3Úb4ÚnumÚtempÚc5Úc4Úc3Úc1Úc2Úlastwordr   r   r   r`   ›   sf    
2
<ÚasciiBase85Decodec                 C   s  d  t| ƒ ¡ ¡}|dd… dks*J dƒ‚|dd… }| dd¡}tt|ƒdƒ\}}d| }|d	|… ||d…  }}g j}t|ƒD �]}|d }	t||	 ƒd
 }
t||	d  ƒd
 }t||	d  ƒd
 }t||	d  ƒd
 }t||	d  ƒd
 }d|
 d|  d|  d|  | }t|dƒ\}}t|dƒ\}}t|dƒ\}}|d| d|  d|  | k�sjJ dƒ‚|t	|ƒƒ |t	|ƒƒ |t	|ƒƒ |t	|ƒƒ q„|d	k�rðt|ƒdk �rÀ|d }�q¦t|d	 ƒd
 }
t|d ƒd
 }t|d ƒd
 }t|d ƒd
 }t|d ƒd
 }d|
 | d | d | d |d|   }t|dƒ\}}t|dƒ\}}t|dƒ\}}|d| d|  d|  | k�s�J dƒ‚|dk�r¤t	|ƒ}nD|dk�rÀt	|ƒt	|ƒ }n(|dk�rät	|ƒt	|ƒ t	|ƒ }nd}||ƒ d  |j
¡}t|dd�S )z¡Decodes input using ASCII-Base85 coding.

        This is not normally used - Acrobat Reader decodes for you
        - but a round trip is essential for testing.r[   éþÿÿÿNrm   z+Invalid terminator for Ascii Base 85 Streamre   z!!!!!é   r   rk   r   r,   rQ   r-   rg   rh   ri   rf   rU   rc   rd   rj   ú!)r   r   iÿÿÿ iÿÿ  éÿ   Úlatin1)r4   )r   r   Úsplitr)   rn   r   r   ro   rG   rp   rq   r   )rr   Ústrippedrs   rt   ru   rv   rw   rx   r"   ry   rƒ   r„   r‚   r�   r€   r~   r   r}   r|   rz   r{   r…   r^   r   r   r   r†   î   sb    $*
 ÿ*



ÚsameFragc                 C   sX   t | dƒs(t |dƒs(t | dƒs(t |dƒr,dS dD ]"}t| |dƒt||dƒkr0 dS q0dS )z+returns 1 if two ParaFrags map out the sameZcbDefnZ	lineBreakr   )ZfontNameZfontSizeZ	textColorZriseZus_linesÚlinkZ	backColorZnobrNr   )ÚhasattrÚgetattr)r   rJ   r   r   r   r   rŽ   ;  s    ÿÿ z#function %s is not properly definedÚ__main__zÊadd32 asciiBase85Decode asciiBase85Encode
                    calcChecksum escapePDF fp_str hex32
                    instanceStringWidthT1 instanceStringWidthTTF
                    sameFrag unicode2T1)	)z$instanceStringWidthTTF(font,text,10))zfont=TTFont('Vera','Vera.ttf')útext='abcde fghi . jkl ; mno')z7instanceStringWidthT1(font,'abcde fghi . jkl ; mno',10))zCfonts=[getFont('Helvetica')]+getFont('Helvetica').substitutionFontszfont=fonts[0]r“   )zescapePDF(text))u   text='abcdefghijklÃ³')z!fp_str(1.23456,2.7891666,2,13,11)r   )zcalcChecksum(text))z.text=5*' abcdefgiijklMnoPQrstuvwxyz1234567890')zhex32(0x12345678)r   )zadd32(0x12345678,123456789)r   )zasciiBase85Encode(src))z-src=5*' abcdefgiijklMnoPQrstuvwxyz1234567890')zasciiBase85Decode(_85text))zD_85text=asciiBase85Encode(5*' abcdefgiijklMnoPQrstuvwxyz1234567890'))Ú	_rl_accelzreportlab.lib.rl_accelú;z0from reportlab.pdfbase.pdfmetrics import getFontz,from reportlab.pdfbase.ttfonts import TTFontzfrom z import r”   z)import sys;sys.modules['_rl_accel']=None;ztiming r   r,   z-mtimeitz-s)r7   )rF   )<Z_c_funcsZ	_py_funcsÚlistÚfilterrŒ   Ú__all__Ú	reportlabr‘   ZtestingÚfnÚDÚexecÚImportErrorÚreportlab.lib.utilsr   r   r   r   r   Úmathr   Ústructr	   r   r   r
   r*   r(   r+   r6   rE   rL   rN   rP   r]   ro   r_   rG   rp   rT   r`   r†   rŽ   ÚglobalsÚGr   ÚRuntimeErrorÚ__name__ÚsysÚ
subprocessr   ZfunclistÚcmdÚxsÚmodnamer    Úprintr"   Ú
check_callÚ
executabler   r   r   r   Ú<module>   s°   










P
J

ýü
