+
    �vjM  ã                   ó–  € ^ RI t ^ RIt^ RIt^ RIHt ^ RIHtHtHt ^ RI	H
t
HtHtHtHtHtHtHtHtHtHt ^ RIHt ^ RIHt ^ RIHtHt ^ RIHt ^R	IHtH t  ^R
I!H"t"H#t# ]PH                  ! ]%4      t&]
'       d   ^RI'H(t( ^RI)H*t* ]R.]+3,          t,R R lt- ! R R4      t.] ! R R].4      4       t/ ! R R]04      t1 ! R R].4      t2R# )é    N)Údeque)ÚasdictÚ	dataclassÚfield)ÚTYPE_CHECKINGÚAnyÚCallableÚDictÚIterableÚIteratorÚListÚOptionalÚPatternÚTupleÚUnion)Ú
NumberTree)Ú	PDFParser)Ú	PDFObjRefÚresolve1)Ú	PSLiteral)ÚT_bboxÚT_obj)Údecode_textÚgeometry)ÚPage)ÚPDFÚPDFStructElementc                óš   € V ^8„  d   QhR\         R,          R\        \        \        \        ,          \        3,          R\
        R,          /# )é   Úelementsr   ÚmatcherÚreturn)r   r   Ústrr   Ú	MatchFuncr   )Úformats   "ÚX/var/www/html/daimler-pipeline/venv/lib/python3.14/site-packages/pdfplumber/structure.pyÚ__annotate__r'   '   sB   € ÷ ,ñ ,ÜÐ)Õ*ð,ä”3œ¤�¤iÐ/Õ0ð,ô Ð Õ!ñ,ó    c              #  óf  a"  € R V3R llpR V3R llp\        S\        4      '       d   TpM%\        S\        P                  4      '       d   TpMSp\	        V 4      pV'       dI   VP                  4       pV! V4      '       d   Vx € VP                  \        VP                  4      4       KP  R# 5i)z5
Common code for `find_all()` in trees and elements.
c                ó(   € V ^8„  d   QhRRR\         /# ©r   Úxr   r"   ©Úbool)r%   s   "r&   r'   Ú_find_all.<locals>.__annotate__/   s   € ÷ !ñ !Ð'ð !¬Dñ !r(   c                ó"   <€ V P                   S8H  # )zMatch an element name.)Útype©r,   r!   s   &€r&   Ú	match_tagÚ_find_all.<locals>.match_tag/   s   ø€ à�v‰v˜Ñ Ð r(   c                ó(   € V ^8„  d   QhRRR\         /# r+   r-   )r%   s   "r&   r'   r/   3   s   € ÷ %ñ %Ð)ð %¬dñ %r(   c                ó:   <€ SP                  V P                  4      # )z,Match an element name by regular expression.)Úmatchr1   r2   s   &€r&   Úmatch_regexÚ_find_all.<locals>.match_regex3   s   ø€ à�}‰}˜QŸV™VÓ$Ð$r(   N)	Ú
isinstancer#   Úrer   r   ÚpopleftÚ
extendleftÚreversedÚchildren)r    r!   r3   r8   Ú
match_funcÚdÚels   &f     r&   Ú	_find_allrC   '   sˆ   øé € ÷!ð !÷%ð %ô �'œ3×ÒØ‰
Ü	�GœRŸZ™Z×	(Ò	(Ø ‰
àˆ
Üˆh‹€Aß
Ø�Y‰Y‹[ˆÙ�b�>Š>ØŠHØ	�‰”X˜bŸk™kÓ*Ö+ñ	 ùs   ƒA#B1Á'B1Â,B1c                   óT   a € ] tR t^Et o RtV 3R lR ltV 3R lR ltV 3R ltRtV t	R# )	ÚFindablezNfind() and find_all() methods that can be inherited to avoid
repeating oneselfc                ó^   <€ V ^8„  d   QhRS[ S[S[S[,          S[3,          RS[R,          /# ©r   r!   r"   r   )r   r#   r   r$   r   )r%   Ú__classdict__s   "€r&   r'   ÚFindable.__annotate__K   s3   ø€ ÷ 	1ñ 	1Ù™S¡'©#¥,±	Ð9Õ:ð	1á	Ð$Õ	%ñ	1r(   c                ó.   € \        V P                  V4      # )z×Iterate depth-first over matching elements in subtree.

The `matcher` argument is either an element name, a regular
expression, or a function taking a `PDFStructElement` and
returning `True` if the element matches.
)rC   r?   ©Úselfr!   s   &&r&   Úfind_allÚFindable.find_allK   s   € ô ˜Ÿ™¨Ó0Ð0r(   c                ó^   <€ V ^8„  d   QhRS[ S[S[S[,          S[3,          RS[R,          /# rG   )r   r#   r   r$   r   )r%   rH   s   "€r&   r'   rI   V   s3   ø€ ÷ ñ Ù™S¡'©#¥,±	Ð9Õ:ðá	Ð$Õ	%ñr(   c                óf   €  \        \        V P                  V4      4      #   \         d     R# i ; i)zÌFind the first matching element in subtree.

The `matcher` argument is either an element name, a regular
expression, or a function taking a `PDFStructElement` and
returning `True` if the element matches.
N)ÚnextrC   r?   ÚStopIterationrK   s   &&r&   ÚfindÚFindable.findV   s/   € ð	Üœ	 $§-¡-°Ó9Ó:Ð:øÜô 	Úð	ús   ‚! ¡0¯0c                ó4   <€ V ^8„  d   Qh/ S[ R,          ;R&   # )r   r   r?   )r   )r%   rH   s   "€r&   r'   rI   E   s   ø‡ ‚ ñ Ð%Õ&Ñ&ò	 r(   © N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rM   rS   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©rH   s   @r&   rE   rE   E   s%   ø‡ € ñ÷
	1ð 	1÷ð ÷# ƒ r(   rE   c                   ó˜   a € ] tR t^et o ]! ]R7      t]! ]R7      t]! ]R7      t	V 3R lR lt
V 3R lR ltV 3R lR ltV 3R ltR	tV tR
# )r   )Údefault_factoryc                ó.   <€ V ^8„  d   QhRS[ R,          /# )r   r"   r   )r   )r%   rH   s   "€r&   r'   ÚPDFStructElement.__annotate__s   s   ø€ ÷ #ñ #™(Ð#5Õ6ñ #r(   c                ó,   € \        V P                  4      # ©N©Úiterr?   ©rL   s   &r&   Ú__iter__ÚPDFStructElement.__iter__s   ó   € Ü�D—M‘MÓ"Ð"r(   c                óV   <€ V ^8„  d   QhRS[ S[S[S[,          S[3,          ,          /# ©r   r"   )r   r   r   Úint)r%   rH   s   "€r&   r'   rc   v   s'   ø€ ÷ 0ñ 0™8¡E©(±3­-¹Ð*<Õ$=Õ>ñ 0r(   c              #  ó@  "  € V P                    F  pV P                  V3x € K  	  \        V P                  4      pV'       dZ   VP	                  4       pVP                    F  pVP                  V3x € K  	  VP                  \        VP                  4      4       Ka  R# 5i)zqCollect all MCIDs (with their page numbers, if there are
multiple pages in the tree) inside a structure element.
N)ÚmcidsÚpage_numberr   r?   r<   r=   r>   )rL   ÚmcidrA   rB   s   &   r&   Ú	all_mcidsÚPDFStructElement.all_mcidsv   sy   é € ð
 —J”JˆDØ×"Ñ" DÐ(Ô(ñ ä�$—-‘-Ó ˆßØ—‘“ˆBØŸœ�Ø—n‘n dÐ*Ô*ñ !à�L‰Lœ "§+¡+Ó.Ö/ñ	 ùs   ‚A BÁABc                ó6   <€ V ^8„  d   QhRS[ S[S[3,          /# rm   ©r
   r#   r   )r%   rH   s   "€r&   r'   rc   „   s   ø€ ÷ ñ ™™c¡3˜h�ñ r(   c                ó:  € \        V 4      p\        V.4      pV'       d|   VP                  4       p\        VP	                  4       4       F+  pW4,          e   W4,          . 8X  g   W4,          / 8X  g   K)  W4 K-  	  RV9   g   Ki  VP                  VR,          4       Kƒ  V# )z'Return a compacted dict representation.r?   )r   r   r<   ÚlistÚkeysÚextend)rL   ÚrrA   rB   Úks   &    r&   Úto_dictÚPDFStructElement.to_dict„   ss   € ä�4‹Lˆä�1�#‹JˆßØ—‘“ˆBÜ˜"Ÿ'™'›)–_�Ø•5’= B¥E¨R¤K°2µ5¸B¶;Øšñ %ð ˜RÖØ—‘˜˜J�Ö(Øˆr(   c                óB  <€ V ^8„  d   Qh/ S[ ;R&   S[S[,          ;R&   S[S[ ,          ;R&   S[S[ ,          ;R&   S[S[ ,          ;R&   S[S[ ,          ;R&   S[S[ ,          ;R&   S[S[,          ;R&   S[S[ S[3,          ;R	&   S[S[,          ;R
&   S[R,          ;R&   # )r   r1   ÚrevisionÚidÚlangÚalt_textÚactual_textÚtitlerq   Ú
attributesrp   r   r?   )r#   r   rn   r
   r   r   )r%   rH   s   "€r&   r'   rc   e   s¿   ø‡ ‚ á
�Iñ ñ ‘s�mÑñ ñ 	‘�Ññ	 ñ
 ‘3�-Ññ ñ ‘s�mÑñ ñ ™#•Ññ ñ ‘C�=Ññ ñ ™#•Ññ ñ ‘S™#�X•Ñ<ñ ñ ‘�9Ñ2ñ ñ Ð%Õ&ÑDò r(   rV   N)rW   rX   rY   rZ   r   Údictr†   rx   rp   r?   ri   rs   r}   r\   r]   r^   r_   s   @r&   r   r   e   sJ   ø‡ € ñ "'°tÔ!<€JÙ¨TÔ2€EÙ).¸tÔ)D€H÷#ð #÷0ð 0÷ð ÷? ƒ r(   c                   ó   € ] tR t^“tRtR# )ÚStructTreeMissingrV   N)rW   rX   rY   rZ   r]   rV   r(   r&   r‰   r‰   “   s   † Ûr(   r‰   c                   óÖ   a € ] tR t^—t o RtRV 3R lR lltV 3R lR ltV 3R lR ltV 3R	 lR
 ltV 3R lR lt	V 3R lR lt
V 3R lR ltV 3R lR ltV 3R lR ltV 3R ltRtV tR# )ÚPDFStructTreeaN  Parse the structure tree of a PDF.

The constructor takes a `pdfplumber.PDF` and optionally a
`pdfplumber.Page`.  To avoid creating the entire tree for a large
document it is recommended to provide a page.

This class creates a representation of the portion of the
structure tree that reaches marked content sections, either for a
single page, or for the whole document.  Note that this is slightly
different from the behaviour of other PDF libraries which will
also include structure elements with no content.

If the PDF has no structure, the constructor will raise
`StructTreeMissing`.

Nc                ó2   <€ V ^8„  d   QhRRRS[ R,          /# )r   Údocr   Úpager   ©r   )r%   rH   s   "€r&   r'   ÚPDFStructTree.__annotate__«   s    ø€ ÷ ,&ñ ,&˜Eð ,&©°&Õ)9ñ ,&r(   c                ó†  a€ VP                   V n         R V P                   P                  9  d   \        R4      h\        V P                   P                  R ,          4      V n        \        V P                  P                  R/ 4      4      V n        \        V P                  P                  R/ 4      4      V n        . V n        Veæ   W n	        VP                  V/V n        RV n        V P                  P                  R4      pVf   V P                  4        R# \        V4      pRV P                  P                  P                   9  d   R# V P                  P                  P                   R,          o\        \#        V3R lVP$                   4       4      4      pV P'                  V4       R# RV n	        VP                   Uu/ uF  q"P                  VbK  	  upV n        V P                  P%                  4        Uu/ uF#  q"P                  P(                  VP                  bK%  	  upV n        V P                  4        R# u upi u upi )ÚStructTreeRootzPDF has no structureÚRoleMapÚClassMapNÚ
ParentTreeÚStructParentsc              3   ó>   <"  € T F  w  rVS8X  g   K  Vx € K  	  R # 5ire   rV   )Ú.0ÚnumÚarrayÚ	parent_ids   &  €r&   Ú	<genexpr>Ú)PDFStructTree.__init__.<locals>.<genexpr>Í   s   øé € ÐXÑ1C¡: 3ÀsÈiÑGWŸšÓ1Cùs   ƒ“
)r�   Úcatalogr‰   r   ÚrootÚgetÚrole_mapÚ	class_mapr?   rŽ   rq   ÚpagesÚ	page_dictÚ_parse_struct_treer   Úpage_objÚattrsrQ   ÚvaluesÚ_parse_parent_treeÚpageid)rL   r�   rŽ   Úparent_tree_objÚparent_treeÚparent_arrayr›   s   &&&   @r&   Ú__init__ÚPDFStructTree.__init__«   s¿  ø€ Ø—7‘7ˆŒØ 4§8¡8×#3Ñ#3Ô3Ü#Ð$:Ó;Ð;Ü˜TŸX™X×-Ñ-Ð.>Õ?Ó@ˆŒ	Ü  §¡§¡¨y¸"Ó!=Ó>ˆŒÜ! $§)¡)§-¡-°
¸BÓ"?Ó@ˆŒØ02ˆŒð ÒØŒIØ×*Ñ*¨DÐ1ˆDŒJØ!ˆDŒNð #Ÿi™iŸm™m¨LÓ9ˆOØÒ&Ø×'Ñ'Ö)ä(¨Ó9�ð #¨$¯)©)×*<Ñ*<×*BÑ*BÔBÙØ ŸI™I×.Ñ.×4Ñ4°_ÕE�	ä'ÜÔX°×1CÒ1CÓXÓXó �ð ×'Ñ'¨Ö5àˆDŒIà=@¿YºYÓG¹Y°T×*Ñ*¨DÒ0¹YÑGˆDŒJàCGÇ:Á:×CTÑCTÔCVóÙCV¸4—‘×$Ñ$ d×&6Ñ&6Ò6ÑCVñˆDŒNð ×#Ñ#Ö%ùò	 Hùòs   Æ=H9Ç6)H>c                óh   <€ V ^8„  d   QhRS[ S[S[3,          RS[S[,          RS[ S[S[3,          /# )r   Úobjr€   r"   )r
   r#   r   r   rn   )r%   rH   s   "€r&   r'   r�   Ù   s9   ø€ ÷ /ñ /Ù™™S˜•>ð/Ù-5±c­]ð/á	‰c‘3ˆh�ñ/r(   c                ó6  € . pR FV  pWA9  d   K  \        W,          4      p\        V\        4      '       d   VP                  V4       KE  VP	                  V4       KX  	  . pRpV FX  p\        V\
        4      '       d    W‚8X  d   Ve   VP	                  V4       RpK8  Ve   VP	                  V4       \        V4      pKZ  	  Ve   VP	                  V4       / p	V F»  p\        V\        4      '       dQ   \        VP                  4      pW@P                  9  d   \        P                  RV4       KV  V P                  V,          pVP                  4        F>  w  r«\        V\        4      '       d   \        VP                  4      Wš&   K4  W,          Wš&   K@  	  K½  	  V	# )ÚCNzUnknown attribute class %s)r³   ÚA)r   r:   rx   rz   Úappendrn   r   r   Únamer¢   ÚloggerÚwarningÚitems)rL   r±   r€   Úattr_obj_listÚkeyÚattr_objÚ	attr_objsÚprev_objÚarefÚattrr|   Úvs   &&&         r&   Ú_make_attributesÚPDFStructTree._make_attributesÙ   s[  € ð ˆÛˆCØŒ~ÙÜ ¥Ó)ˆHä˜(¤D×)Ò)Ø×$Ñ$ XÖ.à×$Ñ$ XÖ.ñ ð ˆ	ØˆÛ!ˆDô ˜$¤×$Ò$ØÔ#¨Ò(<Ø×$Ñ$ XÔ.Ø’àÒ'Ø×$Ñ$ XÔ.Ü# D›>’ñ "ð ÒØ×Ñ˜XÔ&ð ˆÛˆCÜ˜#œy×)Ò)Ü! #§(¡(Ó+�ØŸn™nÔ,Ü—N‘NÐ#?ÀÔEÙØ—n‘n SÕ)�ØŸ	™	ž‘�Ü˜a¤×+Ò+Ü)¨!¯&©&Ó1�D“Gà!�f�D“Gó	 $ñ ð ˆr(   c                ó\   <€ V ^8„  d   QhRS[ RS[S[S[,          S[S[ ,          3,          /# ©r   r±   r"   )r   r   r   r   r   )r%   rH   s   "€r&   r'   r�   
  s0   ø€ ÷ (!ñ (!¡ð (!©©xÑ8HÕ/IÉ4ÑPSÍ9Ð/TÕ)Uñ (!r(   c                óF  € R V9  g   Q RV,          4       hRV9  g   Q RV,          4       hRpV P                   eL   RV9   dE   VR,          P                  pW0P                   9   g   Q RV,          4       hV P                   V,          pRpRV9   dS   \        VR,          P                  4      pW@P                  9   d'   \        V P                  V,          P                  4      pR	V9   d   \        VR	,          4      M. p\        V\        4      '       d   V.pM \        V\        4      '       d   VR	,          .pVP                  R
4      pV P                  W4      pRV9   d   \        \        VR,          4      4      MRpRV9   d   \        \        VR,          4      4      MRp	RV9   d   \        \        VR,          4      4      MRp
RV9   d   \        \        VR,          4      4      MRpRV9   d   \        \        VR,          4      4      MRp\        VVVVV
V	VVVR7	      pWÕ3# )ÚMCIDzUncaught MCR: %sÚObjzUncaught OBJR: %sNÚPgzObject on unparsed page: %sÚ ÚSÚKÚRÚIDÚTÚLangÚAltÚ
ActualText)	r1   r�   rq   r€   r‚   r…   rƒ   r„   r†   )r¤   Úobjidr   r¶   r¡   r   r:   rn   r‡   r    rÂ   r   )rL   r±   rq   Ú
page_objidÚobj_tagr?   r€   r†   Ú
element_idr…   r‚   rƒ   r„   Úelements   &&            r&   Ú_make_elementÚPDFStructTree._make_element
  sß  € à˜SÔ Ð:Ð"4°sÕ":Ó:Ð Ø˜CÔÐ:Ð!4°sÕ!:Ó:ÐàˆØ�>‰>Ò%¨$°#¬+Ø˜T�Ÿ™ˆJØ§¡Ô/ÐTÐ1NÐQTÕ1TÓTÐ/ØŸ.™.¨Õ4ˆKØˆØ�#Œ:Ü! # c¥(§-¡-Ó0ˆGØŸ-™-Ô'Ü% d§m¡m°GÕ&<×&AÑ&AÓB�Ø),°¬”8˜C �HÔ%¸ˆÜ�h¤×$Ò$Ø �z‰HÜ˜¤$×'Ò'Ø˜C��zˆHØ—7‘7˜3“<ˆØ×*Ñ*¨3Ó9ˆ
Ø9=À¼”[¤¨#¨d­)Ó!4Ô5È$ˆ
Ø36¸#´:”œH S¨¥XÓ.Ô/À4ˆØ5;¸s´]Œ{œ8 C¨¥KÓ0Ô1ÈˆØ8=À¼”;œx¨¨E­
Ó3Ô4È$ˆà8DÈÔ8KŒKœ  \Õ!2Ó3Ô4ÐQUð 	ô #ØØØ#ØØØØØ#Ø!ô

ˆð Ð Ð r(   c                ó4   <€ V ^8„  d   QhRS[ S[,          RR/# )r   r­   r"   N©r   r   )r%   rH   s   "€r&   r'   r�   4  s   ø€ ÷ "ñ "©t±C­yð "¸Tñ "r(   c                óÎ  € \        V4      p/ pRpV'       d³   VP                  4       pV\        P                  8X  d   K/  \	        V4      V9   d   KA  \        V4      pRV9   d&   \        VR,          P                  4      R8X  d   RpKx  V P                  V4      w  rxVf   Q hWx3V\	        V4      &   VP                  VR,          4       Kº  V'       g   Q hV P                  V4       R# )zQPopulate the structure tree using the leaves of the parent tree for
a given page.FÚTyper’   TNÚP)r   r<   r   ÚKEYWORD_NULLÚreprr   r   r¶   rØ   rµ   Ú_resolve_children)	rL   r­   rA   ÚsÚ
found_rootÚrefr±   r×   r?   s	   &&       r&   r©   Ú PDFStructTree._parse_parent_tree4  sÊ   € ô �,ÓˆØˆØˆ
ßØ—)‘)“+ˆCð ”i×,Ñ,Ô,ÙÜ�C‹y˜AŒ~ÙÜ˜3“-ˆCà˜Œ}¤¨S°­[×-=Ñ-=Ó!>ÐBRÔ!RØ!’
ð %)×$6Ñ$6°sÓ$;Ñ!�àÒ*Ð*Ð*Ø&Ð0�”$�s“)‘Ø—‘˜˜S�Ö"çÐˆzØ×Ñ˜qÖ!r(   c                ó<   <€ V ^8„  d   QhRS[ S[S[3,          RS[/# rÅ   )r
   r#   r   r.   )r%   rH   s   "€r&   r'   r�   S  s#   ø€ ÷ 
ñ 
¡$¡s©C x¥.ð 
±Tñ 
r(   c                óÞ   € R V9  d   R# VR ,          P                   pV P                  e   W P                  9   # V P                  e'   W P                  P                  P                  8w  d   R# R# )rÉ   TF)rÓ   r¤   rŽ   r¦   rª   )rL   r±   rÔ   s   && r&   Úon_parsed_pageÚPDFStructTree.on_parsed_pageS  sV   € Ø�sŒ?ÙØ˜•Y—_‘_ˆ
Ø�>‰>Ò%Ø§¡Ñ/Ð/Ø�9‰9Ò àŸY™Y×/Ñ/×6Ñ6Ô6ÙÙr(   c                ó   <€ V ^8„  d   QhRR/# )r   r"   NrV   )r%   rH   s   "€r&   r'   r�   _  s   ø€ ÷ B"ñ B" Dñ B"r(   c                óP  a aa	€ \        S P                  R,          4      p\        V\        4      '       d   S P                  R,          .p\	        V4      p/ o	V'       Ed#   VP                  4       p\        V4      S	9   d   K+  \        V4      p\        V\        4      '       d5   RV9   d.   S P                  V4      '       g   Kl  VR,          p\        V4      pS P                  V4      w  rVWV3S	\        V4      &   V F€  p\        V4      p\        V\        4      '       d4   S P                  V4      '       g   K=  RV9   d   VR,          pM	RV9   d   KW  \        V\        4      '       g   Ko  VP                  V4       K‚  	  EK+  R VV	V 3R lloS! V4       S P                  S	4       R# )z_Populate the structure tree starting from the root, skipping
unparsed pages and empty elements.rÌ   rÈ   rÇ   c                ó\   € V ^8„  d   QhR\         \        ,          R\         \        ,          /# )r   r    r"   rÛ   )r%   s   "r&   r'   Ú6PDFStructTree._parse_struct_tree.<locals>.__annotate__‡  s"   € ÷ 	!ñ 	!œD¤�Ið 	!¬$¬s­)ñ 	!r(   c                 óò  <€ . pV  Fí  p\        V4      p\        V\        4      '       d   VP                  V4       K7  \        V\        4      '       dK   SP                  V4      '       g   Kf  R V9   d   VP                  VR ,          4       K‡  RV9   d
   VR,          pS\        V4      ,          w  rES! V4      pVe	   V'       g   S\        V4       KÍ  WE3S\        V4      &   VP                  V4       Kï  	  V# )rÇ   rÈ   )r   r:   rn   rµ   r‡   rè   rà   )	r    Únext_elementsrä   r±   r×   r?   Úprunerâ   rL   s	   &     €€€r&   rð   Ú/PDFStructTree._parse_struct_tree.<locals>.prune‡  s×   ø€ ØˆMÛ�Ü˜s“m�Ü˜c¤3×'Ò'Ø!×(Ñ(¨Ô-ÙÜ ¤T×*Ò*Ø×.Ñ.¨s×3Ò3Ù Ø ”}Ø%×,Ñ,¨S°­[Ô9Ù Ø #œØ! %�j˜Ø$%¤d¨3£i¥LÑ!�Ù  ›?�à’?¯(Øœ$˜s›)šà#*Ð#4�A”d˜3“i‘LØ!×(Ñ(¨Ö-ñ)  ð* !Ð r(   N)r   rŸ   r:   r‡   r   r<   rà   rè   rØ   r   rµ   rá   )
rL   rŸ   rA   rä   r±   r×   r?   Úchildrð   râ   s
   f       @@r&   r¥   Ú PDFStructTree._parse_struct_tree_  sP  ú€ ô ˜Ÿ	™	 #�Ó'ˆô �dœD×!Ò!Ø—I‘I˜c•NÐ#ˆDÜ�$‹KˆØˆßˆaØ—)‘)“+ˆCä�C‹y˜AŒ~ÙÜ˜3“-ˆCä˜#œt×$Ò$¨°#¬Ø×*Ñ*¨3×/Ò/ÙØ˜%•j�Ü˜s“m�Ø $× 2Ñ 2°3Ó 7ÑˆGð #Ð,ˆAŒd�3‹i‰LÛ!�Ü˜u“o�Ü˜c¤4×(Ò(Ø×.Ñ.¨s×3Ò3Ù Ø ”|Ø # E¥
™Ø 3œÙ Ü˜e¤Y×/Ô/Ø—H‘H˜U–Oô "÷	!ò 	!ñ2 	ˆdŒØ×Ñ˜qÖ!r(   c                ó:   <€ V ^8„  d   QhRS[ S[S[3,          RR/# )r   Úseenr"   Nrv   )r%   rH   s   "€r&   r'   r�   £  s'   ø€ ÷ *Dñ *D¡d©3±¨8¥nð *D¸ñ *Dr(   c                ó°  € \        V P                  R,          4      p\        V\        4      '       d   V P                  R,          .p. V n        . pV Fp  p\        V4      p\        V\        4      '       d*   RV9   d#   V P                  V4      '       g   KD  VR,          p\        V4      V9   g   K_  VP                  V4       Kr  	  \        V4      pV'       EdK   VP                  4       pV\        V4      ,          w  rxVf   Q R4       hV EF  p	\        V	4      p\        V\        4      '       d   VP                  P                  V4       Mi\        V\        4      '       dT   V P                  V4      '       g   Kp  RV9   d$   VP                  P                  VR,          4       MRV9   d
   VR,          p	\        V	\        4      '       g   KÂ  VP                  \        V	4      R4      w  r«V
f   Kå  VP                  P                  V
4       VP                  V	4       EK  	  EKS  V Uu. uF  qA\        V4      ,          ^ ,          NK  	  upV n        R# u upi )zlResolve children starting from the tree root based on references we
saw when traversing the structure tree.
rÌ   rÈ   NzUnparsed elementrÇ   )NN)r   rŸ   r:   r‡   r?   rè   rà   rµ   r   r<   rn   rp   r   r    )rL   rõ   rŸ   Úparsed_rooträ   r±   rA   r×   r?   rò   Úchild_elementÚ_s   &&          r&   rá   ÚPDFStructTree._resolve_children£  sÍ  € ô ˜Ÿ	™	 #�Ó'ˆä�dœD×!Ò!Ø—I‘I˜c•NÐ#ˆDØˆŒàˆÛˆCÜ˜3“-ˆCÜ˜#œt×$Ò$¨°#¬Ø×*Ñ*¨3×/Ò/ÙØ˜%•j�Ü�C‹y˜DÖ Ø×"Ñ" 3Ö'ñ ô �+ÓˆßˆaØ—)‘)“+ˆCØ $¤T¨#£Y¥ÑˆGØÒ&Ð:Ð(:Ó:Ð&Ü!�Ü˜u“o�Ü˜c¤3×'Ò'Ø—M‘M×(Ñ(¨Õ-Ü ¤T×*Ò*à×.Ñ.¨s×3Ò3Ù Ø ”}ØŸ™×,Ñ,¨S°­[Õ9Ø #œØ # E¥
˜ä˜e¤Y×/Ô/Ø'+§x¡x´°U³¸\Ó'JÑ$�MØ$Ô0Ø×(Ñ(×/Ñ/°Ô>ØŸ™ Ÿô# "ñ$ 8CÓC±{°œd 3›i�¨×+Ð+±{ÑCˆŽùÒCs   È(!Ic                ó0   <€ V ^8„  d   QhRS[ S[,          /# rm   )r   r   )r%   rH   s   "€r&   r'   r�   Ï  s   ø€ ÷ #ñ #™(Ñ#3Õ4ñ #r(   c                ó,   € \        V P                  4      # re   rf   rh   s   &r&   ri   ÚPDFStructTree.__iter__Ï  rk   r(   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r   rB   r"   )r   r   )r%   rH   s   "€r&   r'   r�   Ò  s   ø€ ÷ -7ñ -7Ñ/ð -7±Fñ -7r(   c                ó&  € RpV P                   e   V P                   pM+VP                  e   V P                  VP                  ,          pVP                  P	                  RR4      pVe²   Ve®   ^RI HpHpHp V! V! V4      VP                  ^,          VP                  ^,          ,
          4      p\        W$4      '       dY   \        P                  ! V4      pVP                  V.4      pV'       g   \        R4      h\        P                  ! V^ ,          4      # V# . p	VP                  4        Fº  w  r«V
f@   Ve9   \         P"                  P%                  VP&                  P)                  4       4      pMK. pMH\         P"                  P%                  V P                  V
,          P&                  P)                  4       4      pV F$  pVR,          V8X  g   K  V	P+                  V4       K&  	  K¼  	  V	'       g   \        R4      h\        P,                  ! V	4      # )z9Get the bounding box for an element for visual debugging.NÚBBox)ÚCroppedPageÚ_invert_boxÚ_normalize_boxzElement no longer on pagerr   zNo objects found)rŽ   rq   r£   r†   r    r  r  r  Úmediaboxr:   r   Úbbox_to_rectÚ_crop_fnÚ
IndexErrorÚobj_to_bboxrs   Ú	itertoolsÚchainÚfrom_iterableÚobjectsr¨   rµ   Úobjects_to_bbox)rL   rB   rŽ   Úbboxr  r  r  ÚrectÚrectsÚ	mcid_objsrq   rr   r  Úcs   &&            r&   Úelement_bboxÚPDFStructTree.element_bboxÒ  s£  € àˆØ�9‰9Ò Ø—9‘9‰DØ�^‰^Ò'Ø—:‘:˜bŸn™nÕ-ˆDØ�}‰}× Ñ  ¨Ó.ˆØÒ Ò 0ßFÑFñ
 Ù˜tÓ$ d§m¡m°AÕ&6¸¿¹ÀqÕ9IÕ&IóˆDô ˜$×,Ò,Ü×,Ò,¨TÓ2�ØŸ™ t fÓ-�ßÜ$Ð%@ÓAÐAÜ×+Ò+¨E°!­HÓ5Ð5ð �àˆIØ%'§\¡\¦^Ñ!�àÒ&ØÒ'Ü"+§/¡/×"?Ñ"?ÀÇÁ×@SÑ@SÓ@UÓ"V™à"$™ä'Ÿo™o×;Ñ;ØŸ
™
 ;Õ/×7Ñ7×>Ñ>Ó@ó�Gó !�AØ˜•y DÖ(Ø!×(Ñ(¨Ö+ó !ñ &4÷ Ü Ð!3Ó4Ð4Ü×+Ò+¨IÓ6Ð6r(   c                ó4   <€ V ^8„  d   Qh/ S[ R,          ;R&   # )r   r   rŽ   r�   )r%   rH   s   "€r&   r'   r�   —   s   ø‡ ‚ ñ$ �6Õ
Ñò% r(   )r?   r¢   r�   rŽ   r¤   r£   r¡   rŸ   re   )rW   rX   rY   rZ   r[   r®   rÂ   rØ   r©   rè   r¥   rá   ri   r  r\   r]   r^   r_   s   @r&   r‹   r‹   —   su   ø‡ € ñ÷&,&ò ,&÷\/ð /÷b(!ð (!÷T"ð "÷>
ð 
÷B"ð B"÷H*Dð *D÷X#ð #÷-7ð -7÷w	 ƒ r(   r‹   )3r	  Úloggingr;   Úcollectionsr   Údataclassesr   r   r   Útypingr   r   r	   r
   r   r   r   r   r   r   r   Úpdfminer.data_structuresr   Úpdfminer.pdfparserr   Úpdfminer.pdftypesr   r   Úpdfminer.psparserr   Ú_typingr   r   Úutilsr   r   Ú	getLoggerrW   r·   rŽ   r   Úpdfr   r.   r$   rC   rE   r   Ú
ValueErrorr‰   r‹   rV   r(   r&   Ú<module>r#     sµ   ðÛ Û Û 	Ý ß 0Ñ 0÷÷ ÷ ñ õ 0Ý (ß 1Ý 'ç "ß (à	×	Ò	˜8Ó	$€÷ ÝÝð Ð(Ð)¨4Ð/Õ0€	õ,÷<ñ ð@ ô*�xó *ó ð*ôZ	˜
ô 	ôh7�Hö h7r(   