§
    Æ‡tjäˆ  ã                   ó„  — d dl Z 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 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mZmZ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, d dl-m.Z.m/Z/ d dl0m1Z1 d dl2m3Z3 d dl4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?  ej@        eA¦  «        ZB G d„ de'¦  «        ZC G d„ deC¦  «        ZD e
de	ee5¦  «        ZE G d„ deCeeE         ¦  «        ZF G d„ deFe5         ¦  «        ZG G d„ deFe5         ¦  «        ZH G d„ deFe5         ¦  «        ZI G d„ deFe5         ¦  «        ZJdS )é    N)ÚSequence)ÚBinaryIOÚClassVarÚGenericÚTextIOÚTypeVarÚcast)Úutils)ÚImageWriter)ÚLAParamsÚLTAnnoÚLTCharÚLTComponentÚLTContainerÚLTCurveÚLTFigureÚLTImageÚLTItemÚLTLayoutContainerÚLTLineÚLTPageÚLTRectÚLTTextÚ	LTTextBoxÚLTTextBoxVerticalÚLTTextGroupÚ
LTTextLineÚTextGroupElement)ÚPDFColorSpace)ÚPDFTextDevice)ÚPDFValueError)ÚPDFFontÚPDFUnicodeNotDefined)ÚPDFGraphicStateÚPDFResourceManager)ÚPDFPage)Ú	PDFStream)ÚAnyIOÚMatrixÚPathSegmentÚPointÚRectÚapply_matrix_ptÚapply_matrix_rectÚbbox2strÚencÚmake_compat_strÚmult_matrixc                   ó$  — e Zd ZU eed<   eed<   	 	 d&dedededz  ddfd	„Z	d
e
deddfd„Zd
e
ddfd„Zdedededdfd„Zdeddfd„Zdededdfd„Zdededededee         ddfd„Zdedededededed ed!edefd"„Zdededefd#„Zd$eddfd%„ZdS )'ÚPDFLayoutAnalyzerÚcur_itemÚctmé   NÚrsrcmgrÚpagenoÚlaparamsÚreturnc                 óZ   — t          j        | |¦  «         || _        || _        g | _        d S ©N)r    Ú__init__r9   r:   Ú_stack©Úselfr8   r9   r:   s       úP/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pdfminer/converter.pyr>   zPDFLayoutAnalyzer.__init__A   s0   € õ 	Ô˜t WÑ-Ô-Ð-ØˆŒØ ˆŒØ/1ˆŒˆˆó    Úpagec                 óº   — t          ||j        ¦  «        \  }}}}ddt          ||z
  ¦  «        t          ||z
  ¦  «        f}t          | j        |¦  «        | _        d S )Nr   )r.   ÚmediaboxÚabsr   r9   r5   )rA   rD   r6   Úx0Úy0Úx1Úy1rF   s           rB   Ú
begin_pagezPDFLayoutAnalyzer.begin_pageL   sU   € Ý,¨S°$´-Ñ@Ô@ÑˆˆR��RØ�q�#˜b 2™g™,œ,­¨B°©G©¬Ð5ˆÝ˜tœ{¨HÑ5Ô5ˆŒˆˆrC   c                 óŒ  — | j         r)J t          t          | j         ¦  «        ¦  «        ¦   «         ‚t          | j        t
          ¦  «        s)J t          t          | j        ¦  «        ¦  «        ¦   «         ‚| j        �| j                             | j        ¦  «         | xj	        dz  c_	        |  
                    | j        ¦  «         d S )Nr7   )r?   ÚstrÚlenÚ
isinstancer5   r   Útyper:   Úanalyzer9   Úreceive_layout)rA   rD   s     rB   Úend_pagezPDFLayoutAnalyzer.end_pageQ   s§   € Ø”;Ð5Ð5¥¥C¨¬Ñ$4Ô$4Ñ 5Ô 5Ñ5Ô5ˆÝ˜$œ-­Ñ0Ô0ÐJÐJµ#µd¸4¼=Ñ6IÔ6IÑ2JÔ2JÑJÔJÐ0ØŒ=Ð$ØŒM×!Ò! $¤-Ñ0Ô0Ð0ØˆŒ�qÑˆŒØ×Ò˜DœMÑ*Ô*Ð*Ð*Ð*rC   ÚnameÚbboxÚmatrixc                 ó–   — | j                              | j        ¦  «         t          ||t	          || j        ¦  «        ¦  «        | _        d S r=   )r?   Úappendr5   r   r2   r6   )rA   rU   rV   rW   s       rB   Úbegin_figurezPDFLayoutAnalyzer.begin_figureY   s=   € ØŒ×Ò˜4œ=Ñ)Ô)Ð)Ý   t­[¸ÀÄÑ-JÔ-JÑKÔKˆŒˆˆrC   Ú_c                 ó
  — | j         }t          | j         t          ¦  «        s)J t          t	          | j         ¦  «        ¦  «        ¦   «         ‚| j                             ¦   «         | _         | j                              |¦  «         d S r=   )r5   rP   r   rN   rQ   r?   ÚpopÚadd)rA   r[   Úfigs      rB   Ú
end_figurezPDFLayoutAnalyzer.end_figure]   sj   € ØŒmˆÝ˜$œ-­Ñ2Ô2ÐLÐLµC½¸T¼]Ñ8KÔ8KÑ4LÔ4LÑLÔLÐ2ØœŸšÑ)Ô)ˆŒØŒ×Ò˜#ÑÔÐÐÐrC   Ústreamc                 ó:  — t          | j        t          ¦  «        s)J t          t	          | j        ¦  «        ¦  «        ¦   «         ‚t          ||| j        j        | j        j        | j        j        | j        j	        f¦  «        }| j         
                    |¦  «         d S r=   )rP   r5   r   rN   rQ   r   rH   rI   rJ   rK   r^   )rA   rU   ra   Úitems       rB   Úrender_imagezPDFLayoutAnalyzer.render_imagec   s‡   € Ý˜$œ-­Ñ2Ô2ÐLÐLµC½¸T¼]Ñ8KÔ8KÑ4LÔ4LÑLÔLÐ2ÝØØØŒ]Ô˜tœ}Ô/°´Ô1AÀ4Ä=ÔCSÐTñ
ô 
ˆð
 	Œ×Ò˜$ÑÔÐÐÐrC   ÚgstateÚstrokeÚfillÚevenoddÚpathc                 óâ  ‡ ‡— d                      d„ ‰D ¦   «         ¦  «        }|dd…         dk    rdS |                     d¦  «        dk    rct          j        d|¦  «        D ]K}‰|                     d¦  «        |                     d¦  «        …         }‰                      |||||¦  «         ŒLdS ˆfd„‰D ¦   «         }	ˆ fd	„|	D ¦   «         }
d
„ ‰D ¦   «         }ˆ fd„‰D ¦   «         }d„ t          ||d¬¦  «        D ¦   «         }t          |¦  «        dk    rA|dd…         dk    r3|
d         |
d         k    r!|dd…         dz   }|
 	                    ¦   «          |dv rUt          |j        |
d         |
d         ||||j        |j        ||j        ¬¦
  «
        }‰ j                             |¦  «         dS |dv rù|
\  \  }}\  }}\  }}\  }}}|
d         |
d         k    }||k    o||k    o||k    o||k    p||k    o||k    o||k    o||k    }|rZ|rXt#          |j        g |
d         ¢|
d         ¢R ||||j        |j        ||j        ¦	  «	        }‰ j                             |¦  «         dS t%          |j        |
||||j        |j        ||j        ¦	  «	        }‰ j                             |¦  «         dS t%          |j        |
||||j        |j        ||j        ¦	  «	        }‰ j                             |¦  «         dS )z@Paint paths described in section 4.4 of the PDF reference manualÚ c              3   ó&   K  — | ]}|d          V — ŒdS )r   N© )Ú.0Úxs     rB   ú	<genexpr>z/PDFLayoutAnalyzer.paint_path.<locals>.<genexpr>u   s&   è è € Ð+Ð+ ˜˜!œÐ+Ð+Ð+Ð+Ð+Ð+rC   Nr7   Úmzm[^m]+r   c                 ó‚   •— g | ];}t          t          |d          dk    r
|dd…         n‰d          dd…         ¦  «        ‘Œ<S )r   ÚhéþÿÿÿN)r	   r+   )rn   Úpri   s     €rB   ú
<listcomp>z0PDFLayoutAnalyzer.paint_path.<locals>.<listcomp>Ž   sT   ø€ ð ð ð ØIJ••U a¨¤d¨c¢k k˜A˜b˜c˜cœF˜F°t¸A´w¸r¸s¸s´|ÑDÔDðð ð rC   c                 ó:   •— g | ]}t          ‰j        |¦  «        ‘ŒS rm   )r-   r6   )rn   ÚptrA   s     €rB   rv   z0PDFLayoutAnalyzer.paint_path.<locals>.<listcomp>‘   s%   ø€ ÐCÐCÐC°R•? 4¤8¨RÑ0Ô0ÐCÐCÐCrC   c                 ó8   — g | ]}t          |d          ¦  «        ‘ŒS )r   )rN   )rn   Ú	operations     rB   rv   z0PDFLayoutAnalyzer.paint_path.<locals>.<listcomp>“   s$   € ÐAÐAÐA¨y�˜Y qœ\Ñ*Ô*ÐAÐAÐArC   c           
      óp   •— g | ]2}ˆfd „t          |ddd…         |ddd…         d¬¦  «        D ¦   «         ‘Œ3S )c           	      óx   •— g | ]6\  }}t          ‰j        t          |¦  «        t          |¦  «        f¦  «        ‘Œ7S rm   )r-   r6   Úfloat)rn   Úoperand1Úoperand2rA   s      €rB   rv   z;PDFLayoutAnalyzer.paint_path.<locals>.<listcomp>.<listcomp>•   sJ   ø€ ð ð ð á*˜ (õ $ D¤H­u°X©¬ÅÀhÁÄÐ.PÑQÔQðð ð rC   r7   Né   F©Ústrict)Úzip)rn   rz   rA   s     €rB   rv   z0PDFLayoutAnalyzer.paint_path.<locals>.<listcomp>”   sv   ø€ ð "ð "ð "ð ðð ð ð å.1Ø! ! $ Q $œ¨°1°4°a°4¬Àð/ñ /ô /ðñ ô ð"ð "ð "rC   c                 óF   — g | ]\  }}t          t          |g|¢R ¦  «        ‘ŒS rm   )r	   r*   )rn   Úoru   s      rB   rv   z0PDFLayoutAnalyzer.paint_path.<locals>.<listcomp>�   s>   € ð  ð  ð  á�A�qõ •[ 1 ' q ' 'Ñ*Ô*ð ð  ð  rC   Fr�   é   rt   Úlhrs   >   ÚmlÚmlh)Úoriginal_pathÚdashing_style>   ÚmlllhÚmllllé   r€   )ÚjoinÚcountÚreÚfinditerÚstartÚendÚ
paint_pathrƒ   rO   r]   r   Ú	linewidthÚscolorÚncolorÚdashr5   r^   r   r   )rA   re   rf   rg   rh   ri   Úshaperq   ÚsubpathÚraw_ptsÚptsÚ	operatorsÚtransformed_pointsÚtransformed_pathÚlinerH   rI   rJ   rK   Úx2Úy2Úx3Úy3r[   Úis_closed_loopÚhas_square_coordinatesÚrectÚcurves   `    `                      rB   r•   zPDFLayoutAnalyzer.paint_pathl   sÚ  øø€ ð —’Ð+Ð+ dÐ+Ñ+Ô+Ñ+Ô+ˆà��!�Œ9˜ÒÐð ˆDà�[Š[˜ÑÔ Ò!Ð!å”[ ¨EÑ2Ô2ð Hð H�Ø˜qŸwšw q™zœz¨A¯EªE°!©H¬HÐ4Ô5�Ø—’ ¨°°g¸wÑGÔGÐGÐGðHð Hðð ð ð ØNRðñ ô ˆGð DÐCÐCÐC¸7ÐCÑCÔCˆCàAÐA¸DÐAÑAÔAˆIð"ð "ð "ð "ð "&ð"ñ "ô "Ðð ð  å 	Ð+=ÀeÐLÑLÔLð ñ  ô  Ðõ �5‰zŒz˜AŠ~ˆ~ %¨¨¨¤*°Ò"4Ð"4¸¸R¼ÀCÈÄFÒ9JÐ9JØ˜c˜r˜cœ
 SÑ(�Ø—’‘	”	�	à˜Ð%Ð%õ
 ØÔ$Ø˜”FØ˜”FØØØØ”MØ”MØ"2Ø"(¤+ðñ ô �ð ”×!Ò! $Ñ'Ô'Ð'Ð'Ð'àÐ,Ð,Ð,Ø<?Ñ9‘��R™(˜2˜r¡H R¨©h¨r°2¸à!$ Q¤¨3¨q¬6Ò!1�à˜"’HÐC  r¢ÐC¨b°BªhÐC¸2Àº8ð*Gà˜B’hÐE 2¨¢8ÐE°°b²ÐE¸RÀ2ºXð 'ð "ð -Ð&<ð -Ý!ØÔ(Ø*˜#˜aœ&Ð* 3 q¤6Ð*Ð*ØØØØœØœØ(Øœñ
ô 
�Dð ”M×%Ò% dÑ+Ô+Ð+Ð+Ð+å#ØÔ(ØØØØØœØœØ(Øœñ
ô 
�Eð ”M×%Ò% eÑ,Ô,Ð,Ð,Ð,åØÔ$ØØØØØ”MØ”MØ$Ø”Kñ
ô 
�ð ”×!Ò! %Ñ(Ô(Ð(Ð(Ð(rC   ÚfontÚfontsizeÚscalingÚriseÚcidÚncsÚgraphicstatec	                 ó´  — 	 |                      |¦  «        }	t          |	t          ¦  «        s$J t          t          |	¦  «        ¦  «        ¦   «         ‚n&# t          $ r |                      ||¦  «        }	Y nw xY w|                     |¦  «        }
|                     |¦  «        }t          ||||||	|
|||¦
  «
        }| j	         
                    |¦  «         |j        S r=   )Ú	to_unichrrP   rN   rQ   r#   Úhandle_undefined_charÚ
char_widthÚ	char_dispr   r5   r^   Úadv)rA   rW   rª   r«   r¬   r­   r®   r¯   r°   ÚtextÚ	textwidthÚtextdisprc   s                rB   Úrender_charzPDFLayoutAnalyzer.render_charé   sç   € ð	9Ø—>’> #Ñ&Ô&ˆDÝ˜d¥CÑ(Ô(Ð9Ð9­#­d°4©j¬j©/¬/Ñ9Ô9Ð(Ð9øÝ#ð 	9ð 	9ð 	9Ø×-Ò-¨d°CÑ8Ô8ˆDˆDˆDð	9øøøà—O’O CÑ(Ô(ˆ	Ø—>’> #Ñ&Ô&ˆÝØØØØØØØØØØñ
ô 
ˆð 	Œ×Ò˜$ÑÔÐØŒxˆs   ‚AA Á A4Á3A4c                 óF   — t                                d||¦  «         d|› d�S )Nzundefined: %r, %rz(cid:ú))ÚlogÚdebug)rA   rª   r®   s      rB   r³   z'PDFLayoutAnalyzer.handle_undefined_char
  s'   € Ý�	Š	Ð% t¨SÑ1Ô1Ð1Ø�sˆ~ˆ~ˆ~ÐrC   Últpagec                 ó   — d S r=   rm   ©rA   r¿   s     rB   rS   z PDFLayoutAnalyzer.receive_layout  s   € ØˆrC   ©r7   N)Ú__name__Ú
__module__Ú__qualname__r   Ú__annotations__r)   r%   Úintr   r>   r&   rL   rT   rN   r,   rZ   r`   r'   rd   r$   Úboolr   r*   r•   r"   r}   r   rº   r³   r   rS   rm   rC   rB   r4   r4   =   sZ  € € € € € € ØÐÐÑØ	€K€K�Kð
 Ø$(ð		2ð 	2à#ð	2ð ð	2ð ˜T‘/ð		2ð
 
ð	2ð 	2ð 	2ð 	2ð6˜wð 6¨Vð 6¸ð 6ð 6ð 6ð 6ð
+˜Wð +¨ð +ð +ð +ð +ðL ð L¨Dð L¸&ð LÀTð Lð Lð Lð Lð˜Cð  Dð ð ð ð ð  ð  ¨ið  ¸Dð  ð  ð  ð  ð{)àð{)ð ð{)ð ð	{)ð
 ð{)ð �{Ô#ð{)ð 
ð{)ð {)ð {)ð {)ðzàðð ðð ð	ð
 ðð ðð ðð ðð &ðð 
ðð ð ð ðB¨'ð ¸ð Àð ð ð ð ð Vð °ð ð ð ð ð ð rC   r4   c            	       óN   — e Zd Z	 	 ddedededz  ddfd„Zdeddfd	„Zdefd
„Z	dS )ÚPDFPageAggregatorr7   Nr8   r9   r:   r;   c                 óP   — t                                | |||¬¦  «         d | _        d S ©N)r9   r:   )r4   r>   Úresultr@   s       rB   r>   zPDFPageAggregator.__init__  s,   € õ 	×"Ò" 4¨¸È(Ð"ÑSÔSÐSØ%)ˆŒˆˆrC   r¿   c                 ó   — || _         d S r=   ©rÍ   rÁ   s     rB   rS   z PDFPageAggregator.receive_layout  s   € ØˆŒˆˆrC   c                 ó"   — | j         €J ‚| j         S r=   rÏ   ©rA   s    rB   Ú
get_resultzPDFPageAggregator.get_result  s   € ØŒ{Ð&Ð&Ð&ØŒ{ÐrC   rÂ   )
rÃ   rÄ   rÅ   r%   rÇ   r   r>   r   rS   rÒ   rm   rC   rB   rÊ   rÊ     sœ   € € € € € ð Ø$(ð	*ð *à#ð*ð ð*ð ˜T‘/ð	*ð
 
ð*ð *ð *ð *ð Vð °ð ð ð ð ð˜Fð ð ð ð ð ð rC   rÊ   ÚIOTypec                   ó\   — e Zd Z	 	 	 ddedededededz  d	dfd
„Ze	de
d	efd„¦   «         ZdS )ÚPDFConverterúutf-8r7   Nr8   ÚoutfpÚcodecr9   r:   r;   c                 óœ   — t                                | |||¬¦  «         || _        || _        |                      | j        ¦  «        | _        d S rÌ   )r4   r>   r×   rØ   Ú_is_binary_streamÚoutfp_binary)rA   r8   r×   rØ   r9   r:   s         rB   r>   zPDFConverter.__init__)  sM   € õ 	×"Ò" 4¨¸È(Ð"ÑSÔSÐSØ"ˆŒ
ØˆŒ
Ø ×2Ò2°4´:Ñ>Ô>ˆÔÐÐrC   c                 óÜ   — dt          | dd¦  «        v rdS t          | d¦  «        rdS t          | t          j        ¦  «        rdS t          | t          j        t          j        f¦  «        rdS dS )z"Test if an stream is binary or notÚbÚmoderk   TF)ÚgetattrÚhasattrrP   ÚioÚBytesIOÚStringIOÚ
TextIOBase)r×   s    rB   rÚ   zPDFConverter._is_binary_stream6  su   € ð •'˜% ¨Ñ,Ô,Ð,Ð,Ø�4Ý�U˜FÑ#Ô#ð 	à�5Ý˜�rœzÑ*Ô*ð 	Ø�4Ý˜¥¤­R¬]Ð;Ñ<Ô<ð 	Ø�5àˆtrC   )rÖ   r7   N)rÃ   rÄ   rÅ   r%   rÓ   rN   rÇ   r   r>   Ústaticmethodr(   rÈ   rÚ   rm   rC   rB   rÕ   rÕ   (  s¤   € € € € € ð
 ØØ$(ð?ð ?à#ð?ð ð?ð ð	?ð
 ð?ð ˜T‘/ð?ð 
ð?ð ?ð ?ð ?ð ð ð ¨4ð ð ð ñ „\ðð ð rC   rÕ   c                   ó¸   ‡ — e Zd Z	 	 	 	 	 ddedededed	edz  d
ede	dz  ddfˆ fd„Z
deddfd„Zdeddfd„Zdededdfd„Zdededededee         ddfd„Zˆ xZS )ÚTextConverterrÖ   r7   NFr8   r×   rØ   r9   r:   Ú
showpagenoÚimagewriterr;   c                 óp   •— t          ¦   «                              |||||¬¦  «         || _        || _        d S )N©rØ   r9   r:   )Úsuperr>   rè   ré   )	rA   r8   r×   rØ   r9   r:   rè   ré   Ú	__class__s	           €rB   r>   zTextConverter.__init__G  s=   ø€ õ 	‰Œ×Ò˜ %¨u¸VÈhÐÑWÔWÐWØ$ˆŒØ&ˆÔÐÐrC   r·   c                 ó&  — t          j        || j        d¦  «        }| j        rAt	          t
          | j        ¦  «                             |                     ¦   «         ¦  «         d S t	          t          | j        ¦  «                             |¦  «         d S )NÚignore)
r
   Úcompatible_encode_methodrØ   rÛ   r	   r   r×   ÚwriteÚencoder   ©rA   r·   s     rB   Ú
write_textzTextConverter.write_textU  sw   € ÝÔ-¨d°D´JÀÑIÔIˆØÔð 	1Ý•˜4œ:Ñ&Ô&×,Ò,¨T¯[ª[©]¬]Ñ;Ô;Ð;Ð;Ð;å•˜œÑ$Ô$×*Ò*¨4Ñ0Ô0Ð0Ð0Ð0rC   r¿   c                 ó´   ‡ ‡— dt           dd fˆˆ fd„Š‰ j        r‰                      d|j        › d�¦  «          ‰|¦  «         ‰                      d¦  «         d S )Nrc   r;   c                 ó˜  •— t          | t          ¦  «        r| D ]} ‰|¦  «         Œn<t          | t          ¦  «        r'‰                     |                      ¦   «         ¦  «         t          | t
          ¦  «        r‰                     d¦  «         d S t          | t          ¦  «        r#‰j        �‰j                             | ¦  «         d S d S d S )Nú
)	rP   r   r   rô   Úget_textr   r   ré   Úexport_image)rc   ÚchildÚrenderrA   s     €€rB   rû   z,TextConverter.receive_layout.<locals>.render]  sÕ   ø€ Ý˜$¥Ñ,Ô,ð 1Ø!ð "ð "�EØ�F˜5‘M”M�M�Mð"å˜D¥&Ñ)Ô)ð 1Ø—’ §¢¡¤Ñ0Ô0Ð0Ý˜$¥	Ñ*Ô*ð 4Ø—’ Ñ%Ô%Ð%Ð%Ð%Ý˜D¥'Ñ*Ô*ð 4¨tÔ/?Ð/KØÔ ×-Ò-¨dÑ3Ô3Ð3Ð3Ð3ð4ð 4Ð/KÐ/KrC   zPage r÷   ú)r   rè   rô   Úpageid©rA   r¿   rû   s   ` @rB   rS   zTextConverter.receive_layout\  s†   øø€ ð		4�ð 		4 Dð 		4ð 		4ð 		4ð 		4ð 		4ð 		4ð 		4ð Œ?ð 	7Ø�OŠOÐ5 F¤MÐ5Ð5Ð5Ñ6Ô6Ð6Øˆˆv‰ŒˆØ�Š˜ÑÔÐÐÐrC   rU   ra   c                 óP   — | j         �t                               | ||¦  «         d S d S r=   )ré   rÕ   rd   )rA   rU   ra   s      rB   rd   zTextConverter.render_imagep  s1   € ØÔÐ'Ý×%Ò% d¨D°&Ñ9Ô9Ð9Ð9Ð9ð (Ð'rC   re   rf   rg   rh   ri   c                 ó   — d S r=   rm   )rA   re   rf   rg   rh   ri   s         rB   r•   zTextConverter.paint_patht  s	   € ð 	ˆrC   )rÖ   r7   NFN)rÃ   rÄ   rÅ   r%   r(   rN   rÇ   r   rÈ   r   r>   rô   r   rS   r'   rd   r$   r   r*   r•   Ú__classcell__)rí   s   @rB   rç   rç   F  sj  ø€ € € € € ð
 ØØ$(Ø Ø*.ð'ð 'à#ð'ð ð'ð ð	'ð
 ð'ð ˜T‘/ð'ð ð'ð ! 4Ñ'ð'ð 
ð'ð 'ð 'ð 'ð 'ð 'ð1˜sð 1 tð 1ð 1ð 1ð 1ð Vð °ð ð ð ð ð(: ð :¨ið :¸Dð :ð :ð :ð :ðàðð ðð ð	ð
 ðð �{Ô#ðð 
ðð ð ð ð ð ð ð rC   rç   c                   ó2  — e Zd ZU dddddddœZeeeef                  ed<   d	dd
œZeeeef                  ed<   	 	 	 	 	 	 	 	 	 	 	 	 d@de	de
dedededz  dededededededz  ded eeef         dz  d!eeef         dz  d"dfd#„Zd$ed"dfd%„ZdAd&„ZdAd'„Zd$ed"dfd(„Zd)ed*ed+ed,ed-ed.ed"dfd/„Zd)ed*ed0ed"dfd1„Zd0ed*ed+ed,ed-ed.ed"dfd2„Zd)ed$ed+ed,ed3ed"dfd4„Z	 dBd)ed*ed+ed,ed-ed.ed6ed"dfd7„Zd)ed"dfd8„Zd$ed9ed:ed"dfd;„ZdAd<„Zd=ed"dfd>„Z dAd?„Z!dS )CÚHTMLConverterÚyellowÚmagentaÚcyanÚredÚblackÚgray)ÚfigureÚtextlineÚtextboxÚ	textgroupr©   rD   ÚRECT_COLORSÚblue)r  ÚcharÚTEXT_COLORSrÖ   r7   Nç      ð?ÚnormalTé2   r   r8   r×   rØ   r9   r:   ÚscaleÚ	fontscaleÚ
layoutmoderè   Ú
pagemarginré   r¾   Úrect_colorsÚtext_colorsr;   c                 ó   — t                                | |||||¬¦  «         | j        r| j        st	          d¦  «        ‚| j        s| j        rt	          d¦  «        ‚|€ddi}|€dddœ}|| _        || _        || _        |	| _        |
| _	        || _
        || _        || _        |r>| j                             | j        ¦  «         | j                             | j        ¦  «         | j	        | _        d | _        g | _        |                      ¦   «          d S )Nrë   ú)Codec is required for a binary I/O outputz1Codec must not be specified for a text I/O outputr  r  r	  )r©   rD   )rÕ   r>   rÛ   rØ   r!   r  r  r  rè   r  ré   r  r  Úupdater  r  Ú_yoffsetÚ_fontÚ
_fontstackÚwrite_header)rA   r8   r×   rØ   r9   r:   r  r  r  rè   r  ré   r¾   r  r  s                  rB   r>   zHTMLConverter.__init__Ž  sH  € õ" 	×ÒØØØØØØð 	ñ 	
ô 	
ð 	
ð Ôð 	M T¤Zð 	MÝÐ KÑLÔLÐLØÔ ð 	U T¤Zð 	UÝÐ SÑTÔTÐTàÐØ! 7Ð+ˆKØÐØ$+°VÐ<Ð<ˆKàˆŒ
Ø"ˆŒØ$ˆŒØ$ˆŒØ$ˆŒØ&ˆÔØ&ˆÔØ&ˆÔØð 	6ØÔ×#Ò# DÔ$4Ñ5Ô5Ð5ØÔ×#Ò# DÔ$4Ñ5Ô5Ð5Ø#œˆŒØ/3ˆŒ
Ø:<ˆŒØ×ÒÑÔÐÐÐrC   r·   c                 óü   — | j         rGt          t          | j        ¦  «                             |                     | j         ¦  «        ¦  «         d S t          t          | j        ¦  «                             |¦  «         d S r=   ©rØ   r	   r   r×   rñ   rò   r   ró   s     rB   rñ   zHTMLConverter.writeÃ  óf   € ØŒ:ð 	1Ý•˜4œ:Ñ&Ô&×,Ò,¨T¯[ª[¸¼Ñ-DÔ-DÑEÔEÐEÐEÐEå•˜œÑ$Ô$×*Ò*¨4Ñ0Ô0Ð0Ð0Ð0rC   c                 ó®   — |                       d¦  «         | j        rd| j        › d�}nd}|                       |¦  «         |                       d¦  «         d S )Nz<html><head>
z<<meta http-equiv="Content-Type" content="text/html; charset=ú">
z5<meta http-equiv="Content-Type" content="text/html">
z</head><body>
)rñ   rØ   )rA   Úss     rB   r!  zHTMLConverter.write_headerÉ  sp   € Ø�
Š
Ð#Ñ$Ô$Ð$ØŒ:ð 	Ið,Øœ:ð,ð ,ð ,ð ˆAð
 IˆAØ�
Š
�1‰ŒˆØ�
Š
Ð$Ñ%Ô%Ð%Ð%Ð%rC   c                 óÊ   — d„ t          d| j        ¦  «        D ¦   «         }dd                     |¦  «        › d�}|                      |¦  «         |                      d¦  «         d S )Nc                 ó    — g | ]}d |› d|› d�‘ŒS )z
<a href="#ú">z</a>rm   )rn   Úis     rB   rv   z.HTMLConverter.write_footer.<locals>.<listcomp>Ö  s,   € ÐOÐOÐO°AÐ/ 1Ð/Ð/¨Ð/Ð/Ð/ÐOÐOÐOrC   r7   z/<div style="position:absolute; top:0px;">Page: z, ú</div>
z</body></html>
)Úranger9   r�   rñ   )rA   Ú
page_linksr'  s      rB   Úwrite_footerzHTMLConverter.write_footerÕ  ss   € ØOÐO½¸qÀ$Ä+Ñ9NÔ9NÐOÑOÔOˆ
ð5Ø—Y’Y˜zÑ*Ô*ð5ð 5ð 5ð 	
ð 	�
Š
�1‰ŒˆØ�
Š
Ð%Ñ&Ô&Ð&Ð&Ð&rC   c                 óJ   — |                       t          |¦  «        ¦  «         d S r=   )rñ   r0   ró   s     rB   rô   zHTMLConverter.write_textÞ  s    € Ø�
Š
•3�t‘9”9ÑÔÐÐÐrC   ÚcolorÚborderwidthro   ÚyÚwrs   c                 óæ   — | j                              |¦  «        }|�Td|› d|› d|| j        z  › d| j        |z
  | j        z  › d|| j        z  › d|| j        z  › d�}|                      |¦  «         d S d S )Nz(<span style="position:absolute; border: ú zpx solid; left:úpx; top:ú
px; width:úpx; height:zpx;"></span>
)r  Úgetr  r  rñ   )	rA   r1  r2  ro   r3  r4  rs   Úcolor2r'  s	            rB   Ú
place_rectzHTMLConverter.place_rectá  sÀ   € ð Ô!×%Ò% eÑ,Ô,ˆØÐð9Ø!ð9ð 9Ø$/ð9ð 9à˜DœJ™ð9ð 9ð œ¨Ñ)¨T¬ZÑ7ð9ð 9ð ˜TœZ™ð	9ð 9ð
 ˜dœj™.ð9ð 9ð 9ð ð �JŠJ�q‰MŒMˆMˆMˆMð ÐrC   rc   c                 ób   — |                       |||j        |j        |j        |j        ¦  «         d S r=   )r<  rH   rK   ÚwidthÚheight)rA   r1  r2  rc   s       rB   Úplace_borderzHTMLConverter.place_borderö  s,   € Ø�Š˜˜{¨D¬G°T´W¸d¼jÈ$Ì+ÑVÔVÐVÐVÐVrC   c                 ó
  — | j         �{| j                              |¦  «        }dt          |¦  «        › d|› d|| j        z  › d| j        |z
  | j        z  › d|| j        z  › d|| j        z  › d�}|                      |¦  «         d S d S )Nz
<img src="z
" border="z!" style="position:absolute; left:r7  zpx;" width="ú
" height="ú" />
)ré   rù   r0   r  r  rñ   )	rA   rc   r2  ro   r3  r4  rs   rU   r'  s	            rB   Úplace_imagezHTMLConverter.place_imageù  sÇ   € ð ÔÐ'ØÔ#×0Ò0°Ñ6Ô6ˆDð2�S ™YœYð 2ð 2°+ð 2ð 2à˜DœJ™ð2ð 2ð œ¨Ñ)¨T¬ZÑ7ð2ð 2ð ˜dœj™.ð	2ð 2ð
 ˜tœz™>ð2ð 2ð 2ð ð �JŠJ�q‰MŒMˆMˆMˆMð (Ð'rC   Úsizec           	      ó.  — | j                              |¦  «        }|�xd|› d|| j        z  › d| j        |z
  | j        z  › d|| j        z  | j        z  › d�	}|                      |¦  «         |                      |¦  «         |                      d¦  «         d S d S )Nz&<span style="position:absolute; color:ú; left:r7  zpx; font-size:úpx;">ú</span>
)r  r:  r  r  r  rñ   rô   )rA   r1  r·   ro   r3  rE  r;  r'  s           rB   Ú
place_textzHTMLConverter.place_text  sÖ   € ð Ô!×%Ò% eÑ,Ô,ˆØÐðGØðGð Gà˜DœJ™ðGð Gð œ¨Ñ)¨T¬ZÑ7ðGð Gð " D¤JÑ.°´Ñ?ð	Gð Gð Gð ð �JŠJ�q‰MŒMˆMØ�OŠO˜DÑ!Ô!Ð!Ø�JŠJ�{Ñ#Ô#Ð#Ð#Ð#ð ÐrC   ÚFalseÚwriting_modec                 óü   — | j                              | j        ¦  «         d | _        d|› d|› d|› d|| j        z  › d| j        |z
  | j        z  › d|| j        z  › d|| j        z  › d�}|                      |¦  «         d S )	Nz'<div style="position:absolute; border: r6  zpx solid; writing-mode:rG  r7  r8  r9  rH  )r   rY   r  r  r  rñ   )	rA   r1  r2  ro   r3  r4  rs   rL  r'  s	            rB   Ú	begin_divzHTMLConverter.begin_div#  sÊ   € ð 	Œ×Ò˜tœzÑ*Ô*Ð*ØˆŒ
ð,Øð,ð ,Ø*ð,ð ,à(ð,ð ,ð ˜œ
‘Nð,ð ,ð ”M AÑ%¨¬Ñ3ð	,ð ,ð
 ˜œ‘^ð,ð ,ð ˜$œ*‘nð,ð ,ð ,ð 	
ð 	�
Š
�1‰ŒˆˆˆrC   c                 ó¤   — | j         �|                      d¦  «         | j                             ¦   «         | _         |                      d¦  «         d S )Nú</span>z</div>)r  rñ   r   r]   )rA   r1  s     rB   Úend_divzHTMLConverter.end_div:  sI   € ØŒ:Ð!Ø�JŠJ�yÑ!Ô!Ð!Ø”_×(Ò(Ñ*Ô*ˆŒ
Ø�
Š
�8ÑÔÐÐÐrC   Úfontnamer«   c                 ó"  — ||f}|| j         k    rj| j         �|                      d¦  «         |                     d¦  «        d         }|                      d|› d|| j        z  | j        z  › d�¦  «         || _         |                      |¦  «         d S )NrP  ú+éÿÿÿÿz<span style="font-family: z; font-size:zpx">)r  rñ   Úsplitr  r  rô   )rA   r·   rR  r«   rª   Úfontname_without_subset_tags         rB   Úput_textzHTMLConverter.put_text@  s¹   € Ø˜(Ð#ˆØ�4”:ÒÐØŒzÐ%Ø—
’
˜9Ñ%Ô%Ð%à*2¯.ª.¸Ñ*=Ô*=¸bÔ*AÐ'Ø�JŠJðJØ ;ðJð Jà%¨¬
Ñ2°T´^ÑCðJð Jð Jñô ð ð
 ˆDŒJØ�Š˜ÑÔÐÐÐrC   c                 ó0   — |                       d¦  «         d S )Nz<br>©rñ   rÑ   s    rB   Úput_newlinezHTMLConverter.put_newlineO  s   € Ø�
Š
�6ÑÔÐÐÐrC   r¿   c                 óž   ‡ ‡‡— dt           t          z  dd fˆ ˆfd„Šdt          dd fˆˆ ˆfd„Š ‰|¦  «         ‰ xj        ‰ j        z  c_        d S )Nrc   r;   c                 ó„   •— t          | t          ¦  «        r'‰                     dd| ¦  «         | D ]} ‰|¦  «         Œd S d S )Nr  r7   )rP   r   r@  ©rc   rú   rA   Ú
show_groups     €€rB   r_  z0HTMLConverter.receive_layout.<locals>.show_groupS  sc   ø€ Ý˜$¥Ñ,Ô,ð &Ø×!Ò! +¨q°$Ñ7Ô7Ð7Ø!ð &ð &�EØ�J˜uÑ%Ô%Ð%Ð%ð&ð &ð&ð &rC   c           
      ód  •— t          | t          ¦  «        r¶‰xj        | j        z  c_        ‰                     dd| ¦  «         ‰j        rS‰                     d‰j        | j        z
  ‰j        z  › �¦  «         ‰                     d| j        › d| j        › d�¦  «         | D ]} ‰|¦  «         Œ| j	        �| j	        D ]} ‰|¦  «         Œd S d S t          | t          ¦  «        r‰                     dd| ¦  «         d S t          | t          ¦  «        rU‰                     dd| j        | j        | j        | j        ¦  «         | D ]} ‰|¦  «         Œ‰                     d¦  «         d S t          | t"          ¦  «        r0‰                     | d| j        | j        | j        | j        ¦  «         d S ‰j        d	k    �rt          | t(          ¦  «        r)‰                     d
d| ¦  «         | D ]} ‰|¦  «         Œd S t          | t*          ¦  «        ra‰                     dd| ¦  «         ‰                     dt/          | j        dz   ¦  «        | j        | j        d¦  «         | D ]} ‰|¦  «         Œd S t          | t2          ¦  «        rS‰                     dd| ¦  «         ‰                     d|                      ¦   «         | j        | j        | j        ¦  «         d S d S t          | t(          ¦  «        r3| D ]} ‰|¦  «         Œ‰j        dk    r‰                     ¦   «          d S d S t          | t*          ¦  «        rh‰                     dd| j        | j        | j        | j        |                      ¦   «         ¦  «         | D ]} ‰|¦  «         Œ‰                     d¦  «         d S t          | t2          ¦  «        rDt=          | j        ¦  «        }‰                      |                      ¦   «         || j        ¦  «         d S t          | tB          ¦  «        r)‰ "                    |                      ¦   «         ¦  «         d S d S )NrD   r7   z*<div style="position:absolute; top:%dpx;">z	<a name="z">Page z</a></div>
r©   r
  Úexactr  r  é   r  Úloose)#rP   r   r  rK   r@  rè   rñ   r  rý   Úgroupsr   r   rN  rH   r>  r?  rQ  r   rD  r  r   r   rJ  rN   Úindexr   rø   rE  r[  Úget_writing_moder1   rR  rX  r   rô   )rc   rú   ÚgrouprR  rû   rA   r_  s       €€€rB   rû   z,HTMLConverter.receive_layout.<locals>.renderY  sµ  ø€ å˜$¥Ñ'Ô'ð H1Ø�” ¤Ñ(�”Ø×!Ò! &¨!¨TÑ2Ô2Ð2Ø”?ð Ø—J’JðDØ œM¨D¬GÑ3°t´zÑAðDð Dñô ð ð —J’JØQ D¤KÐQÐQ¸¼ÐQÐQÐQñô ð ð "ð "ð "�EØ�F˜5‘M”M�M�MØ”;Ð*Ø!%¤ð *ð *˜Ø"˜
 5Ñ)Ô)Ð)Ð)ð +Ð*ð*ð *å˜D¥'Ñ*Ô*ð 81Ø×!Ò! '¨1¨dÑ3Ô3Ð3Ð3Ð3Ý˜D¥(Ñ+Ô+ð 61Ø—’˜x¨¨D¬G°T´W¸d¼jÈ$Ì+ÑVÔVÐVØ!ð "ð "�EØ�F˜5‘M”M�M�MØ—’˜XÑ&Ô&Ð&Ð&Ð&Ý˜D¥'Ñ*Ô*ð 11Ø× Ò   q¨$¬'°4´7¸D¼JÈÌÑTÔTÐTÐTÐTØ” GÒ+Ñ+Ý˜d¥JÑ/Ô/ð Ø×%Ò% j°!°TÑ:Ô:Ð:Ø!%ð &ð &˜Ø˜˜u™œ˜˜ð&ð &å ¥iÑ0Ô0ð Ø×%Ò% i°°DÑ9Ô9Ð9Ø—O’OØ!Ý˜DœJ¨™NÑ+Ô+ØœØœØñô ð ð "&ð &ð &˜Ø˜˜u™œ˜˜ð&ð &å ¥fÑ-Ô-ð Ø×%Ò% f¨a°Ñ6Ô6Ð6Ø—O’OØØŸš™œØœØœØœ	ñô ð ð ð ðð õ ˜D¥*Ñ-Ô-ð 1Ø!ð "ð "�EØ�F˜5‘M”M�M�MØ”? gÒ-Ð-Ø×$Ò$Ñ&Ô&Ð&Ð&Ð&ð .Ð-å˜D¥)Ñ,Ô,ð 1Ø—’ØØØ”GØ”GØ”JØ”KØ×)Ò)Ñ+Ô+ñô ð ð "ð "ð "�EØ�F˜5‘M”M�M�MØ—’˜YÑ'Ô'Ð'Ð'Ð'Ý˜D¥&Ñ)Ô)ð 1Ý*¨4¬=Ñ9Ô9�Ø—’˜dŸmšm™oœo¨x¸¼ÑCÔCÐCÐCÐCÝ˜D¥&Ñ)Ô)ð 1Ø—’ §¢¡¤Ñ0Ô0Ð0Ð0Ð0ð1ð 1rC   )r   r   r   r  r  ©rA   r¿   rû   r_  s   ` @@rB   rS   zHTMLConverter.receive_layoutR  s¢   øøø€ ð	&�[Õ+;Ñ;ð 	&Àð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ðJ	1�ð J	1 Dð J	1ð J	1ð J	1ð J	1ð J	1ð J	1ð J	1ð J	1ðX 	ˆˆv‰ŒˆØˆŒ˜œÑ(ˆŒˆˆrC   c                 ó.   — |                       ¦   «          d S r=   ©r/  rÑ   s    rB   ÚclosezHTMLConverter.close¨  ó   € Ø×ÒÑÔÐÐÐrC   )rÖ   r7   Nr7   r  r  Tr  Nr   NN©r;   N)rK  )"rÃ   rÄ   rÅ   r  r   ÚdictrN   rÆ   r  r%   r(   rÇ   r   r}   rÈ   r   r>   rñ   r!  r/  rô   r<  r   r@  r   rD  rJ  rN  rQ  rX  r[  r   rS   rk  rm   rC   rB   r  r    s,  € € € € € € àØØØØØð-ð -€K�˜$˜s C˜xœ.Ô)ð ð ñ ð Øð-ð -€K�˜$˜s C˜xœ.Ô)ð ð ñ ð ØØ$(ØØØ"ØØØ*.ØØ-1Ø-1ð3ð 3à#ð3ð ð3ð ð	3ð
 ð3ð ˜T‘/ð3ð ð3ð ð3ð ð3ð ð3ð ð3ð ! 4Ñ'ð3ð ð3ð ˜#˜s˜(”^ dÑ*ð3ð ˜#˜s˜(”^ dÑ*ð3ð  
ð!3ð 3ð 3ð 3ðj1˜#ð 1 $ð 1ð 1ð 1ð 1ð
&ð 
&ð 
&ð 
&ð'ð 'ð 'ð 'ð˜sð  tð ð ð ð ðàðð ðð ð	ð
 ðð ðð ðð 
ðð ð ð ð*W #ð W°Cð W¸{ð WÈtð Wð Wð Wð Wðàðð ðð ð	ð
 ðð ðð ðð 
ðð ð ð ð*$àð$ð ð$ð ð	$ð
 ð$ð ð$ð 
ð$ð $ð $ð $ð: $ðð àðð ðð ð	ð
 ðð ðð ðð ðð 
ðð ð ð ð.˜Sð  Tð ð ð ð ð˜Sð ¨Cð ¸5ð ÀTð ð ð ð ðð ð ð ðT) Vð T)°ð T)ð T)ð T)ð T)ðlð ð ð ð ð rC   r  c                   ó¶   — e Zd Z ej        d¦  «        Z	 	 	 	 	 ddededed	e	d
e
dz  dedz  deddfd„Zdeddfd„Zdd„Zdd„Zdeddfd„Zdeddfd„Zdd„ZdS )ÚXMLConverterz[ ---]rÖ   r7   NFr8   r×   rØ   r9   r:   ré   Ústripcontrolr;   c                 óÊ   — t                                | |||||¬¦  «         | j        | j         k    rt	          d¦  «        ‚|| _        || _        |                      ¦   «          d S )Nrë   r  )rÕ   r>   rÛ   rØ   r!   ré   rq  r!  )rA   r8   r×   rØ   r9   r:   ré   rq  s           rB   r>   zXMLConverter.__init__¯  s~   € õ 	×ÒØØØØØØð 	ñ 	
ô 	
ð 	
ð Ô T¤Z Ò0Ð0ÝÐ KÑLÔLÐLà&ˆÔØ(ˆÔØ×ÒÑÔÐÐÐrC   r·   c                 óü   — | j         rGt          t          | j        ¦  «                             |                     | j         ¦  «        ¦  «         d S t          t          | j        ¦  «                             |¦  «         d S r=   r#  ró   s     rB   rñ   zXMLConverter.writeÊ  r$  rC   c                 ó¦   — | j         r|                      d| j         › d�¦  «         n|                      d¦  «         |                      d¦  «         d S )Nz<?xml version="1.0" encoding="z" ?>
z<?xml version="1.0" ?>
z<pages>
©rØ   rñ   rÑ   s    rB   r!  zXMLConverter.write_headerÐ  sZ   € ØŒ:ð 	3Ø�JŠJÐJ¸¼
ÐJÐJÐJÑKÔKÐKÐKà�JŠJÐ1Ñ2Ô2Ð2Ø�
Š
�;ÑÔÐÐÐrC   c                 ó0   — |                       d¦  «         d S )Nz	</pages>
rZ  rÑ   s    rB   r/  zXMLConverter.write_footer×  s   € Ø�
Š
�<Ñ Ô Ð Ð Ð rC   c                 óŽ   — | j         r| j                             d|¦  «        }|                      t	          |¦  «        ¦  «         d S ©Nrk   )rq  ÚCONTROLÚsubrñ   r0   ró   s     rB   rô   zXMLConverter.write_textÚ  sB   € ØÔð 	.Ø”<×#Ò# B¨Ñ-Ô-ˆDØ�
Š
•3�t‘9”9ÑÔÐÐÐrC   r¿   c                 ód   ‡ ‡‡— dt           dd fˆ ˆfd„Šdt           dd fˆˆ ˆfd„Š ‰|¦  «         d S )Nrc   r;   c                 ój  •— t          | t          ¦  «        r5‰                     d| j        › dt	          | j        ¦  «        › d�¦  «         d S t          | t          ¦  «        rR‰                     dt	          | j        ¦  «        › d�¦  «         | D ]} ‰|¦  «         Œ‰                     d¦  «         d S d S )Nú<textbox id="ú" bbox="rC  z<textgroup bbox="r&  z</textgroup>
)rP   r   rñ   re  r/   rV   r   r^  s     €€rB   r_  z/XMLConverter.receive_layout.<locals>.show_groupà  sØ   ø€ Ý˜$¥	Ñ*Ô*ð -Ø—
’
ØS D¤JÐSÐS½ÀÄÑ8KÔ8KÐSÐSÐSñô ð ð ð õ ˜D¥+Ñ.Ô.ð -Ø—
’
ÐH­x¸¼	Ñ/BÔ/BÐHÐHÐHÑIÔIÐIØ!ð &ð &�EØ�J˜uÑ%Ô%Ð%Ð%Ø—
’
Ð+Ñ,Ô,Ð,Ð,Ð,ð	-ð -rC   c                 óš	  •— t          | t          ¦  «        rªd| j        › dt          | j        ¦  «        › d| j        › d�}‰                     |¦  «         | D ]} ‰|¦  «         Œ| j        �?‰                     d¦  «         | j        D ]} ‰|¦  «         Œ‰                     d¦  «         ‰                     d¦  «         d S t          | t          ¦  «        r7d| j	        › dt          | j        ¦  «        › d	�}‰                     |¦  «         d S t          | t          ¦  «        r7d
| j	        › dt          | j        ¦  «        › d	�}‰                     |¦  «         d S t          | t          ¦  «        rLd| j	        › dt          | j        ¦  «        › d|                      ¦   «         › d�}‰                     |¦  «         d S t          | t          ¦  «        r\d| j        › dt          | j        ¦  «        › d�}‰                     |¦  «         | D ]} ‰|¦  «         Œ‰                     d¦  «         d S t          | t          ¦  «        rR‰                     dt          | j        ¦  «        › d�¦  «         | D ]} ‰|¦  «         Œ‰                     d¦  «         d S t          | t           ¦  «        rxd}t          | t"          ¦  «        rd}d| j        › dt          | j        ¦  «        › d|› d�}‰                     |¦  «         | D ]} ‰|¦  «         Œ‰                     d¦  «         d S t          | t&          ¦  «        r£dt)          | j        ¦  «        › dt          | j        ¦  «        › d| j        j        › d| j        j        › d| j        d›d�}‰                     |¦  «         ‰                     |                      ¦   «         ¦  «         ‰                     d¦  «         d S t          | t8          ¦  «        r-‰                     d|                      ¦   «         › d�¦  «         d S t          | t:          ¦  «        r�‰j        �R‰j                             | ¦  «        }‰                     d t)          |¦  «        › d!| j         › d"| j!        › d	�¦  «         d S ‰                     d#| j         › d"| j!        › d	�¦  «         d S tE          tG          d$| f¦  «        ¦  «        ‚)%Nz
<page id="r~  z
" rotate="r&  z	<layout>
z
</layout>
z</page>
z<line linewidth="rC  z<rect linewidth="z<curve linewidth="z" pts="z"/>
z<figure name="z
</figure>
z<textline bbox="z</textline>
rk   z wmode="vertical"r}  ú"z>
z</textbox>
z<text font="z" colourspace="z" ncolour="z" size="z.3fr*  z</text>
z<text>z<image src="z	" width="rB  z<image width="Ú	Unhandled)$rP   r   rý   r/   rV   Úrotaterñ   rd  r   r–   r   r   Úget_ptsr   rU   r   r   r   re  r   r0   rR  r¯   r°   r˜   rE  rô   rø   r   r   ré   rù   r>  r?  ÚAssertionErrorrN   )	rc   r'  rú   rg  ÚwmoderU   rû   rA   r_  s	         €€€rB   rû   z+XMLConverter.receive_layout.<locals>.renderë  sš  ø€ å˜$¥Ñ'Ô'ð U?ð1 ¤ð 1ð 1Ý% d¤iÑ0Ô0ð1ð 1à#œ{ð1ð 1ð 1ð ð
 —
’
˜1‘”�Ø!ð "ð "�EØ�F˜5‘M”M�M�MØ”;Ð*Ø—J’J˜|Ñ,Ô,Ð,Ø!%¤ð *ð *˜Ø"˜
 5Ñ)Ô)Ð)Ð)Ø—J’J˜}Ñ-Ô-Ð-Ø—
’
˜;Ñ'Ô'Ð'Ð'Ð'Ý˜D¥&Ñ)Ô)ð F?ð9Ø"&¤.ð9ð 9å% d¤iÑ0Ô0ð9ð 9ð 9ð ð
 —
’
˜1‘”���Ý˜D¥&Ñ)Ô)ð ??ð9Ø"&¤.ð9ð 9å% d¤iÑ0Ô0ð9ð 9ð 9ð ð
 —
’
˜1‘”���Ý˜D¥'Ñ*Ô*ð 8?ð2Ø"&¤.ð2ð 2å% d¤iÑ0Ô0ð2ð 2ð !ŸLšL™NœNð2ð 2ð 2ð ð —
’
˜1‘”���Ý˜D¥(Ñ+Ô+ð 0?ØQ T¤YÐQÐQ½ÀÄÑ8KÔ8KÐQÐQÐQ�Ø—
’
˜1‘”�Ø!ð "ð "�EØ�F˜5‘M”M�M�MØ—
’
˜=Ñ)Ô)Ð)Ð)Ð)Ý˜D¥*Ñ-Ô-ð *?Ø—
’
ÐG­h°t´yÑ.AÔ.AÐGÐGÐGÑHÔHÐHØ!ð "ð "�EØ�F˜5‘M”M�M�MØ—
’
˜?Ñ+Ô+Ð+Ð+Ð+Ý˜D¥)Ñ,Ô,ð %?Ø�Ý˜dÕ$5Ñ6Ô6ð 0Ø/�EØX D¤JÐXÐX½ÀÄÑ8KÔ8KÐXÐXÈeÐXÐXÐX�Ø—
’
˜1‘”�Ø!ð "ð "�EØ�F˜5‘M”M�M�MØ—
’
˜>Ñ*Ô*Ð*Ð*Ð*Ý˜D¥&Ñ)Ô)ð ?ð/Ý  ¤Ñ/Ô/ð/ð /å% d¤iÑ0Ô0ð/ð /ð %)¤H¤Mð/ð /ð !%Ô 1Ô 8ð	/ð /ð
 "œYÐ.ð/ð /ð /ð ð —
’
˜1‘”�Ø—’ §¢¡¤Ñ0Ô0Ð0Ø—
’
˜;Ñ'Ô'Ð'Ð'Ð'Ý˜D¥&Ñ)Ô)ð ?Ø—
’
Ð> D§M¢M¡O¤OÐ>Ð>Ð>Ñ?Ô?Ð?Ð?Ð?Ý˜D¥'Ñ*Ô*ð ?ØÔ#Ð/ØÔ+×8Ò8¸Ñ>Ô>�DØ—J’Jð7Ý # D¡	¤	ð7ð 7à"&¤*ð7ð 7ð $(¤;ð7ð 7ð 7ñô ð ð ð ð —J’JØR¨¬ÐRÐR¸t¼{ÐRÐRÐRñô ð ð ð õ %¥S¨+°tÐ)<Ñ%=Ô%=Ñ>Ô>Ð>rC   ©r   rh  s   ` @@rB   rS   zXMLConverter.receive_layoutß  sŠ   øøø€ ð		-�Vð 		-¨ð 		-ð 		-ð 		-ð 		-ð 		-ð 		-ð 		-ðW	?�ð W	? Dð W	?ð W	?ð W	?ð W	?ð W	?ð W	?ð W	?ð W	?ðr 	ˆˆv‰ŒˆˆˆrC   c                 ó.   — |                       ¦   «          d S r=   rj  rÑ   s    rB   rk  zXMLConverter.closeF  rl  rC   )rÖ   r7   NNFrm  )rÃ   rÄ   rÅ   r‘   Úcompilery  r%   r(   rN   rÇ   r   r   rÈ   r>   rñ   r!  r/  rô   r   rS   rk  rm   rC   rB   rp  rp  ¬  sP  € € € € € ØˆbŒjÐ8Ñ9Ô9€Gð ØØ$(Ø*.Ø"ðð à#ðð ðð ð	ð
 ðð ˜T‘/ðð ! 4Ñ'ðð ðð 
ðð ð ð ð61˜#ð 1 $ð 1ð 1ð 1ð 1ð ð  ð  ð  ð!ð !ð !ð !ð˜sð  tð ð ð ð ð
e Vð e°ð eð eð eð eðNð ð ð ð ð rC   rp  c                   óÂ   — e Zd ZdZ ej        d¦  «        Z	 	 	 	 ddeded	e	d
e
dedz  defd„Zdede	fd„Zde	ddfd„Zdd„Zdd„Zde	ddfd„Zdd„Zdeddfd„Zdd„ZdS )ÚHOCRConverterzKExtract an hOCR representation from explicit text information within a PDF.z[\x00-\x08\x0b-\x0c\x0e-\x1f]Úutf8r7   NFr8   r×   rØ   r9   r:   rq  c                 óŠ   — t                                | |||||¬¦  «         || _        d| _        |                      ¦   «          d S )Nrë   F)rÕ   r>   rq  Úwithin_charsr!  )rA   r8   r×   rØ   r9   r:   rq  s          rB   r>   zHOCRConverter.__init__]  s]   € õ 	×ÒØØØØØØð 	ñ 	
ô 	
ð 	
ð )ˆÔØ!ˆÔØ×ÒÑÔÐÐÐrC   rV   r;   c                 óÜ   — |\  }}}}t          |¦  «        }t          | j        d         |z
  ¦  «        }t          |¦  «        }t          | j        d         |z
  ¦  «        }	d|› d|› d|› d|	› �S )Nr†   zbbox r6  )rÇ   Ú	page_bbox)
rA   rV   Úin_x0Úin_y0Úin_x1Úin_y1Úout_x0Úout_y0Úout_x1Úout_y1s
             rB   Ú	bbox_reprzHOCRConverter.bbox_reprr  s~   € Ø'+Ñ$ˆ��u˜eå�U‘”ˆÝ�T”^ AÔ&¨Ñ.Ñ/Ô/ˆÝ�U‘”ˆÝ�T”^ AÔ&¨Ñ.Ñ/Ô/ˆØ:�vÐ:Ð: Ð:Ð:¨Ð:Ð:°&Ð:Ð:Ð:rC   r·   c                 ó   — | j         rI|                     | j         ¦  «        }t          t          | j        ¦  «                             |¦  «         d S t          t          | j        ¦  «                             |¦  «         d S r=   )rØ   rò   r	   r   r×   rñ   r   )rA   r·   Úencoded_texts      rB   rñ   zHOCRConverter.write{  sk   € ØŒ:ð 	1ØŸ;š; t¤zÑ2Ô2ˆLÝ•˜4œ:Ñ&Ô&×,Ò,¨\Ñ:Ô:Ð:Ð:Ð:å•˜œÑ$Ô$×*Ò*¨4Ñ0Ô0Ð0Ð0Ð0rC   c                 ó¢  — | j         r|                      d| j         › d�¦  «         n|                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d	¦  «         |                      d
¦  «         d S )NzL<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en' charset='ú'>
zD<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
z<head>
z<title></title>
zE<meta http-equiv='Content-Type' content='text/html;charset=utf-8' />
zA<meta name='ocr-system' content='pdfminer.six HOCR Converter' />
zR  <meta name='ocr-capabilities' content='ocr_page ocr_block ocr_line ocrx_word'/>
z</head>
z<body>
ru  rÑ   s    rB   r!  zHOCRConverter.write_header‚  s  € ØŒ:ð 	Ø�JŠJðEØ48´JðEð Eð Eñô ð ð ð
 �JŠJØWñô ð ð 	�
Š
�:ÑÔÐØ�
Š
Ð&Ñ'Ô'Ð'Ø�
Š
ØTñ	
ô 	
ð 	
ð 	�
Š
ØPñ	
ô 	
ð 	
ð 	�
Š
ðCñ	
ô 	
ð 	
ð 	�
Š
�;ÑÔÐØ�
Š
�:ÑÔÐÐÐrC   c                 óZ   — |                       d¦  «         |                       d¦  «         d S )Nz0<!-- comment in the following line to debug -->
zD<!--script src='https://unpkg.com/hocrjs'></script--></body></html>
rZ  rÑ   s    rB   r/  zHOCRConverter.write_footer›  s8   € Ø�
Š
ÐFÑGÔGÐGØ�
Š
ØSñ	
ô 	
ð 	
ð 	
ð 	
rC   c                 ót   — | j         r| j                             d|¦  «        }|                      |¦  «         d S rx  )rq  ry  rz  rñ   ró   s     rB   rô   zHOCRConverter.write_text¡  s<   € ØÔð 	.Ø”<×#Ò# B¨Ñ-Ô-ˆDØ�
Š
�4ÑÔÐÐÐrC   c                 óV  — t          | j        ¦  «        dk    r‰d}d| j        v rd}d| j        v r|dz  }|                      d| j        › d| j        › d	|› d
|                      | j        ¦  «        › d| j        › d| j        › d| j                             ¦   «         › d�¦  «         d| _        d S )Nr   rk   ÚItaliczfont-style: italic; ÚBoldzfont-weight: bold; z<span style='font:"z"; font-size:z; z' class='ocrx_word' title='z	; x_font z
; x_fsize ú'>rP  F)	rO   Úworking_textÚworking_fontrñ   Úworking_sizer˜  Úworking_bboxÚstripr�  )rA   Úbold_and_italic_styless     rB   Ú
write_wordzHOCRConverter.write_word¦  s  € ÝˆtÔ Ñ!Ô! AÒ%Ð%Ø%'Ð"Ø˜4Ô,Ð,Ð,Ø)?Ð&Ø˜Ô*Ð*Ð*Ø&Ð*?Ñ?Ð&Ø�JŠJð6 tÔ'8ð 6ð 6Ø!Ô.ð6ð 6à)ð6ð 6ð Ÿ.š.¨Ô):Ñ;Ô;ð	6ð 6ð
 Ô+ð6ð 6ð  Ô,ð6ð 6ð Ô$×*Ò*Ñ,Ô,ð6ð 6ð 6ñ	ô 	ð 	ð "ˆÔÐÐrC   r¿   c                 ó@   ‡ ‡— dt           dd fˆˆ fd„Š ‰|¦  «         d S )Nrc   r;   c                 óz  •— ‰j         r)t          | t          ¦  «        r‰                     ¦   «          t          | t          ¦  «        rl| j        ‰_        ‰                     d| j        › d‰ 	                    | j        ¦  «        › d�¦  «         | D ]} ‰|¦  «         Œ‰                     d¦  «         d S t          | t          ¦  «        rX‰                     d‰ 	                    | j        ¦  «        › d�¦  «         | D ]} ‰|¦  «         Œ‰                     d¦  «         d S t          | t          ¦  «        r`‰                     d| j        › d‰ 	                    | j        ¦  «        › d�¦  «         | D ]} ‰|¦  «         Œ‰                     d¦  «         d S t          | t          ¦  «        �r�‰j         sFd	‰_         |                      ¦   «         ‰_        | j        ‰_        | j        ‰_        | j        ‰_        d S t+          |                      ¦   «                              ¦   «         ¦  «        d
k    r=‰                     ¦   «          ‰                     |                      ¦   «         ¦  «         d S ‰j        d         | j        d         k    s ‰j        | j        k    s‰j        | j        k    r8‰                     ¦   «          | j        ‰_        | j        ‰_        | j        ‰_        ‰xj        |                      ¦   «         z  c_        ‰j        d
         ‰j        d         | j        d         ‰j        d         f‰_        d S d S )Nz<div class='ocr_page' id='z	' title='rœ  r,  z<span class='ocr_line' title='r¢  rI  z<div class='ocr_block' id='Tr   r7   r€   r†   )r�  rP   r   r©  r   rV   r�  rñ   rý   r˜  r   r   re  r   rø   r£  r¦  rR  r¤  rE  r¥  rO   r§  )rc   rú   Ú
child_linerû   rA   s      €€rB   rû   z,HOCRConverter.receive_layout.<locals>.renderº  s]  ø€ ØÔ ð "¥Z°µfÑ%=Ô%=ð "Ø—’Ñ!Ô!Ð!Ý˜$¥Ñ'Ô'ð 6Ø!%¤�”Ø—
’
ð>àœ;ð>ð >ð #Ÿnšn¨T¬YÑ7Ô7ð>ð >ð >ñô ð ð "ð "ð "�EØ�F˜5‘M”M�M�MØ—
’
˜:Ñ&Ô&Ð&Ð&Ð&Ý˜D¥*Ñ-Ô-ð +Ø—
’
ØR°T·^²^ÀDÄIÑ5NÔ5NÐRÐRÐRñô ð ð #'ð 'ð '�JØ�F˜:Ñ&Ô&Ð&Ð&Ø—
’
˜;Ñ'Ô'Ð'Ð'Ð'Ý˜D¥)Ñ,Ô,ð $Ø—
’
ð>àœ:ð>ð >ð #Ÿnšn¨T¬YÑ7Ô7ð>ð >ð >ñô ð ð "ð "ð "�EØ�F˜5‘M”M�M�MØ—
’
˜:Ñ&Ô&Ð&Ð&Ð&Ý˜D¥&Ñ)Ô)ñ ØÔ(ð Ø(,�DÔ%Ø(,¯ª©¬�DÔ%Ø(,¬	�DÔ%Ø(,¬�DÔ%Ø(,¬	�DÔ%Ð%Ð%Ý˜Ÿš™œ×.Ò.Ñ0Ô0Ñ1Ô1°QÒ6Ð6Ø—O’OÑ%Ô%Ð%Ø—J’J˜tŸ}š}™œÑ/Ô/Ð/Ð/Ð/ð Ô)¨!Ô,°´	¸!´Ò<Ð<ØÔ,°´Ò=Ð=ØÔ,°´	Ò9Ð9àŸšÑ)Ô)Ð)Ø,0¬I˜Ô)Ø,0¬M˜Ô)Ø,0¬I˜Ô)ØÐ%Ô%¨¯ª©¬Ñ8Ð%Ô%àÔ)¨!Ô,ØÔ)¨!Ô,Øœ	 !œØÔ)¨!Ô,ð	)�DÔ%Ð%Ð%ð+ð rC   r†  rþ   s   ` @rB   rS   zHOCRConverter.receive_layout¹  sI   øø€ ð9	�ð 9	 Dð 9	ð 9	ð 9	ð 9	ð 9	ð 9	ð 9	ðv 	ˆˆv‰ŒˆˆˆrC   c                 ó.   — |                       ¦   «          d S r=   rj  rÑ   s    rB   rk  zHOCRConverter.close÷  rl  rC   )r‹  r7   NFrm  )rÃ   rÄ   rÅ   Ú__doc__r‘   rˆ  ry  r%   r(   rN   rÇ   r   rÈ   r>   r,   r˜  rñ   r!  r/  rô   r©  r   rS   rk  rm   rC   rB   rŠ  rŠ  J  sl  € € € € € ØUÐUð  ˆbŒjÐ9Ñ:Ô:€Gð ØØ$(Ø"ðð à#ðð ðð ð	ð
 ðð ˜T‘/ðð ðð ð ð ð*;˜dð ; sð ;ð ;ð ;ð ;ð1˜#ð 1 $ð 1ð 1ð 1ð 1ðð ð ð ð2
ð 
ð 
ð 
ð˜sð  tð ð ð ð ð
"ð "ð "ð "ð&< Vð <°ð <ð <ð <ð <ð|ð ð ð ð ð rC   rŠ  )Krá   Úloggingr‘   Úcollections.abcr   Útypingr   r   r   r   r   r	   Úpdfminerr
   Úpdfminer.imager   Úpdfminer.layoutr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Úpdfminer.pdfcolorr   Úpdfminer.pdfdevicer    Úpdfminer.pdfexceptionsr!   Úpdfminer.pdffontr"   r#   Úpdfminer.pdfinterpr$   r%   Úpdfminer.pdfpager&   Úpdfminer.pdftypesr'   Úpdfminer.utilsr(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   Ú	getLoggerrÃ   r½   r4   rÊ   rÓ   rÕ   rç   r  rp  rŠ  rm   rC   rB   ú<module>r¾     s%  ðØ 	€	€	€	Ø €€€Ø 	€	€	€	Ø $Ð $Ð $Ð $Ð $Ð $ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð* ,Ð +Ð +Ð +Ð +Ð +Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ $Ð $Ð $Ð $Ð $Ð $Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð €gÔ˜Ñ!Ô!€ðRð Rð Rð Rð R˜ñ Rô Rð Rðjð ð ð ð Ð)ñ ô ð ð& 
ˆ�˜6 8¨UÑ	3Ô	3€ðð ð ð ð Ð$ g¨f¤oñ ô ð ð<6ð 6ð 6ð 6ð 6�L Ô'ñ 6ô 6ð 6ðrjð jð jð jð j�L Ô'ñ jô jð jðZ	[ð [ð [ð [ð [�< Ô&ñ [ô [ð [ð|nð nð nð nð n�L Ô'ñ nô nð nð nð nrC   