Ë
    o]jH  ã                   óL   — d Z ddlZddlmZ ddlmZ ddlmZ d„ Z	 	 d
d„Z	d	„ Z
y)z7Find anchors, links, bookmarks and inputs in documents.é    Né   )Úboxes)Ú
percentage)ÚMatrixc                 ó*  — | s||||z   ||z   fS | j                   } |||«      \  }} |||z   |«      \  }}	 ||||z   «      \  }
} |||z   ||z   «      \  }}t        |||
|«      }t        ||	||«      }t        |||
|«      }t        ||	||«      }||||fS )z„Apply a transformation matrix to an axis-aligned rectangle.

    Return its axis-aligned bounding box as ``(x1, y1, x2, y2)``.

    )Útransform_pointÚminÚmax)ÚmatrixÚpos_xÚpos_yÚwidthÚheightr   Úx1Úy1Úx2Úy2Úx3Úy3Úx4Úy4Úbox_x1Úbox_y1Úbox_x2Úbox_y2s                     úI/var/www/zogu/zoguvenv/lib/python3.12/site-packages/weasyprint/anchors.pyÚrectangle_aabbr   
   sÈ   € ñ Ø�e˜U U™]¨E°F©NÐ:Ð:Ø×,Ñ,€OÙ˜U EÓ*�F€BˆÙ˜U U™]¨EÓ2�F€BˆÙ˜U E¨F¡NÓ3�F€BˆÙ˜U U™]¨E°F©NÓ;�F€BˆÜ��R˜˜RÓ €FÜ��R˜˜RÓ €FÜ��R˜˜RÓ €FÜ��R˜˜RÓ €FØ�6˜6 6Ð)Ð)ó    c           
      óˆ  — | j                   d   �r×t        | t        j                  «      �s¼| j	                  «       }| j                  «       }| j                   d   \  }	}
t        |	| j                   |«      }t        |
| j                   |«      }| j                  «       |z   }	| j                  «       |z   }
t        |	|
¬«      }| j                   d   D ]á  \  }}d\  }}}}}}|dk(  r|\  }}nµ|dk(  r0t        j                  |«      x}}t        j                  |«      }| }n€|dk(  r5t        |d   | j                   |«      }t        |d	   | j                   |«      }nF|d
k(  r1t        j                  |d	   «      t        j                  |d   «      }}n|dk(  sJ ‚|\  }}}}}}t        ||||||«      |z  }Œã t        |	 |
 ¬«      |z  | _        |r| j                  |z  }n| j                  }n|}| j                  }| j                   d   dk(  rd}n| j                   d   }| j                   d   }| j                   d   }| j                   d   }|xr |}|xr+ t        | t        j                   t        j"                  f«       }|xr ||v}| j%                  «       }| j'                  «       r| j(                  }||vrg ||<   |s|s|s|�r[|r9| j+                  «       | j-                  «       } }| j.                  | j0                  }"}!n| j3                  «       \  }} }!}"|s|rt5        ||| |!|"«      }#|rO|\  }$}|$dk(  sJ ‚|\  }%}&t        |&t6        «      sJ ‚|%dk(  r| j9                  «       rd}%|j;                  |%|&#| f«       |r+||   j;                  | j(                  | j                   #f«       |r0|r|j=                  || «      \  }} |||| f|f}'|j;                  |'«       |rF|| ||!z   | |"z   f\  }(})}*}+|r*|j=                  |(|)«      \  }(})|j=                  |*|+«      \  }*}+|(|)|*|+f||<   | j?                  «       D ]  },tA        |,||||||«       Œ y)zƒGather anchors and other data related to specific positions in PDF.

    Currently finds anchors, links, bookmarks and forms.

    Ú	transformÚtransform_origin)ÚeÚf)r   r   r   r   r   r   ÚscaleÚrotateÚ	translater   r   Úskewr   Úbookmark_levelÚnoneNÚbookmark_stateÚlinkÚanchorÚurlÚexternalÚ
attachment)!ÚstyleÚ
isinstancer   Ú	InlineBoxÚborder_widthÚborder_heightr   Úborder_box_xÚborder_box_yr   ÚmathÚcosÚsinÚtanÚtransformation_matrixÚbookmark_labelÚTextBoxÚLineBoxÚis_inputÚis_formÚelementÚcontent_box_xÚcontent_box_yr   r   Úhit_arear   ÚstrÚis_attachmentÚappendr   Úall_childrenÚgather_anchors)-ÚboxÚanchorsÚlinksÚ	bookmarksÚformsÚparent_matrixÚparent_formr3   r4   Úorigin_xÚorigin_yÚoffset_xÚoffset_yr   ÚnameÚargsÚaÚbÚcÚdr"   r#   r<   r(   Ústater+   Úanchor_nameÚhas_bookmarkÚhas_linkÚ
has_anchorr?   r   r   r   r   Ú	rectangleÚ
token_typeÚ	link_typeÚtargetÚbookmarkÚpos_x1Úpos_y1Úpos_x2Úpos_y2Úchilds-                                                r   rI   rI      sd  € ð ‡y�y�Ó¤j°´e·o±oÕ&FØ×'Ñ'Ó)ˆØ×)Ñ)Ó+ˆØ ŸY™YÐ'9Ñ:Ñˆ�(Ü˜h¨¯	©	°<Ó@ˆÜ˜h¨¯	©	°=ÓAˆØ×#Ñ#Ó%¨Ñ0ˆØ×#Ñ#Ó%¨Ñ0ˆä˜( hÔ/ˆØŸ)™) KÑ0ò 	7‰JˆD�$Ø/ÑˆAˆq�!�Q˜˜1Ø�wŠØ‘�‘1Ø˜Ò!ÜŸ™ ›Ð&��AÜ—H‘H˜T“N�Ø�B‘Ø˜Ò$Ü˜t A™w¨¯	©	°<Ó@�Ü˜t A™w¨¯	©	°=ÓA‘Ø˜’Ü—x‘x  Q¡Ó(¬$¯(©(°4¸±7Ó*;�1‘à˜xÒ'Ð'Ð'Ø#'Ñ ��1�a˜˜A˜qÜ˜A˜q ! Q¨¨1Ó-°Ñ6‰Fð!	7ô$ �h�Y 8 )Ô,¨vÑ5ð 	Ô!áØ×.Ñ.°Ñ>‰Fà×.Ñ.‰Fàˆà×'Ñ'€NØ
‡y�yÐ!Ñ" fÒ,Ø‰àŸ™Ð#3Ñ4ˆØ�I‰IÐ&Ñ'€EØ�9‰9�VÑ€DØ—)‘)˜HÑ%€KØ!Ò4 n€LàÒKœJ s¬U¯]©]¼E¿M¹MÐ,JÓKÐK€HàÒ; °GÐ!;€JØ�|‰|‹~€Hà
‡{�{„}Ø—k‘kˆØ˜eÑ#Ø!#ˆE�+Ñá‘x¡:²ÙØ×,Ñ,Ó.°×0AÑ0AÓ0C�5ˆEØŸI™I s§z¡z�6‰Eà*-¯,©,«.Ñ'ˆE�5˜% Ù‘xÜ& v¨u°e¸UÀFÓKˆIÙØ#ÑˆJ˜Ø Ò&Ð&Ð&Ø $ÑˆI�vÜ˜f¤cÔ*Ð*Ð*Ø˜JÒ&¨3×+<Ñ+<Ô+>Ø(�	Ø�L‰L˜) V¨Y¸Ð<Ô=ÙØ�+Ñ×%Ñ% s§{¡{°C·I±I¸yÐ&IÔJÙÙØ%×5Ñ5°e¸UÓC‘��uØ&¨¸À¸ÈÐNˆHØ×Ñ˜XÔ&ÙØ-2°E¸5À5¹=È%ÐRXÉ.Ð-XÑ*ˆF�F˜F FÙØ!'×!7Ñ!7¸ÀÓ!G‘�˜Ø!'×!7Ñ!7¸ÀÓ!G‘�˜Ø$*¨F°F¸FÐ#CˆG�KÑ à×!Ñ!Ó#ò UˆÜ�u˜g u¨i¸ÀÈÕTñUr   c                 óØ  — | j                   D ]Ú  \  }}\  }}	}
||kD  r|j                  ||z
  dz
  «       n?|}||k  r|d|j                  «       z   z  }||k  rŒ||kD  r|j                  ||z
  dz
  «       |}|t        |«      z
  }|t	        |«      k(  sJ ‚|dk\  sJ ‚g }|j                  ||	«      \  }}	||||	f||
f}||dz
     j                  |«       ||d…= |j                  |«       ŒÜ |S )z-Make a tree of all bookmarks in a given page.r   N)rM   rG   ÚpopÚsumÚlenr   )ÚpageÚskipped_levelsÚlast_by_depthÚprevious_levelÚpage_numberr   ÚlevelÚlabelÚpoint_xÚpoint_yr[   ÚtempÚdepthÚchildrenÚsubtrees                  r   Úmake_page_bookmark_treer{   „   s1  € ð 48·>±>ò 'Ñ/ˆˆuÑ(�w ¨%Ø�>Ò!ð ×!Ñ! %¨.Ñ"8¸1Ñ"<Õ=àˆDØ˜Ò'Ø˜˜N×.Ñ.Ó0Ñ0Ñ0�ð ˜Ó'à�nÒ$à×%Ñ% d¨^Ñ&;¸aÑ&?Ô@àˆØœ˜NÓ+Ñ+ˆØœ˜NÓ+Ò+Ð+Ð+Ø˜ŠzÐˆzàˆØ!×1Ñ1°'¸7ÓCÑˆ�Ø˜;¨°Ð9¸8ÀUÐKˆØ�e˜a‘iÑ ×'Ñ'¨Ô0Ø˜%™&Ð!Ø×Ñ˜XÕ&ð1'ð2 Ðr   )NN)Ú__doc__r7   Úformatting_structurer   Úlayout.percentr   r   r   r   rI   r{   © r   r   ú<module>r€      s0   ðÙ =ã å 'Ý &Ý ò*ð( IMØ#ócUóLr   