§
    Æ‡tj/c  ã                   óº  — d dl Z d dlZd dl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 d dlmZ d dlmZ d dlmZ d dlmZmZmZmZmZmZmZ d dlmZm Z  d d	l!m"Z" d d
l#m$Z$ ddl%m&Z& ddl'm(Z(m)Z)m*Z*m+Z+ ddl,m-Z- ddl.m/Z/m0Z0 ddl1m2Z2m3Z3m4Z4m5Z5 ddl&m6Z6m7Z7m8Z8 ddl9m:Z:m;Z; ddl<m=Z=  ej>        d¦  «        Z? e@g d¢¦  «        ZAerddlBmCZC ddlDmEZE ddddddœZFdeGdeHfd „ZId!eeHef         deeHef         fd"„ZJ G d#„ d$e¦  «        ZKd5d%e(d&e)de(fd'„ZLd%e(d(e)de(fd)„ZM G d*„ d+e-¦  «        ZN G d,„ d-eN¦  «        ZOd.e(d/e(ddfd0„ZP G d1„ d2eO¦  «        ZQ G d3„ d4eO¦  «        ZRdS )6é    N)Ú	lru_cache)
ÚTYPE_CHECKINGÚAnyÚCallableÚDictÚ	GeneratorÚListÚOptionalÚPatternÚTupleÚUnion)Ú	normalize)Úwarn)ÚPDFPageAggregator)ÚLTCharÚLTComponentÚLTContainerÚLTCurveÚLTItemÚLTPageÚLTTextContainer)ÚPDFPageInterpreterÚ	PDFStackT)ÚPDFPage)Ú	PSLiteralé   )Úutils)ÚT_bboxÚT_numÚT_objÚ
T_obj_list)Ú	Container)ÚPDFStructTreeÚStructTreeMissing)ÚT_table_settingsÚTableÚTableFinderÚTableSettings)Údecode_textÚresolve_allÚresolve_and_decode)ÚMalformedPDFExceptionÚPdfminerException)ÚTextMapz^LT)ÚadvÚheightÚ	linewidthÚptsÚsizeÚsrcsizeÚwidthÚx0Úx1Úy0Úy1ÚbitsÚmatrixÚuprightÚfontnameÚtextÚ	imagemaskÚ
colorspaceÚevenoddÚfillÚnon_stroking_colorÚstrokeÚstroking_colorÚstreamÚnameÚmcidÚtag)Ú	PageImage)ÚPDFzSimSun,RegularzSimHei,RegularzSimKai,RegularzSimFang,RegularzSimLi,Regular)s   ËÎÌås   ºÚÌås   ¿¬Ìå_GB2312s   ·ÂËÎ_GB2312s   Á¥Êér=   Úreturnc                 ó   — d| v r-|                       d¦  «        dz   }| d |…         | |d …         }}nd| }}t                               |t          |¦  «        dd…         ¦  «        }t          |¦  «        dd…         |z   S )Nó   +r   ó    é   éÿÿÿÿ)ÚindexÚCP936_FONTNAMESÚgetÚstr)r=   Úsplit_atÚprefixÚsuffixÚ
suffix_news        úM/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pdfplumber/page.pyÚfix_fontname_bytesr[   \   s‡   € ØˆxÐÐØ—>’> $Ñ'Ô'¨!Ñ+ˆØ! ) 8 )Ô,¨h°x°y°yÔ.A�ˆˆà˜h�ˆå ×$Ò$ V­S°©[¬[¸¸2¸Ô->Ñ?Ô?€JÝˆv‰;Œ;�q˜�tÔ˜zÑ)Ð)rO   Úkwargsc                 ó>   — d„ |                       ¦   «         D ¦   «         S )Nc                 ób   — i | ],\  }}|t          |t          ¦  «        rt          |¦  «        n|“Œ-S © )Ú
isinstanceÚlistÚtuple)Ú.0ÚkeyÚvalues      rZ   ú
<dictcomp>z'tuplify_list_kwargs.<locals>.<dictcomp>h   sG   € ð ð ð áˆC�ð 	�j¨µÑ5Ô5Ð@�e�E‰lŒlˆl¸5ðð ð rO   )Úitems)r\   s    rZ   Útuplify_list_kwargsrh   g   s+   € ðð à Ÿ,š,™.œ.ðñ ô ð rO   c                   ó¨   ‡ — e Zd ZU dZdZee         ed<   dZee	         ed<   dde
dee         ddfd„Zdd	„Zdd
„Zdefˆ fd„Zdˆ fd„Zdˆ fd„Zˆ xZS )Ú"PDFPageAggregatorWithMarkedContentzZExtract layout from a specific page, adding marked-content IDs to
    objects where found.NÚcur_mcidÚcur_tagrI   ÚpropsrL   c                 ó–   — t          |j        ¦  «        | _        t          |t          ¦  «        rd|v r|d         | _        dS d| _        dS )z5Handle beginning of tag, setting current MCID if any.ÚMCIDN)r)   rG   rl   r`   Údictrk   )ÚselfrI   rm   s      rZ   Ú	begin_tagz,PDFPageAggregatorWithMarkedContent.begin_tagu   sG   € å" 3¤8Ñ,Ô,ˆŒÝ�e�TÑ"Ô"ð 	! v°  Ø! &œMˆDŒMˆMˆMà ˆDŒMˆMˆMrO   c                 ó"   — d| _         d| _        dS )z/Handle beginning of tag, clearing current MCID.N)rl   rk   ©rq   s    rZ   Úend_tagz*PDFPageAggregatorWithMarkedContent.end_tag}   s   € àˆŒØˆŒˆˆrO   c                 óv   — | j         j        r,| j         j        d         }| j        |_        | j        |_        dS dS )z^Add current MCID to what we hope to be the most recent object created
        by pdfminer.six.rQ   N)Úcur_itemÚ_objsrk   rH   rl   rI   )rq   Úcur_objs     rZ   Útag_cur_itemz/PDFPageAggregatorWithMarkedContent.tag_cur_item‚   s@   € ð Œ=Ôð 	'Ø”mÔ)¨"Ô-ˆGØœ=ˆGŒLØœ,ˆGŒKˆKˆKð	'ð 	'rO   c                 ób   •—  t          ¦   «         j        |i |¤Ž}|                      ¦   «          |S )z;Hook for rendering characters, adding the `mcid` attribute.)ÚsuperÚrender_charrz   )rq   Úargsr\   r/   Ú	__class__s       €rZ   r}   z.PDFPageAggregatorWithMarkedContent.render_char�   s5   ø€ à!�e‰gŒgÔ! 4Ð2¨6Ð2Ð2ˆØ×ÒÑÔÐØˆ
rO   c                 ób   •—  t          ¦   «         j        |i |¤Ž |                      ¦   «          dS )z7Hook for rendering images, adding the `mcid` attribute.N)r|   Úrender_imagerz   ©rq   r~   r\   r   s      €rZ   r�   z/PDFPageAggregatorWithMarkedContent.render_image–   s7   ø€ à�‰ŒÔ˜dÐ- fÐ-Ð-Ð-Ø×ÒÑÔÐÐÐrO   c                 ób   •—  t          ¦   «         j        |i |¤Ž |                      ¦   «          dS )zAHook for rendering lines and curves, adding the `mcid` attribute.N)r|   Ú
paint_pathrz   r‚   s      €rZ   r„   z-PDFPageAggregatorWithMarkedContent.paint_path›   s7   ø€ à�‰ŒÔ˜DÐ+ FÐ+Ð+Ð+Ø×ÒÑÔÐÐÐrO   ©N©rL   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rk   r
   ÚintÚ__annotations__rl   rU   r   r   rr   ru   rz   Úfloatr}   r�   r„   Ú__classcell__©r   s   @rZ   rj   rj   n   s  ø€ € € € € € ðð ð #€Hˆh�sŒmÐ"Ð"Ñ"Ø!€GˆX�cŒ]Ð!Ð!Ñ!ð!ð !˜Yð !¨x¸	Ô/Bð !Èdð !ð !ð !ð !ðð ð ð ð
'ð 'ð 'ð 'ð¨eð ð ð ð ð ð ðð ð ð ð ð ð
ð ð ð ð ð ð ð ð ð rO   rj   Úbox_rawÚrotationc                 óø   — t          d„ | D ¦   «         ¦  «        st          d| › �¦  «        ‚t          | d         | d         f¦  «        \  }}t          | d         | d         f¦  «        \  }}|dv r||||fS ||||fS )Nc              3   óJ   K  — | ]}t          |t          j        ¦  «        V — Œd S r…   )r`   ÚnumbersÚNumber©rc   Úxs     rZ   ú	<genexpr>z!_normalize_box.<locals>.<genexpr>¦   s.   è è € Ð>Ð>°�z˜!�Wœ^Ñ,Ô,Ð>Ð>Ð>Ð>Ð>Ð>rO   z0Bounding box contains non-number coordinate(s): r   rP   r   é   )éZ   i  )Úallr,   Úsorted)r�   r‘   r6   r7   r8   r9   s         rZ   Ú_normalize_boxr�   ¡   s§   € õ
 Ð>Ð>°gÐ>Ñ>Ô>Ñ>Ô>ð 
Ý#ØH¸wÐHÐHñ
ô 
ð 	
õ �W˜Q”Z ¨¤Ð,Ñ-Ô-�F€BˆÝ�W˜Q”Z ¨¤Ð,Ñ-Ô-�F€BˆØ�9ÐÐØ�B˜˜BÐÐà�B˜˜BÐÐrO   Ú	mb_heightc                 ó(   — | \  }}}}|||z
  |||z
  fS r…   r_   )r�   rž   r6   r8   r7   r9   s         rZ   Ú_invert_boxr    µ   s&   € Ø�N€BˆˆB�Ø�	˜B‘  I°¡NÐ3Ð3rO   c                   ó  — e Zd ZU ej        dgz   Zee         ed<   dZe	ed<   dZ
	 dGddd	ed
edefd„ZdHd„Zedefd„¦   «         Zedefd„¦   «         Zedeeeef                  fd„¦   «         Zedefd„¦   «         Zedefd„¦   «         Zedefd„¦   «         Zedeeef         fd„¦   «         Zdeeef         deeef         fd„Zdedefd„Z dee!         de"eddf         fd„Z#deeef         fd„Z$	 dIde%e&         de'fd„Z(	 dIde%e&         dee)         fd„Z*	 dIde%e&         de%e)         fd „Z+	 dIde%e&         deeee%e                                    fd!„Z,	 dIde%e&         de%eee%e                                    fd"„Z-d#ede.fd$„Z/	 	 	 	 	 dJd%e0ee1e         f         d&e	d'e	d(ed)e	d*e	d#edeeeef                  fd+„Z2d#edefd,„Z3d#edefd-„Z4d#edefd.„Z5	 dKd/e	d)e	d#edefd0„Z6	 dLd2e7d3e	d4e	dd5fd6„Z8	 dLd2e7d3e	d4e	dd5fd7„Z9	 dLd2e7d3e	d4e	dd5fd8„Z:d9e;ege	f         dd:fd;„Z<d#edd:fd<„Z=	 	 	 	 	 dMd=e%e0ee>f                  d>e%e0ee>f                  d?e%e0ee>f                  d@e	dAe	ddBfdC„Z?dIdDe%ee                  deeef         fdE„Z@defdF„ZAdS )NÚPageÚ_layoutÚcached_propertiesTÚis_originalNr   ÚpdfrK   Úpage_objÚpage_numberÚinitial_doctopc                 óx  ‡— || _         | | _        ‰| _        || _        || _        ddt
          dt          dt          fˆfd„} |dd¦  «        }|dz  | _        t           |d¦  «        | j        ¦  «        }|d	         |d
         z
  }t          ||¦  «        | _
        dD ]Z}	|	‰j        v rOt          t           ||	¦  «        | j        ¦  «        |¦  «        }
t          | |	                     ¦   «         |
¦  «         Œ[d‰j        vr| j
        | _        | j
        | _         t!          ¦   «         | j        ¦  «        | _        d S )Nrd   ÚdefaultrL   c                 ó^   •— t          ‰j                             | ¦  «        ¦  «        }|€|n|S r…   )r*   ÚattrsrT   )rd   r«   re   r§   s      €rZ   Úget_attrzPage.__init__.<locals>.get_attrÌ   s.   ø€ Ý ¤× 2Ò 2°3Ñ 7Ô 7Ñ8Ô8ˆEØ#˜m�7�7°Ð6rO   ÚRotater   ih  ÚMediaBoxr™   r   )ÚCropBoxÚTrimBoxÚBleedBoxÚArtBoxr±   r…   )r¦   Ú	root_pager§   r¨   r©   rU   r   r‘   r�   r    Úmediaboxr­   ÚsetattrÚlowerÚcropboxÚbboxr   Ú_get_textmapÚget_textmap)rq   r¦   r§   r¨   r©   r®   Ú	_rotationÚmb_rawrž   Úbox_nameÚbox_normalizeds     `        rZ   Ú__init__zPage.__init__¿   sg  ø€ ð ˆŒØˆŒØ ˆŒØ&ˆÔØ,ˆÔð	7ð 	7�#ð 	7­ð 	7µsð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð �H˜X qÑ)Ô)ˆ	Ø! C™ˆŒå  ¨Ñ 4Ô 4°d´mÑDÔDˆØ˜1”I  q¤	Ñ)ˆ	å# F¨IÑ6Ô6ˆŒàDð 	@ð 	@ˆHØ˜8œ>Ð)Ð)Ý!,Ý" 8 8¨HÑ#5Ô#5°t´}ÑEÔEÀyñ"ô "�õ ˜˜hŸnšnÑ.Ô.°Ñ?Ô?Ð?øà˜HœNÐ*Ð*Øœ=ˆDŒLð ”MˆŒ	ð '�9™;œ; tÔ'8Ñ9Ô9ˆÔÐÐrO   rL   c                 ó`   — |                       ¦   «          | j                             ¦   «          d S r…   )Úflush_cacher¼   Úcache_clearrt   s    rZ   Úclosez
Page.closeë   s/   € Ø×ÒÑÔÐØÔ×$Ò$Ñ&Ô&Ð&Ð&Ð&rO   c                 ó8   — | j         d         | j         d         z
  S )NrP   r   ©rº   rt   s    rZ   r5   z
Page.widthï   ó   € àŒy˜Œ|˜dœi¨œlÑ*Ð*rO   c                 ó8   — | j         d         | j         d         z
  S )Nr™   r   rÇ   rt   s    rZ   r0   zPage.heightó   rÈ   rO   c                 óf   — 	 d„ t          | j        | ¦  «        D ¦   «         S # t          $ r g cY S w xY w)z-Return the structure tree for a page, if any.c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r_   )Úto_dict)rc   Úelems     rZ   ú
<listcomp>z'Page.structure_tree.<locals>.<listcomp>û   s    € ÐMÐMÐM t�D—L’L‘N”NÐMÐMÐMrO   )r#   r¦   r$   rt   s    rZ   Ústructure_treezPage.structure_tree÷   sK   € ð	ØMÐM­}¸T¼XÀtÑ/LÔ/LÐMÑMÔMÐMøÝ ð 	ð 	ð 	ØˆIˆIˆIð	øøøs   ‚! ¡0¯0c                 ót  — t          | d¦  «        r| j        S t          | j        j        | j        | j        j        ¬¦  «        }t          | j        j        |¦  «        }	 |                     | j	        ¦  «         n!# t          $ r}t          |¦  «        ‚d }~ww xY w|                     ¦   «         | _        | j        S )Nr£   )ÚpagenoÚlaparams)Úhasattrr£   rj   r¦   Úrsrcmgrr¨   rÒ   r   Úprocess_pager§   Ú	Exceptionr-   Ú
get_result)rq   ÚdeviceÚinterpreterÚes       rZ   ÚlayoutzPage.layoutÿ   sÂ   € å�4˜Ñ#Ô#ð 	 Ø”<ÐÝ3ØŒHÔØÔ#Ø”XÔ&ð
ñ 
ô 
ˆõ
 )¨¬Ô)9¸6ÑBÔBˆð	'Ø×$Ò$ T¤]Ñ3Ô3Ð3Ð3øÝð 	'ð 	'ð 	'Ý# AÑ&Ô&Ð&øøøøð	'øøøà%×0Ò0Ñ2Ô2ˆŒØŒ|Ðs   ÁA9 Á9
BÂBÂBc                 óv  ‡ ‡— dt           t          t          f         dt          dt           t          t          f         fˆ fd„Šdt          dt          fˆˆ fd„}t	          ‰ j        j        ¦  «        pg }t          t          ||¦  «        ¦  «        }t          ‰ t          ¦  «        r‰                      |¦  «        S |S )NÚptÚrrL   c                 ó|   •— |dz  }t          |¦  «        D ]%}| \  }}||dz  k    r‰j        n‰j        }|||z
  f} Œ&| S )Nrš   rP   )Úranger5   r0   )rÝ   rÞ   ÚturnsÚir—   ÚyÚcomprq   s          €rZ   Úrotate_pointz!Page.annots.<locals>.rotate_point  sW   ø€ Ø˜‘GˆEÝ˜5‘\”\ð %ð %�Ø‘��1Ø%&¨%°!©)¢^ ^�t”z�z¸¼�Ø˜$ ™(�_��ØˆIrO   Úannotc                 ó8  •— | d         \  }}}} ‰||f‰j         ¦  «        } ‰||f‰j         ¦  «        }‰j        j        }t          t	          g |¢|¢R ¦  «        |¦  «        \  }}	}
}|                      di ¦  «        }|                     d¦  «        |                      d¦  «        |                      d¦  «        dœ}|                     ¦   «         D ]~\  }}|�w	 |                     d¦  «        ||<   Œ!# t          $ rP 	 |                     d¦  «        ||<   n3# t          $ r& ‰j	        j
        r‚ t          d	|› d
|› d�¦  «         Y nw xY wY Œzw xY wŒ‰j        d|||z
  |
||	z
  ‰j        |	z   |	||
|z
  ||	z
  dœ}|                     |¦  «         d| v r‰| d<   | |d<   |S )NÚRectÚAÚURIÚTÚContents)ÚuriÚtitleÚcontentszutf-8zutf-16zCould not decode z of annotation. z will be missing.ræ   )r¨   Úobject_typer6   r8   r7   r9   ÚdoctopÚtopÚbottomr5   r0   ÚPÚdata)r‘   rµ   r0   r    r�   rT   rg   ÚdecodeÚUnicodeDecodeErrorr¦   Úraise_unicode_errorsr   r¨   r©   Úupdate)ræ   Ú_aÚ_bÚ_cÚ_dÚpt0Úpt1Úrhr6   rò   r7   ró   ÚaÚextrasÚkÚvÚparsedrå   rq   s                    €€rZ   ÚparsezPage.annots.<locals>.parse  s$  ø€ Ø" 6œ]‰NˆB��B˜Ø�,  B˜x¨¬Ñ7Ô7ˆCØ�,  B˜x¨¬Ñ7Ô7ˆCØ”Ô&ˆBÝ"-­n¸\¸s¸\ÀS¸\¸\Ñ.JÔ.JÈBÑ"OÔ"OÑˆB��R˜à—	’	˜#˜rÑ"Ô"ˆAà—u’u˜U‘|”|ØŸš 3™œØ!ŸIšI jÑ1Ô1ðð ˆFð
 Ÿš™œð ð ‘��1Ø�=ðØ$%§H¢H¨WÑ$5Ô$5˜˜q™	˜	øÝ-ð 	ð 	ð 	ðØ()¯ª°Ñ(:Ô(:˜F 1™I˜IøÝ1ð ð ð Ø#œxÔ<ð &Ø %Ý ð!9°Að !9ð !9Ø$%ð!9ð !9ð !9ñô ð ð ð ðøøøøøð	øøøð !ð  $Ô/Ø&ØØ˜6‘kØØ˜3‘hØÔ-°Ñ3ØØ Ø˜b™Ø  3™,ðð ˆFð �MŠM˜&Ñ!Ô!Ð!ð �eˆ|ˆ|Ø!��c‘
Ø"ˆF�6‰NØˆMs6   ÃC2Ã2
EÃ=DÄEÄ-EÅEÅEÅEÅE)r   r�   r‹   r    r*   r§   Úannotsra   Úmapr`   ÚCroppedPageÚ_crop_fn)rq   r  Úrawr  rå   s   `   @rZ   r  zPage.annots  sÒ   øø€ ð	�U¥5­% <Ô0ð 	µSð 	½UÅ5Í%À<Ô=Pð 	ð 	ð 	ð 	ð 	ð 	ð/	�ð /	¥5ð /	ð /	ð /	ð /	ð /	ð /	ð /	õb ˜$œ-Ô.Ñ/Ô/Ð5°2ˆÝ•c˜% ‘o”oÑ&Ô&ˆÝ�d�KÑ(Ô(ð 	Ø—=’= Ñ(Ô(Ð(àˆMrO   c                 ó$   — d„ | j         D ¦   «         S )Nc                 ó"   — g | ]}|d          ®
|‘ŒS )rí   r_   )rc   r  s     rZ   rÎ   z#Page.hyperlinks.<locals>.<listcomp>T  s!   € Ð?Ð?Ð?�a¨!¨E¬(Ð*>�Ð*>Ð*>Ð*>rO   )r  rt   s    rZ   Ú
hyperlinkszPage.hyperlinksR  s   € à?Ð?˜4œ;Ð?Ñ?Ô?Ð?rO   c                 óp   — t          | d¦  «        r| j        S |                      ¦   «         | _        | j        S )NÚ_objects)rÓ   r  Úparse_objectsrt   s    rZ   ÚobjectszPage.objectsV  s7   € å�4˜Ñ$Ô$ð 	!Ø”=Ð Ø/3×/AÒ/AÑ/CÔ/CˆŒØŒ}ÐrO   rÝ   c                 ój   — | j         d         |d         z   | j         d         | j        z   |d         z
  fS )Nr   r   )r¶   r0   )rq   rÝ   s     rZ   Úpoint2coordzPage.point2coord]  s4   € à”˜aÔ  2 a¤5Ñ(¨$¬-¸Ô*:¸T¼[Ñ*HÈ2ÈaÌ5Ñ*PÐQÐQrO   Úobjc           
      óÌ  ‡ — t          j        t          d|j        j        ¦  «                             ¦   «         }dt          t          t          f         dt          t          t          t          f                  fd„}t          t          d t          ||j                             ¦   «         ¦  «        ¦  «        ¦  «        }||d<   ‰ j        |d<   dD ]7}t!          ||¦  «        r%t#          t%          ||¦  «        j        ¦  «        ||<   Œ8t)          |t*          t,          f¦  «        r?|                     ¦   «         }‰ j        j        �t5          ‰ j        j        |¦  «        n||d<   t)          |t*          ¦  «        r“|j        }t)          |j        t:          ¦  «        r|j        n|j        f|d	<   t)          |j        t:          ¦  «        r|j        n|j        f|d
<   t)          |d         t>          ¦  «        rtA          |d         ¦  «        |d<   nat)          |tB          f¦  «        rKtE          t          ‰ j#        |d         ¦  «        ¦  «        |d<   ˆ fd„|j$        D ¦   «         |d<   |j%        |d<   ‰ j&        d d…         \  }}	d|v r?‰ j'        |d         z
  |	z   |d<   ‰ j'        |d         z
  |	z   |d<   ‰ j(        |d         z   |d<   d|v r"|dk    r|d         |z   |d<   |d         |z   |d<   |S )NÚ ÚitemrL   c                 óH   — | \  }}|t           v rt          |¦  «        }||fS d S r…   )Ú	ALL_ATTRSr*   )r  r  r  Úress       rZ   Úprocess_attrz)Page.process_object.<locals>.process_attrd  s-   € Ø‰DˆAˆqØ•Iˆ~ˆ~Ý! !‘n”n�Ø˜3�x�à�trO   rð   r¨   )ÚncsÚscsr>   rE   rC   r=   r2   c                 óF   •— g | ]^}}|gt          ‰j        |¦  «        ¢R ‘ŒS r_   )r  r  )rc   Úcmdr2   rq   s      €rZ   rÎ   z'Page.process_object.<locals>.<listcomp>—  s5   ø€ ÐbÐbÐbÀ9À3È˜SÐ>¥3 tÔ'7¸Ñ#=Ô#=Ð>Ð>ÐbÐbÐbrO   ÚpathÚdashrP   r8   r9   rò   ró   rñ   r6   r   r7   ))ÚreÚsubÚlt_patr   r‡   r¸   r   rU   r   r
   rp   Úfilterr  Ú__dict__rg   r¨   rÓ   r+   ÚgetattrrG   r`   r   r   Úget_textr¦   Úunicode_normÚnormalize_unicodeÚgraphicstateÚscolorrb   ÚncolorÚbytesr[   r   ra   r  Úoriginal_pathÚdashing_styler¶   r0   r©   )
rq   r  Úkindr  ÚattrÚcsr>   ÚgsÚmb_x0Úmb_tops
   `         rZ   Úprocess_objectzPage.process_objecta  sé  ø€ ÝŒv•f˜b #¤-Ô"8Ñ9Ô9×?Ò?ÑAÔAˆð	�u¥S­# Xœð 	µ8½EÅ#ÅsÀ(¼OÔ3Lð 	ð 	ð 	ð 	õ •F˜4¥ \°3´<×3EÒ3EÑ3GÔ3GÑ!HÔ!HÑIÔIÑJÔJˆà"ˆˆ]ÑØ"Ô.ˆˆ]Ñà ð 	Eð 	EˆBõ �s˜BÑÔð EÝ-­g°c¸2Ñ.>Ô.>Ô.CÑDÔD��R‘øå�c�F¥OÐ4Ñ5Ô5ð 	Ø—<’<‘>”>ˆDð ”8Ô(Ð4õ " $¤(Ô"7¸Ñ>Ô>Ð>àð �‰Lõ �c�6Ñ"Ô"ð 	-ð Ô!ˆBå'¨¬	µ5Ñ9Ô9ÐK�”	�	ÀÄ	¸|ð Ð!Ñ"õ (¨¬	µ5Ñ9Ô9ÐK�”	�	ÀÄ	¸|ð Ð%Ñ&õ
 ˜$˜zÔ*­EÑ2Ô2ð HÝ#5°d¸:Ô6FÑ#GÔ#G��ZÑ øå˜�g˜ZÑ(Ô(ð 	-Ý�s 4Ô#3°T¸%´[ÑAÔAÑBÔBˆD�‰Kð cÐbÐbÐbÐPSÔPaÐbÑbÔbˆD�‰LàÔ,ˆD�‰Lð
 œ b q bÔ)‰ˆˆvà�4ˆ<ˆ<Øœ;¨¨d¬Ñ3°vÑ=ˆD�‰KØ"œk¨D°¬JÑ6¸&Ñ@ˆD�‰NØ!Ô0°4¸´;Ñ>ˆD�‰Nà�4ˆ<ˆ<˜E QšJ˜JØ˜dœ eÑ+ˆD�‰JØ˜dœ eÑ+ˆD�‰JàˆrO   Úlayout_objectsc              #   óô   K  — |D ]r}t          |t          ¦  «        rD| j        j        �|                      |¦  «        V — |                      |j        ¦  «        E d {V —† Œ[|                      |¦  «        V — Œsd S r…   )r`   r   r¦   rÒ   r8  Úiter_layout_objectsrx   )rq   r9  r  s      rZ   r;  zPage.iter_layout_objects«  s    è è € ð "ð 		/ð 		/ˆCå˜#�{Ñ+Ô+ð /à”8Ô$Ð0Ø×-Ò-¨cÑ2Ô2Ð2Ð2Ð2à×3Ò3°C´IÑ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>à×)Ò)¨#Ñ.Ô.Ð.Ð.Ð.Ð.ð		/ð 		/rO   c                 óÒ   — i }|                       | j        j        ¦  «        D ]D}|d         }|dv rŒ|                     |¦  «        €g ||<   ||                              |¦  «         ŒE|S )Nrð   )Úanno)r;  rÛ   rx   rT   Úappend)rq   r  r  r2  s       rZ   r  zPage.parse_objects¹  s|   € Ø)+ˆØ×+Ò+¨D¬KÔ,=Ñ>Ô>ð 	&ð 	&ˆCØ�}Ô%ˆDØ�xÐÐØØ�{Š{˜4Ñ Ô Ð(Ø "�˜‘Ø�DŒM× Ò  Ñ%Ô%Ð%Ð%ØˆrO   Útable_settingsc                 óJ   — t          j        |¦  «        }t          | |¦  «        S r…   )r(   Úresolver'   ©rq   r?  Útsets      rZ   Údebug_tablefinderzPage.debug_tablefinderÄ  s$   € õ Ô$ ^Ñ4Ô4ˆÝ˜4 Ñ&Ô&Ð&rO   c                 óT   — t          j        |¦  «        }t          | |¦  «        j        S r…   )r(   rA  r'   ÚtablesrB  s      rZ   Úfind_tableszPage.find_tablesÊ  s'   € õ Ô$ ^Ñ4Ô4ˆÝ˜4 Ñ&Ô&Ô-Ð-rO   c                 ó  — t          j        |¦  «        }|                      |¦  «        }t          |¦  «        dk    rd S dt          dt
          t          t          t          f         fd„}t          t          ||¬¦  «        ¦  «        d         }|S )Nr   r—   rL   c                 ó^   — t          | j        ¦  «         | j        d         | j        d         fS )Nr   r   )ÚlenÚcellsrº   ©r—   s    rZ   ÚsorterzPage.find_table.<locals>.sorterÚ  s%   € Ý˜œ‘\”\�M 1¤6¨!¤9¨a¬f°Q¬iÐ8Ð8rO   )rd   )
r(   rA  rG  rJ  r&   r   r‹   r   ra   rœ   )rq   r?  rC  rF  rM  Úlargests         rZ   Ú
find_tablezPage.find_tableÐ  s‘   € õ Ô$ ^Ñ4Ô4ˆØ×!Ò! $Ñ'Ô'ˆåˆv‰;Œ;˜!ÒÐØ�4ð	9•eð 	9¥¥c­5µ%Ð&7Ô 8ð 	9ð 	9ð 	9ð 	9õ •v˜f¨&Ð1Ñ1Ô1Ñ2Ô2°1Ô5ˆàˆrO   c                 ór   ‡— t          j        |¦  «        Š|                      ‰¦  «        }ˆfd„|D ¦   «         S )Nc                 ó8   •— g | ]} |j         d i ‰j        pi ¤Ž‘ŒS )r_   )ÚextractÚtext_settings)rc   ÚtablerC  s     €rZ   rÎ   z'Page.extract_tables.<locals>.<listcomp>æ  s3   ø€ ÐPÐPÐPÀ��”Ð;Ð; Ô!3Ð!9°rÐ;Ð;ÐPÐPÐPrO   )r(   rA  rG  )rq   r?  rF  rC  s      @rZ   Úextract_tableszPage.extract_tablesá  sB   ø€ õ Ô$ ^Ñ4Ô4ˆØ×!Ò! $Ñ'Ô'ˆØPÐPÐPÐPÈÐPÑPÔPÐPrO   c                 ó„   — t          j        |¦  «        }|                      |¦  «        }|€d S  |j        di |j        pi ¤ŽS ©Nr_   )r(   rA  rO  rR  rS  )rq   r?  rC  rT  s       rZ   Úextract_tablezPage.extract_tableè  sO   € õ Ô$ ^Ñ4Ô4ˆØ—’ Ñ%Ô%ˆØˆ=Ø�4à �5”=Ð>Ð> DÔ$6Ð$<¸"Ð>Ð>Ð>rO   r\   c                 óæ   — t          | j        ¬¦  «        }d|vr|                     d| j        i¦  «         d|vr|                     d| j        i¦  «         i |¥|¥}t          j        | j        fi |¤ŽS )N)Úlayout_bboxÚlayout_width_charsÚlayout_widthÚlayout_height_charsÚlayout_height)rp   rº   rù   r5   r0   r   Úchars_to_textmapÚchars)rq   r\   ÚdefaultsÚfull_kwargss       rZ   r»   zPage._get_textmapò  s�   € Ý#'Øœ	ð$
ñ $
ô $
ˆð   vÐ-Ð-Ø�OŠO˜^¨T¬ZÐ8Ñ9Ô9Ð9Ø ¨Ð.Ð.Ø�OŠO˜_¨d¬kÐ:Ñ;Ô;Ð;Ø&<¨Ð&<°VÐ&<ˆÝÔ% d¤jÐ@Ð@°KÐ@Ð@Ð@rO   ÚpatternÚregexÚcaseÚ
main_groupÚreturn_charsÚreturn_groupsc                 ól   —  | j         di t          |¦  «        ¤Ž}|                     ||||||¬¦  «        S )N)rd  re  rf  rg  rh  r_   )r¼   rh   Úsearch)	rq   rc  rd  re  rf  rg  rh  r\   Útextmaps	            rZ   rj  zPage.searchý  sR   € ð #�$Ô"ÐAÐAÕ%8¸Ñ%@Ô%@ÐAÐAˆØ�~Š~ØØØØ!Ø%Ø'ð ñ 
ô 
ð 	
rO   c                 ó@   —  | j         di t          |¦  «        ¤Žj        S rW  )r¼   rh   Ú	as_string©rq   r\   s     rZ   Úextract_textzPage.extract_text  s'   € ØˆtÔÐ>Ð>Õ"5°fÑ"=Ô"=Ð>Ð>ÔHÐHrO   c                 ó0   — t          j        | j        fi |¤ŽS r…   )r   Úextract_text_simpler`  rn  s     rZ   rq  zPage.extract_text_simple  s   € ÝÔ(¨¬Ð>Ð>°vÐ>Ð>Ð>rO   c                 ó0   — t          j        | j        fi |¤ŽS r…   )r   Úextract_wordsr`  rn  s     rZ   rs  zPage.extract_words  s   € ÝÔ" 4¤:Ð8Ð8°Ð8Ð8Ð8rO   Ústripc                 ó`   —  | j         di t          |¦  «        ¤Ž                     ||¬¦  «        S )N)rt  rg  r_   )r¼   rh   Úextract_text_lines)rq   rt  rg  r\   s       rZ   rv  zPage.extract_text_lines  sC   € ð  ˆtÔÐ>Ð>Õ"5°fÑ"=Ô"=Ð>Ð>×QÒQØ lð Rñ 
ô 
ð 	
rO   Frº   ÚrelativeÚstrictr	  c                 ó(   — t          | |||¬¦  «        S )N)rw  rx  )r	  ©rq   rº   rw  rx  s       rZ   Úcropz	Page.crop!  s   € õ ˜4 °ÀÐHÑHÔHÐHrO   c                 ó>   — t          | |||t          j        ¬¦  «        S ©zS
        Same as .crop, except only includes objects fully within the bbox
        )rw  rx  Úcrop_fn)r	  r   Úwithin_bboxrz  s       rZ   r  zPage.within_bbox&  s)   € õ Ø�$ °&Å%ÔBSð
ñ 
ô 
ð 	
rO   c                 ó>   — t          | |||t          j        ¬¦  «        S r}  )r	  r   Úoutside_bboxrz  s       rZ   r�  zPage.outside_bbox0  s)   € õ Ø�$ °&Å%ÔBTð
ñ 
ô 
ð 	
rO   Útest_functionÚFilteredPagec                 ó"   — t          | |¦  «        S r…   )rƒ  )rq   r‚  s     rZ   r&  zPage.filter:  s   € Ý˜D -Ñ0Ô0Ð0rO   c                 ó¶   — t          | d„ ¦  «        }d„ | j                             ¦   «         D ¦   «         |_        t	          j        | j        fi |¤Ž|j        d<   |S )uê   
        Removes duplicate chars â€”Â those sharing the same text and positioning
        (within `tolerance`) as other characters in the set. Adjust extra_args
        to be more/less restrictive with the properties checked.
        c                 ó   — dS )NTr_   rL  s    rZ   ú<lambda>z#Page.dedupe_chars.<locals>.<lambda>C  s   € ¨€ rO   c                 ó   — i | ]\  }}||“Œ	S r_   r_   )rc   r2  Úobjss      rZ   rf   z%Page.dedupe_chars.<locals>.<dictcomp>D  s   € ÐHÐHÐH¡Z T¨4�d˜DÐHÐHÐHrO   Úchar)rƒ  r  rg   r  r   Údedupe_charsr`  )rq   r\   Úps      rZ   r‹  zPage.dedupe_chars=  s^   € õ ˜˜~˜~Ñ.Ô.ˆØHÐH°4´<×3EÒ3EÑ3GÔ3GÐHÑHÔHˆŒ
Ý"Ô/°´
ÐEÐE¸fÐEÐEˆŒ
�6ÑØˆrO   Ú
resolutionr5   r0   Ú	antialiasÚforce_mediaboxrJ   c                 óÚ   — ddl m}m} t          d„ |||fD ¦   «         ¦  «        }|dk    rt	          d|› �¦  «        ‚|�d|z  | j        z  }n|�d|z  | j        z  } || |p|||¬¦  «        S )zò
        You can pass a maximum of 1 of the following:
        - resolution: The desired number pixels per inch. Defaults to 72.
        - width: The desired image width in pixels.
        - height: The desired image width in pixels.
        r   )ÚDEFAULT_RESOLUTIONrJ   c              3   ó   K  — | ]}|d uV — Œ	d S r…   r_   r–   s     rZ   r˜   z Page.to_image.<locals>.<genexpr>X  s&   è è € ÐKÐK¨!˜ ˜ÐKÐKÐKÐKÐKÐKrO   zUOnly one of these arguments can be provided: resolution, width, height. You provided NéH   )r�  rŽ  r�  )Údisplayr‘  rJ   ÚsumÚ
ValueErrorr5   r0   )	rq   r�  r5   r0   rŽ  r�  r‘  rJ   Ú	num_specss	            rZ   Úto_imagezPage.to_imageH  sÁ   € ð 	;Ð:Ð:Ð:Ð:Ð:Ð:Ð:åÐKÐK°
¸EÀ6Ð/JÐKÑKÔKÑKÔKˆ	Ø�qŠ=ˆ=ÝØsÐhqÐsÐsñô ð ð ÐØ˜e™ d¤jÑ0ˆJˆJØÐØ˜f™ t¤{Ñ2ˆJàˆyØØ!Ð7Ð%7ØØ)ð	
ñ 
ô 
ð 	
rO   Úobject_typesc           	      ó  — |€+t          | j                             ¦   «         ¦  «        dgz   }n|}| j        | j        | j        | j        | j        | j        | j	        | j
        dœ}|D ]}t          | |dz   ¦  «        ||dz   <   Œ|S )Nræ   )r¨   r©   r‘   r¹   r¶   rº   r5   r0   Ús)ra   r  Úkeysr¨   r©   r‘   r¹   r¶   rº   r5   r0   r(  )rq   r™  Ú_object_typesÚdÚts        rZ   rÌ   zPage.to_dicti  sš   € ØÐÝ  ¤×!2Ò!2Ñ!4Ô!4Ñ5Ô5¸¸	ÑAˆMˆMà(ˆMàÔ+Ø"Ô1ØœØ”|ØœØ”IØ”ZØ”kð	
ð 	
ˆð ð 	0ð 	0ˆAÝ   q¨3¡wÑ/Ô/ˆAˆa�#‰g‰JˆJØˆrO   c                 ó   — d| j         › d�S )Nz<Page:ú>)r¨   rt   s    rZ   Ú__repr__zPage.__repr__|  s   € Ø+˜Ô(Ð+Ð+Ð+Ð+rO   ©r   r†   r…   )TTr   TT)TT)FT)NNNFF)Br‡   rˆ   r‰   r"   r¤   r	   rU   rŒ   r¥   ÚboolÚpagesr   r‹   r   rÁ   rÅ   Úpropertyr5   r0   r   r   rÏ   r   rÛ   r!   r  r  r  r   r  r   r    r8  r   r   r;  r  r
   r%   r'   rD  r&   rG  rO  rU  rX  r.   r»   r   r   rj  ro  rq  rs  rv  r   r{  r  r�  r   r&  r‹  r�   r˜  rÌ   r¢  r_   rO   rZ   r¢   r¢   º   s)  € € € € € € Ø#,Ô#>À)ÀÑ#LÐ�t˜C”yÐLÐLÑLØ€K�ÐÐÑØ€Eð !"ð*:ð *:àð*:ð ð*:ð ð	*:ð
 ð*:ð *:ð *:ð *:ðX'ð 'ð 'ð 'ð ð+�uð +ð +ð +ñ „Xð+ð ð+˜ð +ð +ð +ñ „Xð+ð ð  T¨#¨s¨(¤^Ô 4ð ð ð ñ „Xðð ð˜ð ð ð ñ „Xðð  ð?˜
ð ?ð ?ð ?ñ „Xð?ðB ð@˜Jð @ð @ð @ñ „Xð@ð ð˜˜c :˜oÔ.ð ð ð ñ „XððR˜e E¨5 LÔ1ð R°e¸EÀ5¸LÔ6Ið Rð Rð Rð RðH &ð H¨Uð Hð Hð Hð HðT/Ø" ;Ô/ð/à	�5˜$ Ð$Ô	%ð/ð /ð /ð /ð	˜t C¨ OÔ4ð 	ð 	ð 	ð 	ð <@ð'ð 'Ø&Ð'7Ô8ð'à	ð'ð 'ð 'ð 'ð <@ð.ð .Ø&Ð'7Ô8ð.à	ˆeŒð.ð .ð .ð .ð <@ðð Ø&Ð'7Ô8ðà	�%Œðð ð ð ð$ <@ðQð QØ&Ð'7Ô8ðQà	ˆd�4˜ œÔ&Ô'Ô	(ðQð Qð Qð Qð <@ð?ð ?Ø&Ð'7Ô8ð?à	�$�t˜H SœMÔ*Ô+Ô	,ð?ð ?ð ?ð ?ð	A Sð 	A¨Wð 	Að 	Að 	Að 	Að ØØØ!Ø"ð
ð 
à�s˜G CœLÐ(Ô)ð
ð ð
ð ð	
ð
 ð
ð ð
ð ð
ð ð
ð 
ˆd�3˜�8ŒnÔ	ð
ð 
ð 
ð 
ð(I Sð I¨Sð Ið Ið Ið Ið?¨Cð ?°Cð ?ð ?ð ?ð ?ð9 cð 9¨jð 9ð 9ð 9ð 9ð 8<ð
ð 
Øð
Ø04ð
ØGJð
à	ð
ð 
ð 
ð 
ð DHðIð IØðIØ&*ðIØ<@ðIà	ðIð Ið Ið Ið DHð
ð 
Øð
Ø&*ð
Ø<@ð
à	ð
ð 
ð 
ð 
ð DHð
ð 
Øð
Ø&*ð
Ø<@ð
à	ð
ð 
ð 
ð 
ð1 H¨e¨W°d¨]Ô$;ð 1Àð 1ð 1ð 1ð 1ð	 Sð 	¨^ð 	ð 	ð 	ð 	ð 37Ø-1Ø.2ØØ$ð
ð 
à˜U 3¨ :Ô.Ô/ð
ð ˜˜c 5˜jÔ)Ô*ð
ð ˜˜s E˜zÔ*Ô+ð	
ð
 ð
ð ð
ð 
ð
ð 
ð 
ð 
ðBð  H¨T°#¬YÔ$7ð À4ÈÈSÈÄ>ð ð ð ð ð&,˜#ð ,ð ,ð ,ð ,ð ,ð ,rO   r¢   c                   ó*   — e Zd ZU dZeed<   defd„ZdS )ÚDerivedPageFr¥   Úparent_pagec                 óT  — || _         |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |  	                    t          j        ¦  «          t          ¦   «         | j        ¦  «        | _        d S r…   )r©  rµ   r¦   r§   r¨   r©   r‘   r¶   r¹   rÃ   r"   r¤   r   r»   r¼   )rq   r©  s     rZ   rÁ   zDerivedPage.__init__ƒ  s‘   € Ø&ˆÔØ$Ô.ˆŒØ”?ˆŒØ#Ô,ˆŒØ&Ô2ˆÔØ)Ô8ˆÔØ#Ô,ˆŒØ#Ô,ˆŒØ"Ô*ˆŒØ×Ò�Ô4Ñ5Ô5Ð5Ø&�9™;œ; tÔ'8Ñ9Ô9ˆÔÐÐrO   N)r‡   rˆ   r‰   r¥   r¤  rŒ   r¢   rÁ   r_   rO   rZ   r¨  r¨  €  sA   € € € € € € Ø€K�ÐÐÑð: Dð :ð :ð :ð :ð :ð :rO   r¨  rº   Úparent_bboxc                 ó  — t          j        | ¦  «        }|dk    rt          d| › d�¦  «        ‚t          j        | |¦  «        }|€t          d| › d|› �¦  «        ‚t          j        |¦  «        }||k     rt          d| › d|› �¦  «        ‚d S )Nr   zBounding box z has an area of zero.z. is entirely outside parent page bounding box z. is not fully within parent page bounding box )r   Úcalculate_arear–  Úget_bbox_overlap)rº   r«  Ú	bbox_areaÚoverlapÚoverlap_areas        rZ   Útest_proposed_bboxr²  ‘  sÑ   € ÝÔ$ TÑ*Ô*€IØ�A‚~€~ÝÐD¨ÐDÐDÐDÑEÔEÐEåÔ$ T¨;Ñ7Ô7€GØ€Ýð6˜Dð 6ð 6Ø(3ð6ð 6ñ
ô 
ð 	
õ
 Ô'¨Ñ0Ô0€LØ�iÒÐÝð6˜Dð 6ð 6Ø(3ð6ð 6ñ
ô 
ð 	
ð  ÐrO   c                   ó†   ‡ — e Zd Zej        ddfdededeeegef         de	de	f
ˆ fd„Z
ed	eeef         fd
„¦   «         Zˆ xZS )r	  FTr©  Ú	crop_bboxr~  rw  rx  c                 óH  •‡‡— |r%|j         \  }}}}‰\  }	}
}}|	|z   |
|z   ||z   ||z   fŠ|rt          ‰|j         ¦  «         dt          dt          fˆˆfd„}t          ¦   «                              |¦  «         || _        ‰t          j        u r|j         | _         d S ‰| _         d S )Nr‰  rL   c                 ó   •—  ‰| ‰¦  «        S r…   r_   )r‰  r´  r~  s    €€rZ   r
  z&CroppedPage.__init__.<locals>._crop_fn¶  s   ø€ Ø�7˜4 Ñ+Ô+Ð+rO   )rº   r²  r!   r|   rÁ   r
  r   r�  )rq   r©  r´  r~  rw  rx  Úo_x0Úo_topÚ_r6   rò   r7   ró   r
  r   s     ``          €rZ   rÁ   zCroppedPage.__init__¦  sã   øøø€ ð ð 	LØ +Ô 0ÑˆD�%˜˜AØ"+ÑˆB��R˜Ø˜d™ C¨%¡K°°d±¸FÀU¹NÐKˆIàð 	<Ý˜y¨+Ô*:Ñ;Ô;Ð;ð	,�:ð 	,­*ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,õ 	‰Œ×Ò˜Ñ%Ô%Ð%à ˆŒð •eÔ(Ð(Ð(Ø#Ô(ˆDŒIˆIˆIà!ˆDŒIˆIˆIrO   rL   c                 óž   ‡ — t          ‰ d¦  «        r‰ j        S ˆ fd„‰ j        j                             ¦   «         D ¦   «         ‰ _        ‰ j        S )Nr  c                 óB   •— i | ]\  }}|‰                      |¦  «        “ŒS r_   )r
  ©rc   r  r  rq   s      €rZ   rf   z'CroppedPage.objects.<locals>.<dictcomp>Ç  s8   ø€ ð 0
ð 0
ð 0
Ù$( A qˆAˆt�}Š}˜QÑÔð0
ð 0
ð 0
rO   ©rÓ   r  r©  r  rg   rt   s   `rZ   r  zCroppedPage.objectsÃ  sc   ø€ å�4˜Ñ$Ô$ð 	!Ø”=Ð ð0
ð 0
ð 0
ð 0
Ø,0Ô,<Ô,D×,JÒ,JÑ,LÔ,Lð0
ñ 0
ô 0
ˆŒð Œ}ÐrO   )r‡   rˆ   r‰   r   Úcrop_to_bboxr¢   r   r   r!   r¤  rÁ   r¦  r   rU   r  rŽ   r�   s   @rZ   r	  r	  ¥  sÀ   ø€ € € € € ð
 ?DÔ>PØØð"ð "àð"ð ð"ð ˜: vÐ.°
Ð:Ô;ð	"ð
 ð"ð ð"ð "ð "ð "ð "ð "ð: ð˜˜c :˜oÔ.ð ð ð ñ „Xðð ð ð ð rO   r	  c                   óf   ‡ — e Zd Zdedeegef         fˆ fd„Zede	e
ef         fd„¦   «         Zˆ xZS )rƒ  r©  Ú	filter_fnc                 óp   •— |j         | _         || _        t          ¦   «                              |¦  «         d S r…   )rº   rÀ  r|   rÁ   )rq   r©  rÀ  r   s      €rZ   rÁ   zFilteredPage.__init__Î  s2   ø€ ØÔ$ˆŒ	Ø"ˆŒÝ‰Œ×Ò˜Ñ%Ô%Ð%Ð%Ð%rO   rL   c                 óž   ‡ — t          ‰ d¦  «        r‰ j        S ˆ fd„‰ j        j                             ¦   «         D ¦   «         ‰ _        ‰ j        S )Nr  c           	      ó\   •— i | ](\  }}|t          t          ‰j        |¦  «        ¦  «        “Œ)S r_   )ra   r&  rÀ  r¼  s      €rZ   rf   z(FilteredPage.objects.<locals>.<dictcomp>×  sC   ø€ ð 0
ð 0
ð 0
á��1ð �t•F˜4œ>¨1Ñ-Ô-Ñ.Ô.ð0
ð 0
ð 0
rO   r½  rt   s   `rZ   r  zFilteredPage.objectsÓ  sc   ø€ å�4˜Ñ$Ô$ð 	!Ø”=Ð ð0
ð 0
ð 0
ð 0
àÔ(Ô0×6Ò6Ñ8Ô8ð0
ñ 0
ô 0
ˆŒð Œ}ÐrO   )r‡   rˆ   r‰   r¢   r   r    r¤  rÁ   r¦  r   rU   r!   r  rŽ   r�   s   @rZ   rƒ  rƒ  Í  s†   ø€ € € € € ð& Dð &°X¸u¸gÀt¸mÔ5Lð &ð &ð &ð &ð &ð &ð
 ð˜˜c :˜oÔ.ð ð ð ñ „Xðð ð ð ð rO   rƒ  r£  )Sr”   r#  Ú	functoolsr   Útypingr   r   r   r   r   r	   r
   r   r   r   Úunicodedatar   r+  Úwarningsr   Úpdfminer.converterr   Úpdfminer.layoutr   r   r   r   r   r   r   Úpdfminer.pdfinterpr   r   Úpdfminer.pdfpager   Úpdfminer.psparserr   r  r   Ú_typingr   r   r    r!   Ú	containerr"   Ú	structurer#   r$   rT  r%   r&   r'   r(   r)   r*   r+   Úutils.exceptionsr,   r-   Ú
utils.textr.   Úcompiler%  Úsetr  r”  rJ   r¦   rK   rS   r/  rU   r[   rh   rj   r�   r    r¢   r¨  r²  r	  rƒ  r_   rO   rZ   ú<module>rÔ     sv  ðØ €€€Ø 	€	€	€	Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 7Ð 6Ð 6Ð 6Ð 6Ð 6Ø Ð Ð Ð Ð Ð à 0Ð 0Ð 0Ð 0Ð 0Ð 0ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð =Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø $Ð $Ð $Ð $Ð $Ð $Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'à Ð Ð Ð Ð Ð Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø  Ð  Ð  Ð  Ð  Ð  Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FØ ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ FØ Ð Ð Ð Ð Ð à	ˆŒ�FÑ	Ô	€àˆCðð ð ñô €	ðB ð Ø"Ð"Ð"Ð"Ð"Ð"ØÐÐÐÐÐð
 *Ø)Ø 0Ø 1Ø(ðð €ð* ð *¨3ð *ð *ð *ð *ð  S¨# X¤ð °4¸¸S¸´>ð ð ð ð ð0ð 0ð 0ð 0ð 0Ð):ñ 0ô 0ð 0ðf ð  ˜Fð  ¨eð  ¸Fð  ð  ð  ð  ð(4˜ð 4¨Eð 4°fð 4ð 4ð 4ð 4ð
C,ð C,ð C,ð C,ð C,ˆ9ñ C,ô C,ð C,ðL:ð :ð :ð :ð :�$ñ :ô :ð :ð"
˜Vð 
°&ð 
¸Tð 
ð 
ð 
ð 
ð(%ð %ð %ð %ð %�+ñ %ô %ð %ðPð ð ð ð �;ñ ô ð ð ð rO   