
    RjP                     :   d Z ddlZddlmZ ddlmZmZmZmZmZ ddl	m
Z
 ddlmZmZmZmZ ddlmZmZmZmZmZmZmZmZmZmZ erdd	lmZ ej         fZ! G d
 d          Z" G d de"e          Z# G d de"          Z$ G d de          Z% G d de          Z&dS )zK
Usage documentation at: <https://py-pdf.github.io/fpdf2/Annotations.html>
    N)datetime)TYPE_CHECKINGAnyOptionalSequenceUnion   )Action)AnnotationFlagAnnotationNameAssociatedFileRelationshipFileAttachmentAnnotationName)
DestinationNamePDFContentStreamPDFDate	PDFObject	PDFStringbuild_obj_dictcreate_dictionary_stringcreate_list_stringiobj_ref)StandardSecurityHandlerc            +          e Zd Zeddddddddddddddfdedededededeeez  d	f         d
ee         dee	e
z           dee         deeeeef                  dee         dee         deee                  dedeeedf         deeed	f                  deedef                  dee         dee         dee         ddf*dZdS )AnnotationMixinNr   subtypexywidthheightflags.contentsdestactioncolormodification_timetitlequad_pointsborder_widthnameink_list	file_specFileSpec
field_typevaluedefault_appearancereturnc           	         t          d          | _        t          |          | _        d|dd||z
  dd||z   dd|dd	| _        d| d| _        |rt          |          nd | _        || _        t          t          d |D                                 | _	        |rt          |d	          nd | _        |	| _        || _        |
rd|
d
          d|
d          d|
d          dnd | _        |rt          |d	          nd | _        |rt!          |d	          nd | _        |rt%          d |D                       nd | _        d | _        || _        |rdt%          d |D                       z   dz   nd | _        || _        || _        d S )NAnnot[.2f ]z[0 0 c              3   >   K   | ]}t          j        |          V  d S N)r   coerce).0flags     Q/usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages/fpdf/annotations.py	<genexpr>z+AnnotationMixin.__init__.<locals>.<genexpr>B   s-      II4>066IIIIII    T)encryptr   r	      c                     g | ]}|d S r5    )r;   
quad_points     r=   
<listcomp>z,AnnotationMixin.__init__.<locals>.<listcomp>J   s    HHHj))HHHr?   c                     g | ]}|d S rC   rD   )r;   coords     r=   rF   z,AnnotationMixin.__init__.<locals>.<listcomp>Q   s    BBB^^BBBr?   )r   typer   rectborderf_tvsumtuplefr   r"   ar#   ctr   mpdf_listr(   pr*   r+   f_sd_a)selfr   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r.   r/   r0   s                        r=   __init__zAnnotationMixin.__init__%   s   . MM	G}}IIIIF
IIIUIIIIIII	-l---'1;4
###tUII5IIIIIJJ=EO	(D99994	:?I6U1X66a66586666T38B5$////d=NX*D9999TX HHHKHHHIII 	
 	 S8BBBBBCCCcII 	
 %r?   )__name__
__module____qualname__DEFAULT_ANNOT_FLAGSstrfloatrO   r   r   r   r   r
   r   r   r   r   r   rZ   rD   r?   r=   r   r   $   s        3F"&26#'6:04#15JN046:$(#,0+1& 1&1& 1& 	1&
 1& 1& ^c)3./1& 3-1& {Y./1&  1& eUE1231& $H-1& }1& huo.1& 1&  N$@$FG!1&" 5,-#1&$ E*c/23%1&& SM'1&( })1&* %SM+1&, 
-1& 1& 1& 1& 1& 1&r?   r   c                   0     e Zd ZdZdededdf fdZ xZS )PDFAnnotationz?A PDF annotation that get serialized as an obj<</>>endobj blockargskwargsr1   Nc                 :     t                      j        |i | d S r9   )superrZ   )rY   rc   rd   	__class__s      r=   rZ   zPDFAnnotation.__init__\   s%    $)&)))))r?   )r[   r\   r]   __doc__r   rZ   __classcell__rg   s   @r=   rb   rb   Y   sX        EE*c *S *T * * * * * * * * * *r?   rb   c                   T    e Zd ZdZdZ	 	 d
ded         dee         defdZdefd	Z	dS )AnnotationDictz@A PDF annotation that get serialized as an inline <<dictionary>>)rI   r   rJ   rK   rL   rM   rP   r"   rQ   r#   rR   rS   r(   rV   r*   r+   rW   rX   N_security_handlerr   _obj_idr1   c                 x     t           fdt                     D             ||          }t          |          S )Nc                 2    i | ]}|t          |          S rD   getattrr;   keyrY   s     r=   
<dictcomp>z,AnnotationDict.serialize.<locals>.<dictcomp>~   s%    :::S'$$$:::r?   )rm   rn   )r   dirpdf_dict)rY   rm   rn   obj_dicts   `   r=   	serializezAnnotationDict.serializex   sL    
 "::::D		:::/
 
 

 !!!r?   c                      d t                     D             } fd|D             }d |                                D             }d| dS )Nc                 <    g | ]}|                     d           |S )__)
startswith)r;   rt   s     r=   rF   z+AnnotationDict.__repr__.<locals>.<listcomp>   s)    EEEt0D0DEEEEr?   c                 2    i | ]}|t          |          S rD   rq   rs   s     r=   ru   z+AnnotationDict.__repr__.<locals>.<dictcomp>   s%    555S'$$$555r?   c                 8    i | ]\  }}t          |          ||S rD   )callable)r;   rt   r/   s      r=   ru   z+AnnotationDict.__repr__.<locals>.<dictcomp>   s)    KKKJC8E??KS%KKKr?   zAnnotationDict(**))rv   items)rY   keysds   `  r=   __repr__zAnnotationDict.__repr__   sa    EEs4yyEEE5555555KK!''))KKK'1''''r?   NN)
r[   r\   r]   rh   	__slots__r   intr_   ry   r   rD   r?   r=   rl   rl   `   s        FFI. BF!%
" 
"#$=>
" #
" 
	
" 
" 
" 
"(# ( ( ( ( ( (r?   rl   c                        e Zd Z	 	 	 	 	 	 	 ddedededee         dee         d	ee         d
ee         dedef fdZ	defdZ
deddfdZdefdZddZ xZS )PDFEmbeddedFile NFbasenamer"   desccreation_datemodification_date	mime_typeaf_relationshipcompresschecksumc
                 p   t                                          ||           t          d          | _        dt	          |          i}
|r&t          |d                                          |
d<   |r&t          |d                                          |
d<   |	rMt          j        dd	
          }|	                    | j
                   |                                }d| d|
d<   |rt          |          | _        t          |
          | _        || _        || _        d| _        || _        d | _        d S )N)r"   r   EmbeddedFilez/SizeT)with_tzz/CreationDatez/ModDatemd5F)usedforsecurity<>z	/CheckSum)rf   rZ   r   rI   lenr   ry   hashlibnewupdate	_contents	hexdigestr   rw   params	_basename_desc_globally_enclosed_af_relationship
_file_spec)rY   r   r"   r   r   r   r   r   r   r   r   	file_hashhash_hexrg   s                r=   rZ   zPDFEmbeddedFile.__init__   s<    	(X>>>((	%,c(mm$< 	W&-mT&J&J&J&T&T&V&VF?# 	V!():D!I!I!I!S!S!U!UF: 	2E5AAAIT^,,, **,,H"1h///F; 	+	??DLv&&&
(,FU.2r?   r1   c                     | j         S r9   r   rY   s    r=   globally_enclosedz!PDFEmbeddedFile.globally_enclosed   s    &&r?   r/   c                     || _         d S r9   r   )rY   r/   s     r=   set_globally_enclosedz%PDFEmbeddedFile.set_globally_enclosed   s    "'r?   c                     | j         S r9   )r   r   s    r=   r   zPDFEmbeddedFile.basename   s
    ~r?   r-   c                 j    | j         s&t          | | j        | j        | j                  | _         | j         S r9   )r   r-   r   r   r   r   s    r=   r,   zPDFEmbeddedFile.file_spec   s7     	&dndj$2G DO r?   )r   NNNNFF)r1   r-   )r[   r\   r]   r_   bytesr   r   r   boolrZ   r   r   r   r,   ri   rj   s   @r=   r   r      s2       
 ,004#'@D3 33 3 	3
  )3 $H-3 C=3 ""<=3 3 3 3 3 3 3 3B'4 ' ' ' '(4 (D ( ( ( (#           r?   r   c            
       j     e Zd Z	 	 d	dededee         dee         f fdZedefd            Z	 xZ
S )
r-   Nembedded_filer   r   r   c                 0   t                                                       t          d          | _        t	          |          | _        t	          |          | _        |rt	          |          | _        |rt          |j                  | _	        || _
        d S )NFilespec)rf   rZ   r   rI   r   rP   u_fr   r/   a_f_relationship_embedded_file)rY   r   r   r   r   rg   s        r=   rZ   zFileSpec.__init__   s     	$$	8$$X&& 	(!$DI 	@$()>$?$?D!+r?   r1   c                 R    t          dt          | j        j                  i          S )Nz/F)rw   pdf_refr   idr   s    r=   e_fzFileSpec.e_f   s#    wt':'=>>?@@@r?   r   )r[   r\   r]   r   r_   r   r   rZ   propertyr   ri   rj   s   @r=   r-   r-      s         #@D, ,&, , sm	,
 ""<=, , , , , ," AS A A A XA A A A Ar?   r-   )'rh   r   r   typingr   r   r   r   r   actionsr
   enumsr   r   r   r   syntaxr   r   r   r   r   r   r   r   rw   r   rU   r   r   
encryptionr   PRINTr^   r   rb   rl   r   r-   rD   r?   r=   <module>r      s0           @ @ @ @ @ @ @ @ @ @ @ @ @ @                                          4333333 &+- 2& 2& 2& 2& 2& 2& 2& 2&j* * * * *OY * * *(( (( (( (( ((_ (( (( ((V0 0 0 0 0& 0 0 0fA A A A Ay A A A A Ar?   