Ë
    ¡ëi.d ã                   ó6  — d Z dZddlZddlZddl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mZmZmZ ddlmZmZmZmZ dd	lmZ dd
lmZ ddlmZ  G d„ de «      Z!dZ"dZ#dZ$dZ%dZ&dZ' e(d¬«      Z)d„ Z*d­d„Z+d„ Z,e,Z- G d„ d«      Z. G d„ d«      Z/ G d„ de/«      Z0 G d„ d e/«      Z1d!Z2d"Z3d#Z4 G d$„ d%e/«      Z5d&„ Z6ddl7Z7 e7jp                  d'«      Z9[7d(„ Z:d)„ Z; G d*„ d+e/«      Z< e=d,«       e=d-«      fd.„Z> G d/„ d0e/«      Z? G d1„ d2«      Z@d3„ ZA G d4„ d5e?«      ZB G d6„ d7eB«      ZC G d8„ d9«      ZD eD«       ZE G d:„ d;«      ZF eF«       ZG G d<„ d=e/«      ZHd®d>„ZId?ZJ G d@„ dAe/«      ZK G dB„ dCeK«      ZL G dD„ dEe/«      ZM G dF„ dGe/«      ZN G dH„ dIe/«      ZO G dJ„ dKe/«      ZP G dL„ dMe/«      ZQ G dN„ dOe/«      ZR G dP„ dQeH«      ZS G dR„ dSe/«      ZT G dT„ dUeT«      ZU G dV„ dWeT«      ZV G dX„ dYe «      ZW G dZ„ d[eT«      ZX G d\„ d]eT«      ZYd^„ ZZd_Z[ G d`„ dae/«      Z\ G db„ dce/«      Z] G dd„ dee/«      Z^d®df„Z_dgZ` G dh„ die/«      Za G dj„ dke/«      Zb G dl„ dmeb«      Zc G dn„ doeb«      Zd G dp„ dqeb«      Ze G dr„ dsee«      Zfdt„ Zg G du„ dve/«      Zh G dw„ dxe/«      Zi G dy„ dze/«      Zj G d{„ d|e/«      Zk G d}„ d~e/«      Zl G d„ d€el«      Zm G d�„ d‚e/«      Zn G dƒ„ d„en«      Zo G d…„ d†e/«      Zp G d‡„ dˆep«      Zq G d‰„ dŠe/«      Zr G d‹„ dŒe/«      Zs G d�„ dŽe/«      Zt G d�„ d�et«      Zu G d‘„ d’e/«      Zv G d“„ d”e/«      Zwd•d–d—d˜œZx G d™„ dše/«      Zy G d›„ dœ«      Zz G d�„ dže/«      Z{ G dŸ„ d e{«      Z| G d¡„ d¢e{«      Z} G d£„ d¤e/«      Z~ G d¥„ d¦e~«      Z G d§„ d¨e~«      Z€ G d©„ dªe~«      Z�e‚d«k(  r	 eƒd¬«       yy)¯z4.2.0a_  
The module pdfdoc.py handles the 'outer structure' of PDF documents, ensuring that
all objects are properly cross-referenced and indexed to the nearest byte.  The
'inner structure' - the page descriptions - are presumed to be generated before
each page is saved.
pdfgen.py calls this and provides a 'canvas' object to handle page marking operators.
piddlePDF calls pdfgen and offers a high-level interface.

The classes within this generally mirror structures in the PDF file
and are not part of any public interface.  Instead, canvas and font
classes are made available elsewhere for users to manipulate.
é    N)ÚOrderedDict)Úpdfutils)Ú	rl_config)
Úopen_for_readÚmakeFileNameÚisSeqÚisBytesÚ	isUnicodeÚ	_digesterÚisStrÚbytestrÚannotateExceptionÚ	TimeStamp)Ú	escapePDFÚfp_strÚasciiBase85EncodeÚasciiBase85Decode)Ú
pdfmetrics)Úmd5)Ústderrc                   ó   — e Zd Zy)ÚPDFErrorN©Ú__name__Ú
__module__Ú__qualname__© ó    úX/var/www/html/chat/reports/venv/lib/python3.12/site-packages/reportlab/pdfbase/pdfdoc.pyr   r      ó   „ Ør   r   Ú__InternalName__Ú__RefOnly__Ú__Comment__Ú
BasicFontsÚPages)é   é   )r&   é   )Útransparencyc                 óH   — t        | t        «      r| j                  d«      S | S )NÚ	extpdfdoc)Ú
isinstanceÚstrÚencode)Úxs    r   Ú	pdfdocEncr0   5   s   € Ü$.¨q´Ô$5ˆ1�8‰8�KÓ Ð<¸1Ð<r   c                 ó  — t        | t        «      r�|s0t        | t        «      r |j	                  | «      j                  |«      S | j                  |«      }t        j                  s;t        j                  r+t        | t        «      rt        d| j                  z  «      |z   }|S t        | «      t        t        fv rt        t        | «      «      S t        | «      r| S t!        | «      rt        | «      S t        t#        | «      «      S )z„Indirection step for formatting.
       Ensures that document parameters alter behaviour
       of formatting for all elements.
    z%% %s
)r,   Ú	PDFObjectÚhasattrr"   Ú	ReferenceÚformatr   Ú	invariantÚpdfCommentsr#   r0   ÚtypeÚfloatÚintr   r	   r
   r-   )ÚelementÚdocumentÚtoplevelÚfs       r   r5   r5   8   sÐ   € ô
 �'œ)Ô$ÙœG G¬[Ô9ð ×%Ñ% gÓ.×5Ñ5°hÓ?Ð?à—‘˜xÓ(ˆAÜ×&Ò&¬9×+@Ò+@ÄWÈWÔVaÔEbÜ˜i¨'×*=Ñ*=Ñ=Ó>¸qÑ@�ØˆHÜ	ˆg‹œ5¤#˜,Ñ	&ô œ ›Ó)Ð)Ü	�Ô	ØˆÜ	�7Ô	Ü˜Ó!Ð!äœ˜W›Ó&Ð&r   c                 ó   — d| z  S )Nz
FormXob.%sr   )Úexternalnames    r   ÚxObjectNamerA   R   s   € Ø˜,Ñ&Ð&r   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚNoEncryptionc                 ó   — |S )zencode a string, stream, textr   )ÚselfÚts     r   r.   zNoEncryption.encodeZ   s   € àˆr   c                  ó   — y ©Nr   ©rE   r<   s     r   ÚpreparezNoEncryption.prepare]   ó   € àr   c                  ó   — y rH   r   )rE   ÚobjnumÚversions      r   ÚregisterzNoEncryption.register`   rK   r   c                  ó   — y rH   r   ©rE   s    r   ÚinfozNoEncryption.infoc   s   € àr   N)r   r   r   r.   rJ   rO   rR   r   r   r   rC   rC   Y   s   „ òòòór   rC   c                   ó   — e Zd Zy)r2   Nr   r   r   r   r2   r2   g   r    r   r2   c                   ó   — e Zd ZdZ e«       Zy)ÚDummyDocz'used to bypass encryption when requiredN)r   r   r   Ú__doc__rC   Úencryptr   r   r   rU   rU   j   s   „ Ù-Ù‹n�Gr   rU   c                   ó  — e Zd ZdZ e«       Zdej                  ej                  de	dfd„Z
d„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d$d „Z'd!„ Z(d"„ Z)d%d#„Z*y)&ÚPDFDocumentNr   c                 ój  — d | _         d| _        d| _        d | _        d| _        |€t
        j                  | _        n|| _        | j                  |«       || _        t        d¬«      x}| _
        |j                  d«       t        | j                  «      | _        | j                  j                  }t        |«      }|j                  t!        |«      «       i | _        i | _        i | _        i | _        t+        «       x}x| _        | _        t1        «       x}	| _        |	|_        |r|nt
        j4                  }|rt7        |«      |_        |r
t;        «       n	t=        «       x| _        x| _         |_         tC        «       | _"        i | _#        tI        i «      }
d|
_%        | jM                  |
tN        «       g | _(        y )Nr   r&   F)Úusedforsecuritys   a reportlab documentzThe standard fonts dictionary))Ú_IDÚobjectcounterÚshadingCounterÚinObjectÚpageCounterr   r6   ÚsetCompressionÚ_pdfVersionr   Ú	signatureÚupdater   Ú
_timeStamprF   Úasciir   ÚidToObjectNumberAndVersionÚ
idToObjectÚ
idToOffsetÚ
numberToIdÚ
PDFCatalogÚCatalogÚ_catalogÚPDFPagesr%   ÚdocumentLangÚ	PDFStringÚLangÚPDFOutlines0ÚPDFOutlinesÚoutlineÚOutlinesÚPDFInforR   ÚfontMappingÚPDFDictionaryr#   r4   r$   ÚdelayedFonts)rE   ÚdummyoutlineÚcompressionr6   ÚfilenameÚ
pdfVersionÚlangÚsigÚcatÚpagesÚDDs              r   Ú__init__zPDFDocument.__init__s   so  € ð ˆŒØˆÔØˆÔØˆŒØˆÔð ÐÜ&×0Ñ0ˆD�Nà&ˆDŒNØ×Ñ˜KÔ(Ø%ˆÔä"°5Ô9Ð9ˆˆdŒnØ�
‰
Ð*Ô+Ü# D§N¡NÓ3ˆŒØ�o‰o×ÑˆÜ�C‹jˆØ�
‰
”7˜3“<Ô à*,ˆÔ'àˆŒàˆŒàˆŒÜ-7«\Ð9ˆÐ9ˆdŒl˜Tœ]Ü%›ZÐ'ˆ�”
ØˆŒ	Ù‰t¤×!7Ñ!7ˆÙÜ  “ˆCŒHÙHT´l´nÔZeÓZgÐgˆŒÐg�t”} s¤|Ü“IˆŒ	ð ˆÔä˜2ÓˆØ8ˆŒØ�‰�rœ:Ô&ØˆÕr   c                 ó   — || _         y rH   ©r{   ©rE   Úonoffs     r   ra   zPDFDocument.setCompression¨   s
   € à ˆÕr   c                 óV   — |D ]$  }t        | j                  t        |   «      | _        Œ& y)zREnsure that the pdf version is greater than or equal to that specified by the keysN)Úmaxrb   ÚPDF_SUPPORT_VERSION)rE   ÚkeysÚks      r   ÚensureMinPdfVersionzPDFDocument.ensureMinPdfVersion¬   s.   € àò 	MˆAÜ" 4×#3Ñ#3Ô5HÈÑ5KÓLˆDÕñ	Mr   c                 óf   — | j                   ry| j                  j                  t        |«      «       y)z add information to the signatureN)r\   rc   rd   r   )rE   Úthings     r   ÚupdateSignaturezPDFDocument.updateSignature±   s!   € à�8Š8�VØ�‰×Ñœg e›nÕ-r   c                 óê   — | j                   r| j                   S | j                  j                  «       }t        «       }t	        |d¬«      j                  |«      }d|z   |z   dz   | _         | j                   S )z<A unique fingerprint for the file (unless in invariant mode)Úraw)Úencs   
[s<   ]
% ReportLab generated PDF document -- digest (opensource)
)r\   rc   ÚdigestrU   ÚPDFTextr5   )rE   r”   ÚdocÚIDss       r   ÚIDzPDFDocument.ID¶   s`   € à�8Š8Ø—8‘8ˆOØ—‘×&Ñ&Ó(ˆÜ‹jˆÜ�f Ô'×.Ñ.¨sÓ3ˆØ˜3‘J˜s‘NÐ#dÑdˆŒØ�x‰xˆr   c                 óô  — t        | dd«      r"t        d| j                  j                  z  «      ‚d| _        t        t        |dd «      d«      rbd}|}t        |dd «      }t        |t        «      rd	|z  }n/t        |«      s$d
|j                  j                  t        |«      fz  }t        |«      }n<t        |«      rd}t        |«      }t        |d«      }nt        dt        |«      z  «      ‚| j                  |«      }t        |«      r|j!                  d«      }|j#                  |«       |r1|j%                  «        dd l}|j(                  dk(  rddlm}  ||«       t        |dd «      rt/        d|›�«       y y )NÚ_savedToFileFz)class %s instances can only be saved onceTÚwriteÚ__call__r   Únamez
<os fd:%d>z<%s@0X%8.8X>r&   Úwbz#Cannot use %s as a filename or fileÚlatin1Úmac)ÚmarkfilenameÚ
_verbosityzsaved )ÚgetattrÚRuntimeErrorÚ	__class__r   rš   r3   r,   r:   r   Úidr   ÚopenÚ	TypeErrorÚreprÚ
GetPDFDatar
   r.   r›   ÚcloseÚosr�   Úreportlab.lib.utilsr¡   Úprint)rE   r|   ÚcanvasÚmyfiler>   Údatar¬   r¡   s           r   Ú
SaveToFilezPDFDocument.SaveToFileÀ   sA  € Ü�4˜ uÔ-ÜÐJÈTÏ^É^×MdÑMdÑdÓeÐeØ ˆÔÜ”7˜8 W¨TÓ2°:Ô>ØˆFØˆAÜ˜q ¨Ó-ˆHÜ˜(¤3Ô'Ø'¨Ñ1‘Ü˜8”_Ø)¨Q¯[©[×-AÑ-AÄ"ÀQÃ%Ð,HÑH�Ü# HÓ-‰HÜ�8Œ_ØˆFÜ# HÓ-ˆHÜ�X˜tÓ$‰AäÐAÄDÈÃNÑRÓSÐSà�‰˜vÓ&ˆÜ�TŒ?Ø—;‘;˜xÓ(ˆDØ	�‰�ŒÙØ�G‰GŒIÛØ�w‰w˜Š~Ý<Ù˜XÔ&Ü�6˜, tÔ,­eÁ(Ð4LÕ.MÐ,r   c                 óÞ  — | j                   D ]  }|j                  | «       Œ | j                  | j                  _        | j                  j	                  | j
                  «       | j                  | j                  «       | j                  | j                  «       | j                  j                  | |«       | j                  j                  dk  rd | j                  _        | j                  «       S ©Nr   )ry   Ú
addObjectsr6   rR   r”   rc   r4   rl   ru   rJ   Úreadyr5   )rE   r¯   Úfnts      r   rª   zPDFDocument.GetPDFDataà   s«   € à×$Ñ$ò 	!ˆCØ�N‰N˜4Õ ð	!ð #Ÿn™nˆ�	‰	ÔØ�	‰	×Ñ˜Ÿ™Ô(ð 	�‰�t—|‘|Ô$Ø�‰�t—y‘yÔ!Ø�‰×Ñ˜d FÔ+Ø�=‰=×Ñ˜qÒ Ø$(ˆD�L‰LÔ!Ø�{‰{‹}Ðr   c                 óz   — | j                   �(| j                   dk(  ryt        d| j                   z  «      ‚d| _         y)zXspecify the current object as a page (enables reference binding and other page features)NÚpagez%can't go in page already in object %s)r_   Ú
ValueErrorrQ   s    r   ÚinPagezPDFDocument.inPageð   s6   € à�=‰=Ð$Ø�}‰}˜fÒ$ fÜÐDÀtÇ}Á}ÑTÓUÐUØˆ�r   c                 ó   — d| _         y)zBspecify that we are in a form xobject (disable page features, etc)ÚformN)r_   rQ   s    r   ÚinFormzPDFDocument.inForm÷   s   € ð
 ˆ�r   c                 ó  — | j                   }||v r||   S 	 t        j                  |«      }|j                  rt	        dt        |«      z  «      ‚|j                  | «       ||   S # t        $ r t	        dt        |«      z  «      ‚w xY w)Nz1getInternalFontName(%s) called for a dynamic fontzFont %s not known!)rw   r   ÚgetFontÚ_dynamicFontr   r©   rµ   ÚKeyError)rE   Ú
psfontnameÚfmÚfontObjs       r   ÚgetInternalFontNamezPDFDocument.getInternalFontNameÿ   s•   € Ø×ÑˆØ˜ÑØ�j‘>Ð!ðHä$×,Ñ,¨ZÓ8�Ø×'Ò'Ü"Ð#VÔY]Ð^hÓYiÑ#iÓjÐjØ×"Ñ" 4Ô(Ø˜*‘~Ð%øÜò HÜÐ3´d¸:Ó6FÑFÓGÐGðHús   —AA% Á%!Bc                 ó2   — dt        | j                  «      z   S )NÚPage)r©   r`   rQ   s    r   ÚthisPageNamezPDFDocument.thisPageName  s   € Ø”d˜4×+Ñ+Ó,Ñ,Ð,r   c                 ó4   — t        | j                  «       «      S rH   )ÚPDFObjectReferencerÉ   rQ   s    r   ÚthisPageRefzPDFDocument.thisPageRef  s   € Ü! $×"3Ñ"3Ó"5Ó6Ð6r   c                 ó¶   — | j                  «       }| j                  ||«       | j                  j                  |«       | xj                  dz  c_        d | _        y )Nr&   )rÉ   r4   r%   ÚaddPager`   r_   )rE   r¹   r�   s      r   rÎ   zPDFDocument.addPage  sH   € Ø× Ñ Ó"ˆØ�‰�t˜TÔ"Ø�
‰
×Ñ˜4Ô Ø×Ò˜AÑÕØˆ�r   c                 ó†   — | j                   dk7  r| j                  «        | j                  |t        |«      «       d| _         y)zadd a Form XObject.r½   N)r_   r¾   r4   rA   )rE   r�   r½   s      r   ÚaddFormzPDFDocument.addForm  s3   € ð �=‰=˜FÒ"Ø�K‰KŒMØ�‰�tœ[¨Ó.Ô/Øˆ�r   c                 ó   — d|z  S )NzAnnot.%sr   )rE   r@   s     r   ÚannotationNamezPDFDocument.annotationName#  s   € Ø˜,Ñ&Ð&r   c                 óF   — | j                  || j                  |«      «       y rH   )r4   rÒ   )rE   r�   Ú
annotations      r   ÚaddAnnotationzPDFDocument.addAnnotation&  s   € Ø�‰�z 4×#6Ñ#6°tÓ#<Õ=r   c                 ó:   — | j                  |«      }t        |«      S rH   )rÒ   rË   ©rE   r�   Úinternalnames      r   ÚrefAnnotationzPDFDocument.refAnnotation)  s   € Ø×*Ñ*¨4Ó0ˆÜ! ,Ó/Ð/r   c                 ór   — d| j                   z  }| j                  ||«       | xj                   dz  c_         |S )NzSh%dr&   )r^   r4   )rE   Úshadingr�   s      r   Ú
addShadingzPDFDocument.addShading-  s6   € Ø˜×,Ñ,Ñ,ˆØ	�‰˜ Ô	&Ø	×	Ò	 Ñ	!Õ	Øˆr   c                 óv  — |j                   }|sá|j                  dk(  r!|j                  dk(  r|j                  dk(  rd}n�|j                  dk(  r!|j                  dk(  r|j                  dk(  rd}n_|j                  dk(  r!|j                  dk(  r|j                  dk(  rd}n/|j                  dk(  r |j                  dk(  r|j                  dk(  rd}|st        d|z  «      ‚|j                  |¬«      }t        |«      dd  }|| j                  vr+t        |«      j                  «       }| j                  ||«       ||fS )	Nr   ÚBLACKÚCYANÚMAGENTAÚYELLOWz&CMYK colour %r used without a spotName)ÚspotNamer&   )râ   ÚcyanÚmagentaÚyellowÚblackrº   ÚcloneÚPDFNamerh   ÚPDFSeparationCMYKColorÚvaluer4   )rE   ÚcmykÚsnamer�   Úseps        r   ÚaddColorzPDFDocument.addColor3  s	  € Ø—‘ˆÙØ�y‰y˜!Š| §¡¨a¢°D·K±KÀ²NØ‘Ø—‘˜Q’ 4§<¡<°¢?°t·{±{ÀA²~Ø‘Ø—‘˜A’ $§*¡*¨a¢-°D·K±KÀ²NØ!‘Ø—‘˜A’ $§,¡,°¢/°d·j±jÀ!²mØ �ÙÜ Ð!IÈDÑ!PÓQÐQà—z‘z¨U�zÓ3�Ü�u‹~˜a˜bÐ!ˆØ�t—‘Ñ&Ü(¨Ó.×4Ñ4Ó6ˆCØ�N‰N˜3˜tÔ$Ø�EˆzÐr   c                 óN   — |€d| j                   _        y|| j                   _        y)úembeds in PDF fileNú(anonymous))rR   Útitle)rE   rò   s     r   ÚsetTitlezPDFDocument.setTitleH  s   € àˆ=Ø+ˆD�I‰I�Oà#ˆD�I‰I�Or   c                 óN   — |€d| j                   _        y|| j                   _        y)zembedded in PDF fileNrñ   )rR   Úauthor)rE   rõ   s     r   Ú	setAuthorzPDFDocument.setAuthorO  s!   € ð ˆ>Ø,ˆD�I‰IÕà%ˆD�I‰IÕr   c                 óN   — |€d| j                   _        y|| j                   _        y©rð   Nz(unspecified))rR   Úsubject)rE   rù   s     r   Ú
setSubjectzPDFDocument.setSubjectW  s!   € ð ˆ?Ø /ˆD�I‰IÕà 'ˆD�I‰IÕr   c                 óN   — |€d| j                   _        y|| j                   _        yrø   )rR   Úcreator)rE   rü   s     r   Ú
setCreatorzPDFDocument.setCreator`  s   € àˆ?Ø /ˆD�I‰IÕà 'ˆD�I‰IÕr   c                 óV   — |€t         | j                  _        y|| j                  _        y)rð   N)Ú_default_producerrR   Úproducer)rE   r   s     r   ÚsetProducerzPDFDocument.setProducerg  s    € àÐÜ!2ˆD�I‰IÕà!)ˆD�I‰IÕr   c                 óN   — |€d| j                   _        y|| j                   _        y)z/embeds a string containing keywords in PDF fileNÚ )rR   Úkeywords)rE   r  s     r   ÚsetKeywordszPDFDocument.setKeywordsn  s"   € ð ÐØ!#ˆD�I‰IÕà!)ˆD�I‰IÕr   c                 ó&   — || j                   _        y rH   )rR   Ú_dateFormatter)rE   ÚdateFormatters     r   ÚsetDateFormatterzPDFDocument.setDateFormatterw  s   € Ø#0ˆ�	‰	Õ r   c                 óÆ   — t        | j                  j                  «       «      }ddlm} |j
                  D ]  }||vsŒ|j                  |«       Œ |j                  «        |S )Nr   )Ú	_fontdata)Úlistrw   r‹   Úreportlab.pdfbaser  ÚstandardFontsÚappendÚsort)rE   Ú	fontnamesr  r�   s       r   ÚgetAvailableFontszPDFDocument.getAvailableFontsz  s[   € Ü˜×)Ñ)×.Ñ.Ó0Ó1ˆ	å/Ø×+Ñ+ò 	'ˆDØ˜9Ò$Ø× Ñ  Õ&ð	'ð 	�‰ÔØÐr   c           	      ó.  — | j                   j                  | «       | j                  }| j                  }| j	                  |«       | j	                  |«       d }| j                   j                  «       }|r| j	                  |«      }d}g }| j
                  }| j                  }| j                  }	| j                  }
t        | j                  «      x| _        }	 |dz  }||vrnª||   }|	|   }t        ||«      }|j                  | «      }t        j                  sKt        j                   r;	 |j"                  j$                  }|j)                  dt'        |«      ›d|d d ›d�«       |j)                  |«      }||
|<   |j+                  |«       Œ´| `t-        |«      }|dz
  |k7  rt/        d|›d|›�«      ‚t1        «       }|j3                  d|«       |j                  | «      }|j)                  |«      }t5        ||dz   | j	                  |«      | j	                  |«      || j7                  «       ¬	«      }|j                  | «      }|j)                  |«       t9        | d
g «      D ]  }|j;                  |«       Œ |j                  | «      S #  t'        |«      }Y �ŒVxY w)Nr   r&   z% z: class é2   z 
zcounter z' doesn't match number to id dictionary )Ú	startxrefÚSizeÚRootÚInfoÚEncryptr˜   Ú	_digiSigs)rW   rJ   rl   rR   r4   rj   rg   rh   ri   ÚPDFFilerb   Ú	__accum__ÚPDFIndirectObjectr5   r   r6   r7   r¥   r   rf   Úaddr  Úlenrº   ÚPDFCrossReferenceTableÚ
addsectionÚ
PDFTrailerr˜   r£   Úsign)rE   r€   rR   Ú
encryptrefÚencryptinfoÚcounterÚidsÚ
numbertoidÚidToNVÚidToObÚidToOfÚFileÚoidÚobjÚIOÚIOfÚ	classnameÚoffsetÚlnoÚxrefÚxreffÚ
xrefoffsetÚtrailerÚtrailerfÚdss                            r   r5   zPDFDocument.format„  sQ  € ð 	�‰×Ñ˜TÔ"Ø�l‰lˆØ�y‰yˆØ�‰�sÔØ�‰�tÔàˆ
Ø—l‘l×'Ñ'Ó)ˆÙØŸ™¨Ó4ˆJàˆØˆØ—_‘_ˆ
Ø×0Ñ0ˆØ—‘ˆØ—‘ˆô !(¨×(8Ñ(8Ó 9Ð9ˆŒ˜ØØ�q‰LˆGØ˜jÑ(¨%Ø˜WÑ%ˆCà˜‘+ˆCÜ" 3¨Ó,ˆBà—)‘)˜D“/ˆCä×&Ò&¬9×+@Ò+@ð+Ø #§¡× 6Ñ 6�Ið —’´°sµ¸YÀsÈº^ÐLÔMØ—X‘X˜c“]ˆFØ ˆF�3‰KØ�J‰J�sŒOð% ð& ˆNä�*‹oˆØ�1‰9�cŠ>ÝÒU\Ñ^aÐbÓcÐcä%Ó'ˆØ�‰˜˜3ÔØ—‘˜DÓ!ˆØ—X‘X˜e“_ˆ
äØ"Ø�q‘5Ø—>‘> #Ó&Ø—>‘> $Ó'Ø Ø—‘“ôˆð —>‘> $Ó'ˆØ�‰�ÔÜ˜$˜{¨2Ó.ò 	ˆBØ�G‰G�D�Mð	ð �{‰{˜4Ó Ð øð=+Ü % c£
“Iús   Ä(J ÊJc                 ó4   — t        |«      }|| j                  v S )z test for existence of named form)rA   rh   r×   s      r   ÚhasFormzPDFDocument.hasFormÉ  s   € ä" 4Ó(ˆØ˜tŸ™Ð.Ð.r   c                 óp  — t        |«      }|| j                  v r�| j                  |   }t        |d«      r|j                  |   S t	        |t
        «      r|j                  «       S t	        |t        «      r,t        |j                  j                  |   j                  «      S t        dt        |«      z  «      ‚y)z¬get the declared bounding box of the form as a list.
        If you specify a different PDF box definition (e.g. the
        ArtBox) and it has one, that's what you'll get.Ú_extra_pageCatcher_infoz'I don't understand the form instance %sN)rA   rh   r3   r=  r,   ÚPDFFormXObjectÚBBoxListÚ	PDFStreamr  Ú
dictionaryÚdictÚsequencerº   r©   )rE   r�   ÚboxTyperØ   Útheforms        r   ÚgetFormBBoxzPDFDocument.getFormBBoxÎ  s¤   € ô # 4Ó(ˆØ˜4Ÿ?™?Ñ*Ø—o‘o lÑ3ˆGÜ�wÐ8Ô9Ø×6Ñ6°wÑ?Ð?Ü˜'¤>Ô2à×'Ñ'Ó)Ð)Ü˜G¤YÔ/ä˜G×.Ñ.×3Ñ3°GÑ<×EÑEÓFÐFä Ð!JÌTÐRVËZÑ!WÓXÐXð +r   c                 ó   — t        |«      S )ziLets canvas find out what form is called internally.
        Never mind whether it is defined yet or not.)rA   ©rE   r�   s     r   ÚgetXObjectNamezPDFDocument.getXObjectNameà  s   € ô ˜4Ó Ð r   c                 ó`   — i }|D ]  }t        |«      }t        |«      }|||<   Œ t        |«      S )z…construct an xobject dict (for inclusion in a resource dict, usually)
           from a list of form names (images not yet supported))rA   rË   rx   )rE   Ú	formnamesÚDr�   rØ   Ú	references         r   ÚxobjDictzPDFDocument.xobjDictå  sB   € ð ˆØò 	(ˆDÜ& tÓ,ˆLÜ*¨<Ó8ˆIØ'ˆAˆlŠOð	(ô
 ˜QÓÐr   c                 óz  — t        |t        «      }| j                  }|€|r|j                  t        u r|S t        |t        «      ri|j                  }|�(||k7  r#t        dt        |«      ›dt        |«      ›�«      ‚||vr$t        dt        |«      ›dt        |«      ›d�«      ‚t	        |«      S | j                  dz   x}| _        |€dt        |«      z   }||v r,||   }||k7  rt        dt        |«      z   «      ‚t	        |«      S |r||_        |d	f| j                  |<   || j                  |<   |||<   t	        |«      S )
Nzattempt to reregister object z with new name zobject of type z
 named as z, but not registeredr&   ÚRzredefining named object: r   )r,   r2   rh   r¥   rË   r3   r!   rº   r©   r8   rf   r]   rg   rj   )rE   r.  r�   Úiobrh   Úintnamer]   Úothers           r   r4   zPDFDocument.Referenceð  sK  € ô ˜œYÓ'ˆØ—_‘_ˆ
Øˆ<¡¨¯©Ô9KÑ(KØˆJÜ�3Ô(Ô)à×*Ñ*ˆGØÐ D¨'¢MÝ Ü˜•M¤4¨¤:ð"/ó 0ð 0à˜jÑ(Ý ÔX\Ð]`ÕXaÔbgÐhoÕbpÐ!qÓrÐrÜ% gÓ.Ð.à-1×-?Ñ-?ÀÑ-AÐAˆ˜Ô*Øˆ<Ø”t˜MÓ*Ñ*ˆDØ�:ÑØ˜tÑ$ˆEØ�cŠzÜ Ð!<¼TÀ$»ZÑ!GÓHÐHÜ% dÓ+Ð+ÙØ#'ˆCÔ à1>ÀÐ0Bˆ×'Ñ'¨Ñ-Ø)-ˆ�‰˜Ñ&Øˆ
�4ÑÜ! $Ó'Ð'r   )ÚMediaBoxrH   )+r   r   r   ÚdefaultStreamFiltersrC   rW   r   ÚpageCompressionr6   ÚPDF_VERSION_DEFAULTrƒ   ra   r�   r�   r˜   r²   rª   r»   r¾   rÆ   rÉ   rÌ   rÎ   rÐ   rÒ   rÕ   rÙ   rÜ   rî   ró   rö   rú   rý   r  r  r	  r  r5   r;  rF  rI  rN  r4   r   r   r   rY   rY   o   sÚ   „ àÐÙ‹n€GàØ&×6Ñ6Ø$×.Ñ.ØØ/Øó3òj!òMò
.ò
òNò@ò òòHò-ò7òòò'ò>ò0òòò*$ò&ò(ò(ò*ò*ò1òòC!òJ/ó
Yò$!ò
	 ô(r   rY   ÚtrueÚfalseÚnullc                   ó    — e Zd Zdd„Zd„ Zd„ Zy)r•   c                 ó    — || _         || _        y rH   )rF   r“   )rE   rF   r“   s      r   rƒ   zPDFText.__init__  s   € ØˆŒØˆ�r   c                 óÒ   — | j                   }t        |«      r|j                  | j                  «      }t	        j
                  |j                  j                  |«      «      }d|z   dz   S )Nó   <ó   >)rF   r
   r.   r“   ÚbinasciiÚhexlifyrW   )rE   r<   rF   Úresults       r   r5   zPDFText.format  sT   € Ø�F‰FˆÜ�QŒ<Ø—‘˜Ÿ™Ó"ˆAÜ×!Ñ! (×"2Ñ"2×"9Ñ"9¸!Ó"<Ó=ˆØ�f‰}˜tÑ#Ð#r   c                 ó8   — t        «       }| j                  |«      S rH   )rU   r5   )rE   Údummydocs     r   Ú__str__zPDFText.__str__   s   € Ü“:ˆØ�{‰{˜8Ó$Ð$r   N)zutf-8)r   r   r   rƒ   r5   re  r   r   r   r•   r•     s   „ óò$ó%r   r•   c                 ó   — | S rH   r   )Úns    r   Ú	PDFnumberrh  $  s   € Ø€Hr   z[^()]c                 ó„   — t         j                  d| «      } d}| D ]  }|dk(  r|dz  }Œ|dz  }|dk  sŒ y | xr dxs dS )z+test whether a string is balanced in parensr  r   ú(r&   )Ú_re_cleanparensÚsub)Úsrg  Úcs      r   Ú_isbalancedro  *  s\   € ä×Ñ˜B˜qÓ!€AØ	€AØò ˆØˆcŠ6�1�a‘4‘1à�‰FˆAØ�‹s™1ð	ð
 ˆ5Š;�QÒ˜!Ðr   c                 óT   — 	 | j                  d«       y# t        $ r
}Y d}~yd}~ww xY w)z(return true if no Pdfdoc encoding errorsÚpdfdocr&   Nr   )r.   ÚUnicodeEncodeError)ÚutextÚes     r   Ú_checkPdfdocru  5  s)   € ðØ�‰�XÔØøÜò Üûðús   ‚ ”	'¢'c                   ó$   — e Zd ZdZdd„Zd„ Zd„ Zy)rp   Fc                 ó¶   — t        |t        «      r4|j                  | _        |j                  | _        |j                  | _        y|| _        || _        || _        y)az  s can be unicode/utf8 or a PDFString
        if escape is true then the output will be passed through escape
        if enc is raw then bytes will be left alone
        if enc is auto we'll try and automatically adapt to utf_16_be/utf_16_le if the
        effective string is not entirely in pdfdoc
        if self.unicodeEncValid unicode will use the specifed encoding
        N)r,   rp   rm  Úescaper“   )rE   rm  rx  r“   s       r   rƒ   zPDFString.__init__?  sD   € ô �aœ	Ô"Ø—S‘SˆDŒFØŸ(™(ˆDŒKØ—u‘uˆD�HàˆDŒFØ ˆDŒKØˆD�Hr   c           	      óD  — | j                   }t        | dd«      }t        |«      rº|dk(  �rf	 |j                  t        j
                  «      r|j                  d«      }nB|j                  t        j                  «      r|j                  d«      }n|j                  d«      }t        |«      r|j                  d«      }n"t        j
                  |j                  d«      z   }n²t        |«      r�|dk(  r@t        |«      r|j                  d«      }n…t        j
                  |j                  d«      z   }nb| j                  r|j                  | j                  «      }n:t        j
                  |j                  d«      z   }nt!        dt#        |«      z  «      ‚t        | d	d
«      }t%        |j&                  t(        «      s|j&                  j                  |«      }d
}|rc	 dt+        |«      z  }|dz  r|j-                  dd«      }|dz  r-t/        |«      r"|j-                  dd«      j-                  dd«      }t1        |«      S d|z   dz   S #  	 |j                  d«       n'#  t        j                  dt        |«      ›�«       ‚ xY wY ŒïxY w#  t!        d|›dt        |«      ›�«      ‚xY w)Nr“   ÚautoÚ	utf_16_beÚ	utf_16_leÚutf8rq  z	Error in z-PDFString argument must be str/unicode not %srx  r&   ú(%s)zcannot escape ú é   z\012ú
r(   z\(rj  z\)ú)ó   (ó   ))rm  r£   r	   Ú
startswithÚcodecsÚBOM_UTF16_BEÚdecodeÚBOM_UTF16_LEru  r.   r   r›   r©   r
   ÚunicodeEncValidr“   rº   r8   r,   rW   rC   r   Úreplacero  r0   )rE   r<   rm  r“   Úurx  Úess          r   r5   zPDFString.formatO  s2  € Ø�F‰FˆÜ�d˜5 Ó(ˆÜ�1Œ:Ø�f‹}ðØ—|‘|¤F×$7Ñ$7Ô8ØŸH™H [Ó1™ØŸ™¤f×&9Ñ&9Ô:ØŸH™H [Ó1™àŸH™H VÓ,˜Ü# A”ØŸH™H XÓ.™ä"×/Ñ/°·±¸Ó0EÑE˜øô �qŒ\Ø�fŠ}Ü ”?ØŸ™ Ó*‘Aä×+Ñ+¨A¯H©H°[Ó,AÑA‘AØ×%Ò%Ø—H‘H˜TŸX™XÓ&‘ä×'Ñ'¨¯©°Ó(=Ñ=‘äÐLÌtÐTUËwÑVÓWÐWä˜˜h qÓ)ˆÜ˜(×*Ñ*¬<Ô8Ø× Ñ ×'Ñ'¨Ó*ˆAØˆFÙðGØœi¨›lÑ*�ð �aŠxØ—Z‘Z ¨Ó-�Ø�aŠxœK¨œOØ—Z‘Z  cÓ*×2Ñ2°5¸Ó=�Ü˜R“=Ð à˜!‘8˜d‘?Ð"øðEðØŸ™ Õ*øðÜŸš´d¸1´gÐ%?Ô@Øúñ +ûð0GÝ º!¼TÀ!¼WÐ!EÓFÐFús0   ¬B2I ÇJ ÉJ ÉIÉJ É$I;É;J ÊJc                 ó2   — dt        | j                  «      z  S )Nr~  )r   rm  rQ   s    r   re  zPDFString.__str__ƒ  s   € Øœ	 $§&¡&Ó)Ñ)Ð)r   N)r&   rz  )r   r   r   rŠ  rƒ   r5   re  r   r   r   rp   rp   =  s   „ Ø€Oóò 2#óh*r   rp   é!   é~   c                 ó¾   — t        | «      }t        |«      D ]1  \  }}||k  s
||kD  s|dv sŒdt        t        |«      «      dd  z   ||<   Œ3 ddj	                  |«      z   S )Nz
%()<>{}[]#ú#r€  ú/r  )r  Ú	enumerateÚhexÚordÚjoin)r±   ÚloÚhiÚLÚirn  s         r   rè   rè   †  si   € ô 	ˆT‹
€AÜ˜‹|ò '‰ˆˆ!ØˆRŠ4�1�R’4˜1 Ò,Ø”sœ3˜q›6“{ 1 2�Ñ&ˆAˆaŠDð'ð �—‘˜“
ÑÐr   c                   óD   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zd„ Zdd„Z	d	„ Z
d
„ Zy)rx   TNc                 óB   — |€i | _         y|j                  «       | _         y)zPdict should be namestring to value eg "a": 122 NOT pdfname to value NOT "/a":122N)rB  Úcopy)rE   rB  s     r   rƒ   zPDFDictionary.__init__’  s   € àˆ<ØˆD�IàŸ	™	›ˆD�Ir   c                 ó"   — || j                   |<   y rH   ©rB  )rE   r�   rê   s      r   Ú__setitem__zPDFDictionary.__setitem__˜  s   € Øˆ�	‰	�$Šr   c                 ó    — | j                   |   S rH   r   ©rE   Úas     r   Ú__getitem__zPDFDictionary.__getitem__š  s   € Ø�y‰y˜‰|Ðr   c                 ó   — || j                   v S rH   r   r£  s     r   Ú__contains__zPDFDictionary.__contains__œ  s   € Ø�D—I‘Iˆ~Ðr   c                 óZ   — |j                  | j                  |   «      | j                  |<   y rH   )r4   rB  )rE   r�   r<   s      r   r4   zPDFDictionary.Referencež  s"   € Ø"×,Ñ,¨T¯Y©Y°t©_Ó=ˆ�	‰	�$Šr   c                 óT  — | j                   }	 t        |j                  «       «      }t        |t        «      s|j                  «        |D �cg c]*  }t        t        |«      |«      dz   t        ||   |«      z   ‘Œ, }}| j                  rt        j                  s| j                  dk(  r|j                  |«      }nJ|j                  }t        t!        dt#        |«      d«      «      D ]  } ||d«       Œ dj                  |«      }d|z   dz   S #  t        t	        |«      «       ‚ xY wc c}w )Nó    Úforcedé   ó   
 s   <<
s   
>>)rB  r  r‹   r®   rf   r,   r   r  r5   rè   Ú	multiliner   ÚpdfMultiLiner—  ÚinsertÚreversedÚranger  )	rE   r<   ÚINDrB  r‹   rŒ   rš  rF   r›  s	            r   r5   zPDFDictionary.format   s÷   € Ø�y‰yˆð	Ü˜Ÿ	™	›Ó$ˆDô ˜$œ{Ô+¨T¯Y©Y¬[ØRVÖWÈQŒf”W˜Q“Z Ó)¨$Ñ.¬v°d¸1±g¸hÓ/GÓGÐWˆÐWØ�NŠNœy×5Ò5¸$¿.¹.È(Ò:RØ—‘˜“‰Að �h‰hˆAÜœe A¤s¨1£v¨qÓ1Ó2ò �Ù�!�F•ðà—	‘	˜!“ˆAØ�q‰y˜Ñ Ð øð	Ü”%˜“+ÔØüâWs   ŽD Á/D%ÄD"c                 ó,   — t        | j                  «      S rH   )rx   rB  rQ   s    r   rž  zPDFDictionary.copy³  s   € Ü˜TŸY™YÓ'Ð'r   c                 óÀ   — | j                   }|j                  «       D �cg c]  }|j                  d«      sŒ|‘Œ }}|D ]  }|j                  |«      ||dd  <   Œ y c c}w )Nr“  r&   )rB  r‹   r…  Úpop)rE   rL  rŒ   ÚKs       r   Ú	normalizezPDFDictionary.normalize¶  sZ   € à�I‰IˆØŸ™›Ö6�1 A§L¡L°Õ$5ŠQÐ6ˆÐ6Øò 	 ˆAØ—u‘u˜Q“xˆAˆa��ˆeŠHñ	 ùò 7s
   ŸA¶ArH   ©r­  )r   r   r   r®  rƒ   r¡  r¥  r§  r4   r5   rž  r¸  r   r   r   rx   rx   �  s/   „ Ø€Ió$ò òòò>ó!ò&(ó r   rx   c                   ó   — e Zd Zd„ Zd„ Zy)ÚcheckPDFNamesc                 ó@   — t        t        t        |«      «      | _        y rH   )r  Úmaprè   Únames)rE   r¾  s     r   rƒ   zcheckPDFNames.__init__¾  s   € Üœ#œg eÓ,Ó-ˆ�
r   c                 ó\   — |j                  d«      st        |«      }|| j                  v r|S y )Nr“  )r…  rè   r¾  )rE   rê   s     r   rœ   zcheckPDFNames.__call__À  s/   € Ø×Ñ Ô$Ü˜%“.ˆEØ�D—J‘JÑØˆLð r   N)r   r   r   rƒ   rœ   r   r   r   r»  r»  ½  s   „ ò.ór   r»  c                 ó   — | dv r| S y )N)rX  rY  r   )rê   s    r   ÚcheckPDFBooleanrÁ  Æ  s   € ØÐ Ñ ¨ ,Ð r   c                   ó   — e Zd Zi Zdd„Zd„ Zy)ÚCheckedPDFDictionaryNc                 óD   — t         j                  | |«       |r|| _        y y rH   )rx   rƒ   Úvalidate)rE   rB  rÅ  s      r   rƒ   zCheckedPDFDictionary.__init__Ë  s   € Ü×Ñ˜t DÔ)Ù X�T•]ˆ8r   c                 óº   — || j                   vrt        d|z  «      ‚ | j                   |   |«      }|€t        d|›d|›�«      ‚t        j                  | ||«       y )Nzinvalid key, %rz
Bad value z	 for key )rÅ  rº   rx   r¡  )rE   r�   rê   Úcvalues       r   r¡  z CheckedPDFDictionary.__setitem__Ï  s[   € Ø�t—}‘}Ñ$ÜÐ.°Ñ5Ó6Ð6Ø$�—‘˜tÑ$ UÓ+ˆØˆ>Ýº%ÁÐEÓFÐFÜ×!Ñ! $ t¨FÕ3r   ©NN)r   r   r   rÅ  rƒ   r¡  r   r   r   rÃ  rÃ  É  s   „ Ø€Hó.ó4r   rÃ  c                   óH  — e Zd Z eeeeeee edj                  «       Ž  edj                  «       Ž  edj                  «       Ž  edj                  «       Ž  edj                  «       Ž  edj                  «       Ž  edj                  «       Ž  edj                  «       Ž ¬«      Zy)ÚViewerPreferencesPDFDictionaryz#UseNone UseOutlines UseThumbs UseOCzL2R R2Lz(MediaBox CropBox BleedBox TrimBox ArtBoxzNone AppDefaultz.Simplex DuplexFlipShortEdge DuplexFlipLongEdge)ÚHideToolbarÚHideMenubarÚHideWindowUIÚ	FitWindowÚCenterWindowÚDisplayDocTitleÚNonFullScreenPageModeÚ	DirectionÚViewAreaÚViewClipÚ	PrintAreaÚ	PrintClipÚPrintScalingÚDuplexN)r   r   r   rB  rÁ  r»  ÚsplitrÅ  r   r   r   rÊ  rÊ  ×  s«   „ ÙØ+Ø+Ø,Ø)Ø,Ø /Ù&3Ð5Z×5`Ñ5`Ó5bÐ&cÙ'¨¯©Ó):Ð;Ù&Ð(R×(XÑ(XÓ(ZÐ[Ù&Ð(R×(XÑ(XÓ(ZÐ[Ù'Ð)S×)YÑ)YÓ)[Ð\Ù'Ð)S×)YÑ)YÓ)[Ð\Ù*Ð,=×,CÑ,CÓ,EÐFÙ$Ð&V×&\Ñ&\Ó&^Ð_ô�Hr   rÊ  c                   ó   — e Zd ZdZd„ Zd„ Zy)ÚPDFStreamFilterZCompressÚFlateDecodec                 ód   — t        |«      r|j                  d«      }t        j                  |«      S )Nr}  )r
   r.   ÚzlibÚcompress©rE   Útexts     r   r.   zPDFStreamFilterZCompress.encodeí  s&   € Ü�TŒ?Ø—;‘;˜vÓ&ˆDÜ�}‰}˜TÓ"Ð"r   c                 ó,   — t        j                  |«      S rH   )rÞ  Ú
decompress)rE   Úencodeds     r   rˆ  zPDFStreamFilterZCompress.decodeñ  s   € Ü�‰˜wÓ'Ð'r   N©r   r   r   Úpdfnamer.   rˆ  r   r   r   rÛ  rÛ  ë  s   „ Ø€Gò#ó(r   rÛ  c                   ó   — e Zd ZdZd„ Zd„ Zy)ÚPDFStreamFilterBase85EncodeÚASCII85Decodec                 óX   — ddl m} t        |«      }t        j                  r ||«      }|S )Nr   )Ú_wrap)Úreportlab.pdfbase.pdfutilsrë  r   r   ÚwrapA85)rE   rá  rë  s      r   r.   z"PDFStreamFilterBase85Encode.encodeù  s&   € Ý4Ü  Ó&ˆÜ×ÒÙ˜“;ˆDØˆr   c                 ó   — t        |«      S rH   )r   rà  s     r   rˆ  z"PDFStreamFilterBase85Encode.decodeÿ  s   € Ü  Ó&Ð&r   Nrå  r   r   r   rè  rè  ÷  s   „ Ø€Gòó'r   rè  c                   ó"   — e Zd ZdZdZdd„Zd„ Zy)r@  z@set dictionary elements explicitly stream.dictionary[name]=valuer&   Nc                 óF   — |€
t        «       }|| _        || _        || _        y rH   )rx   rA  ÚcontentÚfilters)rE   rA  rñ  rò  s       r   rƒ   zPDFStream.__init__	  s$   € ØÐÜ&›ˆJØ$ˆŒØˆŒØˆ�r   c                 ób  — | j                   }t        |j                  j                  «       «      }| j                  }| j
                  }| j                  €t        d«      ‚|€|j                  }|�vd|j                  vrht        |«      }|j                  «        g }|D ]8  }|j                  |«      }|j                  dt        |j                  «      «       Œ: t        |«      |d<   |j                  j                  |«      }t!        ||«      }t#        |«      |d<   t!        ||«      }	|	dz   |z   dz   S )Nzstream content not setÚFilterr   ÚLengths   
stream
s
   endstream
)rA  rx   rB  rž  rñ  rò  rº   rU  r  Úreverser.   r°  rè   ræ  ÚPDFArrayrW   r5   r  )
rE   r<   rA  rñ  rò  ÚrfÚfnamesr>   ÚfcÚfds
             r   r5   zPDFStream.format  s  € Ø—_‘_ˆ
ä" :§?¡?×#7Ñ#7Ó#9Ó:ˆ
Ø—,‘,ˆØ—,‘,ˆØ�<‰<ÐÜÐ5Ó6Ð6Øˆ?Ø×3Ñ3ˆGàÐ 8°:·?±?Ñ#Bä�g“ˆBØ�J‰JŒLØˆFØò 5�ð Ÿ(™( 7Ó+�Ø—‘˜a¤¨¯©Ó!3Õ4ð	5ô $,¨FÓ#3ˆJ�xÑ à×"Ñ"×)Ñ)¨'Ó2ˆÜ�G˜XÓ&ˆÜ" 7›|ˆ
�8ÑÜ�J Ó)ˆØ�-Ñ Ñ" >Ñ1Ð1r   ©NNN)r   r   r   rV   r"   rƒ   r5   r   r   r   r@  r@    s   „ ÙJà€Kóó2r   r@  c                 ó®   — | €t         } | j                  «       dz   } t        | t        j                  xr t
        t        gxs t        g¬«      }d|_        |S )Nr�  )rñ  rò  ztest stream)ÚteststreamcontentÚstripr@  r   ÚuseA85ÚPDFBase85EncodeÚPDFZCompressr#   )rñ  ÚSs     r   Ú
teststreamr  /  sS   € à€Ü#ˆØ�m‰m‹o Ñ$€GÜ˜GÜ%×,Ñ,ÒO´/Ä,Ð1OÒaÔT`ÐSaô	c€Að "€A„MØ€Hr   z\
1 0 0 1 0 0 cm BT /F9 12 Tf 14.4 TL ET
1.00 0.00 1.00 rg
n 72.00 72.00 432.00 648.00 re B*
c                   ó$   — e Zd ZdZd„ Zd„ Zdd„Zy)r÷  Tc                 ó$   — t        |«      | _        y rH   )r  rC  )rE   rC  s     r   rƒ   zPDFArray.__init__A  s   € Ü˜X›ˆ�r   c                 ó`   — t        t        |j                  | j                  «      «      | _        y)z'make all objects in sequence referencesN)r  r½  r4   rC  rI   s     r   Ú
ReferenceszPDFArray.ReferencesC  s   € äœS ×!3Ñ!3°T·]±]ÓCÓDˆ�r   c                 ó¢  — | j                   D �cg c]  }t        ||«      ‘Œ }}| j                  rt        j                  s| j                  dk(  r|j                  |«      }nct        |«      }|dkD  rB|j                  }t        t        d|d«      «      D ]  } ||d«       Œ dj                  |«      }ndj                  |«      }d|z   dz   S c c}w )Nr«  é
   r­  rª  s   [ s    ])
rC  r5   r®  r   r¯  r—  r  r°  r±  r²  )rE   r<   r³  rt  rš  rg  rF   r›  s           r   r5   zPDFArray.formatF  s´   € Ø*.¯-©-Ö8 QŒV�A�xÕ Ð8ˆÐ8Ø�NŠNœy×5Ò5¸$¿.¹.È(Ò:RØ—‘˜“‰Aä�!‹fˆAØ�Štà—(‘(�Ü!¤%¨¨A¨rÓ"2Ó3ò  �AÙ�a˜•Kð à—I‘I˜a“L‘à—I‘I˜a“L�Ø�q‰y˜5Ñ Ð ùò 9s   �CNr¹  )r   r   r   r®  rƒ   r  r5   r   r   r   r÷  r÷  ?  s   „ Ø€Iò'òEô!r   r÷  c                   ó   — e Zd ZdZy)ÚPDFArrayCompactFN)r   r   r   r®  r   r   r   r  r  V  s   „ Ø�Ir   r  c                   ó   — e Zd ZdZd„ Zd„ Zy)r  r&   c                 ó    — || _         || _        y rH   )r�   rñ  )rE   r�   rñ  s      r   rƒ   zPDFIndirectObject.__init__[  s   € ØˆŒ	Øˆ�r   c                 ó
  — | j                   }|j                  |   \  }}|j                  j                  ||«       t	        | j
                  |d¬«      }t        |›d|›d�«      |z   |j                  d«      rdz   dz   S dz   dz   S )Nr&   ©r=   r  z obj
ó   
r   s   endobj
)r�   rg   rW   rO   r5   rñ  r0   Úendswith)rE   r<   r�   rg  ÚvÚfcontents         r   r5   zPDFIndirectObject.format^  s•   € Ø�y‰yˆØ×2Ñ2°4Ñ8‰ˆˆ1à×Ñ×!Ñ! ! QÔ'Ü˜$Ÿ,™,¨¸1Ô=ˆÜªª1Ð-Ó.ØñØ'×0Ñ0°Ô7˜ñDàñð 	Ø=BñDàñð 	r   N)r   r   r   r"   rƒ   r5   r   r   r   r  r  Y  s   „ Ø€Kòór   r  c                   ó   — e Zd Zd„ Zd„ Zy)rË   c                 ó   — || _         y rH   )r�   rH  s     r   rƒ   zPDFObjectReference.__init__i  ó	   € Øˆ�	r   c                 óš   — 	 t        d|j                  | j                     z  «      S #  t        dt	        | j                  «      z  «      ‚xY w)Nz%s %s Rz:forward reference to %s not resolved upon final formatting)r0   rg   r�   rÂ   r©   rI   s     r   r5   zPDFObjectReference.formatk  sM   € ð	kÜ˜Y¨×)LÑ)LÈTÏYÉYÑ)WÑWÓXÐXøð	kÜÐWÔZ^Ð_c×_hÑ_hÓZiÑiÓjÐjús	   ‚$' §#A
N©r   r   r   rƒ   r5   r   r   r   rË   rË   h  s   „ òókr   rË   c                   ó(   — e Zd Zefd„Zd„ Zd„ Zd„ Zy)r  c                 ó–   — g | _         | j                   j                  | _        d| _        | j	                  t        d|z  «      dz   «       y )Nr   z%%PDF-%s.%ss5   
%“Œ‹ž ReportLab Generated PDF document (opensource)
)Ústringsr  r›   r2  r  r0   )rE   r}   s     r   rƒ   zPDFFile.__init__s  sD   € ØˆŒØ—\‘\×(Ñ(ˆŒ
ØˆŒð 	�‰”)˜M¨JÑ6Ó7ØRñSõ 	r   c                  ó   — y rH   r   rQ   s    r   ÚcloseOrResetzPDFFile.closeOrReset�  s   € Ør   c                 ó|   — t        |«      }| j                  }|t        |«      z   | _        | j                  |«       |S )zGshould be constructed as late as possible, return position where placed)r0   r2  r  r›   )rE   rm  rb  s      r   r  zPDFFile.add„  s3   € ä�a‹LˆØ—‘ˆØœS ›V‘mˆŒØ�
‰
�1ŒØˆr   c                 ó8   — dj                  | j                  «      S )Nr   )r—  r  rI   s     r   r5   zPDFFile.formatŒ  s   € Ø�x‰x˜Ÿ™Ó%Ð%r   N)r   r   r   rW  rƒ   r  r  r5   r   r   r   r  r  q  s   „ à!4ó òòó&r   r  c                   ó   — e Zd Zd„ Zd„ Zy)ÚPDFCrossReferenceSubsectionc                 ó    — || _         || _        y rH   )ÚfirstentrynumberÚ
idsequence)rE   r$  r%  s      r   rƒ   z$PDFCrossReferenceSubsection.__init__�  s   € Ø 0ˆÔØ$ˆ�r   c                 óR  — | j                   }| j                  }t        |«      }t        |«      }i }|dk(  rd|d<   |dz   }|j	                  dd«       |j
                  }|j                  }||z   dz
  }	|D ]n  }
||
   \  }}||v r)t        d|›dt        |
«      ›dt        ||
   «      ›�«      ‚||	kD  s||k  rt        d|›d|›d	|	›�«      ‚||z
  }|
||<   ||
   }d
||fz  ||<   Œp |›d|›�}|j	                  d|«       |j                  d«       t        dj                  |«      «      S )z`id sequence should represent contiguous object nums else error. free numbers not supported (yet)r   zstandard free entryr&   z0000000000 65535 f zobject number collision r  zobject number z not in range z..z%0.10d %0.5d n r  r�  )r$  r%  r  r  r°  rg   ri   rº   r©   r  r0   r—  )rE   r<   r$  r%  ÚentriesÚnentriesÚtakenr)  ri   Úlastentrynumberr¦   ÚnumrN   Úrnumr2  Ú	firstlines                   r   r5   z"PDFCrossReferenceSubsection.format“  sT  € à×0Ñ0ÐØ—_‘_ˆ
Ü�zÓ"ˆÜ�z“?ˆàˆØ˜QÒØ,ˆE�!‰HØ ‘zˆHØ�N‰N˜1Ð3Ô4Ø×4Ñ4ˆØ×(Ñ(ˆ
Ø*¨8Ñ3°AÑ5ˆØò 
	AˆBØ# B™Z‰NˆS�'Ø�e‰|Ý ÂsÌDÐQSÍHÔVZÐ[`ÐacÑ[dÔVeÐ!fÓgÐgØ�?Ò" cÐ*:Ò&:Ý Ê3ÒP`ÑbqÐ!rÓsÐsàÐ'Ñ'ˆDØˆE�#‰JØ ‘^ˆFØ,°¸Ð/@Ñ@ˆG�CŠLð
	Aò  0±Ð:ˆ	Ø�‰�q˜)Ô$à�‰�rÔÜ˜Ÿ™ 7Ó+Ó,Ð,r   Nr  r   r   r   r"  r"  �  s   „ ò%ó-r   r"  c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)r   c                 ó   — g | _         y rH   )ÚsectionsrQ   s    r   rƒ   zPDFCrossReferenceTable.__init__µ  s	   € Øˆ�r   c                 óR   — t        ||«      }| j                  j                  |«       y rH   )r"  r0  r  )rE   Ú
firstentryr'  Úsections       r   r!  z!PDFCrossReferenceTable.addsection·  s    € Ü-¨j¸#Ó>ˆØ�‰×Ñ˜WÕ%r   c                 óÊ   — | j                   }|st        d«      ‚dg}| j                   D ]  }t        ||«      }|j                  |«       Œ! t	        dj                  |«      «      S )Nzno crossref sectionss   xref
r   )r0  rº   r5   r  r0   r—  )rE   r<   r0  rš  rm  Úfss         r   r5   zPDFCrossReferenceTable.formatº  s`   € Ø—=‘=ˆÙÜÐ3Ó4Ð4ØˆKˆØ—‘ò 	ˆAÜ˜˜8Ó$ˆBØ�H‰H�R�Lð	ô ˜Ÿ™ !›Ó%Ð%r   N)r   r   r   rƒ   r!  r5   r   r   r   r   r   ´  s   „ òò&ó&r   r   c                   ó   — e Zd Zdd„Zd„ Zy)r"  Nc                 ó¨   — || _         |�|€t        d«      ‚t        «       x}| _        d|fd|fd|fd|fd|fd|ffD ]  \  }	}
|
€Œ	|
||	<   Œ d|_        y )	NzSize and Root keys requiredr  ÚPrevr  r  r˜   r  r«  )r  rº   rx   rB  r®  )rE   r  r  r8  r  r  r˜   r  rB  rg  r  s              r   rƒ   zPDFTrailer.__init__Å  s€   € Ø"ˆŒØˆ<˜4˜<ÜÐ:Ó;Ð;Ü(›?Ð*ˆˆtŒyØ˜t�n v¨t n°v¸t°nØ˜t�n t¨R j°9¸gÐ2FðHò 	‰EˆQˆqà‰}Ø��Q’ð	ð  ˆ�r   c           
      ó    — | j                   j                  |d¬«      }dj                  d|dt        t	        | j
                  «      «      dg«      S )Nr  ©r³  r   s   trailer
s   
startxref
s   
%%EOF
)rB  r5   r—  r0   r-   r  )rE   r<   Úfdicts      r   r5   zPDFTrailer.formatÏ  sN   € Ø—	‘	× Ñ  ¨eÐ Ó4ˆØ�x‰xØØØ Üœ#˜dŸn™nÓ-Ó.Øðó ð 	r   )NNNNNNr  r   r   r   r"  r"  Ä  s   „ ó	 ó	r   r"  c                   ó0   ‡ — e Zd Zdˆ fd„	Zˆ fd„Zd„ Zˆ xZS )ÚXMPc           
      óØ   •— |r|rt        d«      ‚|s|st        d«      ‚t        ‰| �	  t        t	        t        d«      t        d«      ¬«      «      ¬«       || _        d | _        || _        y )Nz5XMP is ambiguous with both path and creator argumentsz-XMP needs at least a path or creator argumentÚMetadataÚXML)ÚTypeÚSubtype)rA  )	rº   Úsuperrƒ   rx   rB  rè   Ú
_XMP__pathÚ_XMP__pathContentÚ_XMP__creator)rE   Úpathrü   r¥   s      €r   rƒ   zXMP.__init__à  sm   ø€ Ù‘GÜÐTÓUÐUÙ™'ÜÐLÓMÐMÜ‰ÑÜ$¤TÜ˜ZÓ(Ü ›ô&ó ð 	ô 	ð
 ˆŒØ!ˆÔØ ˆ�r   c                 óV   •— | j                  |«      | _        t        t        | �  |«      S rH   )ÚmakeContentrñ  rC  r=  r5   )rE   r–   r¥   s     €r   r5   z
XMP.formatî  s'   ø€ Ø×'Ñ'¨Ó,ˆŒÜ”S˜Ñ% cÓ*Ð*r   c                 ó2  — | j                   rd| j                  €Lddlm} t	        | j                   d«      5 } ||j                  «       «      | _        d d d «       | j                  S | j                  S | j                  |«      S # 1 sw Y   | j                  S xY w)Nr   )ÚsmartDecodeÚrb)rD  rE  Úreportlab.lib.rparsexmlrK  r§   ÚreadrF  )rE   r–   rK  Ú_s       r   rI  zXMP.makeContentò  s}   € Ø�;Š;Ø×!Ñ!Ð)Ý?Ü˜$Ÿ+™+ dÓ+ð ?¨qÙ)4°Q·V±V³XÓ)>�DÔ&÷?à×%Ñ%Ð%�4×%Ñ%Ð%à—>‘> #Ó&Ð&÷	?à×%Ñ%Ð%ús   µBÂBrÈ  )r   r   r   rƒ   r5   rI  Ú__classcell__)r¥   s   @r   r=  r=  ß  s   ø„ õ!ô+ö'r   r=  c                   ó€   — e Zd ZdZdZ ed«       ed«      ddœZdj                  «       ZeZ	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zy)rk   zDocument Rootr&   rl   ÚUseNoneN)rA  ÚPageModerq   zÀ
        Dests Outlines Pages Threads AcroForm Names OpenAction PageMode URI
        ViewerPreferences PageLabels PageLayout JavaScript StructTreeRoot SpiderInfo
        MarkInfo Metadata Tabsc                 ór  — | j                  |«       | j                  }| j                  }i }|j                  «       D ]  \  }}t	        | ||«      }|€Œ|||<   Œ | j
                  D ]  }t	        | |d «      }|€Œ|||<   Œ |D ]  }||v sŒ|j                  ||   «      ||<   Œ  t        |«      }t        ||«      S rH   )	Úcheck_formatÚ__Defaults__Ú__Refs__Úitemsr£   Ú__NoDefault__r4   rx   r5   )rE   r<   ÚdefaultsÚRefsrL  rŒ   r  rB  s           r   r5   zPDFCatalog.format
  sÛ   € Ø×Ñ˜(Ô#Ø×$Ñ$ˆØ�}‰}ˆØˆØ—>‘>Ó#ò 	‰CˆAˆaÜ˜˜Q˜qÓ!ˆAØ‰}Ø��!’ð	ð ×#Ñ#ò 	ˆAÜ˜˜Q˜tÓ$ˆAØ‰}Ø��!’ð	ð
 ò 	0ˆAØ�AŠvà×)Ñ)¨!¨A©$Ó/��!’ð	0ô ˜QÓˆÜ�d˜HÓ%Ð%r   c                 ó&   — | j                  d«       y )NÚUseOutlines©ÚsetPageModerQ   s    r   ÚshowOutlinezPDFCatalog.showOutline  s   € Ø×Ñ˜Õ'r   c                 ó&   — | j                  d«       y )NÚ
FullScreenr^  rQ   s    r   ÚshowFullScreenzPDFCatalog.showFullScreen"  s   € Ø×Ñ˜Õ&r   c                 ó*   — |rt        |«      | _        y y rH   )rè   Ú
PageLayout)rE   Úlayouts     r   ÚsetPageLayoutzPDFCatalog.setPageLayout%  s   € ÙÜ% f›oˆD�Oð r   c                 ó*   — |rt        |«      | _        y y rH   )rè   rS  )rE   Úmodes     r   r_  zPDFCatalog.setPageMode)  s   € ÙÜ# D›MˆD�Mð r   c                  ó   — y)zfor use in subclassesNr   rI   s     r   rU  zPDFCatalog.check_format-  rK   r   )r   r   r   r#   r"   rè   rV  rÙ  rY  rW  r5   r`  rc  rg  r_  rU  r   r   r   rk   rk   ü  s^   „ Ø!€KØ€Ká# IÓ.Ù# IÓ.Øñ€Lð"÷ #(¡%£'ð ð €Hò&ò*(ò'ò.ò*ór   rk   c                   ój   — e Zd ZdZdZdZd ed«      iZdj                  «       Z	dgZ
d„ Zd	„ Zd
„ Zd„ Zy)rn   zHPAGES TREE WITH ONE INTERNAL NODE, FOR "BALANCING" CHANGE IMPLEMENTATIONz	page treer&   rA  r%   zKids Count ParentÚParentc                 ó   — g | _         y rH   ©r�   rQ   s    r   rƒ   zPDFPages.__init__:  s	   € Øˆ�
r   c                 ó    — | j                   |   S rH   rn  )rE   Úitems     r   r¥  zPDFPages.__getitem__<  s   € Ø�z‰z˜$ÑÐr   c                 ó:   — | j                   j                  |«       y rH   )r�   r  ©rE   r¹   s     r   rÎ   zPDFPages.addPage>  s   € Ø�
‰
×Ñ˜$Õr   c                 ó‚   — | j                   }t        |«      }|j                  |«       || _        t	        |«      | _        y rH   )r�   r÷  r  ÚKidsr  ÚCount)rE   r<   r�   Úkidss       r   rU  zPDFPages.check_format@  s2   € à—
‘
ˆÜ˜‹ˆà�‰˜Ô!ØˆŒ	Ü˜“Zˆ�
r   N)r   r   r   rV   r#   r"   rè   rV  rÙ  rY  rW  rƒ   r¥  rÎ   rU  r   r   r   rn   rn   1  sI   „ ÙRØ€KØ€Kà™G GÓ,ð €Là'×-Ñ-Ó/€MØˆz€Hòò ò ó r   rn   c                   ó®   — e Zd ZdZdZdZd ed«      iZdj                  «       Z	dj                  «       Z
dZd	Zd
ZdZdZd
Zi Zi Zd
Zd„ Zd„ Zd„ Zd„ Zd„ Zy
)ÚPDFPagezPage dictionaryr   r&   rA  rÈ   z³Parent
        MediaBox Resources Contents CropBox Rotate Thumb Annots B Dur Hid Trans AA
        PieceInfo LastModified SeparationInfo ArtBox TrimBox BleedBox ID PZ
        TranszContents Parent IDéS  iJ  Nc                 ó@   — | j                   D ]  }t        | |d «       Œ y rH   )rY  ÚsetattrrH  s     r   rƒ   zPDFPage.__init__c  s#   € à×&Ñ&ò 	&ˆDÜ�D˜$ Õ%ñ	&r   c                 ó   — || _         y rH   r…   r†   s     r   ra   zPDFPage.setCompressiong  s
   € Ø ˆÕr   c                 ó~   — | j                   rt        d«      ‚t        |«      rdj                  |«      dz   }|| _        y )Nz&overridden! must set stream explicitlyr�  )ÚOverride_default_compilationrº   r   r—  Ústream)rE   Úcodes     r   Ú	setStreamzPDFPage.setStreami  s7   € Ø×,Ò,ÜÐEÓFÐFÜ�Œ;Ø—9‘9˜T“? 4Ñ'ˆDØˆ�r   c                 ó$   — t        |«      | _        y rH   )rx   ÚTrans)rE   ÚtranDicts     r   ÚsetPageTransitionzPDFPage.setPageTransitionp  s   € Ü" 8Ó,ˆ�
r   c                 óf  — | j                   ry | j                  xsO t        | j                  dv xr dd| j                  | j
                  gxs dd| j
                  | j                  g«      | _        | j                  sd | _        n4t        | j                  t        «      st        | j                  «      | _        | j                  su| j                  }|st        «       | _	        nWt        «       }| j                  r,t        j                  xr t         t"        gxs t"        g|_        ||_        d|_        || _	        | j*                  s¾t-        «       }|j/                  «        | j0                  r|j3                  «        n|j5                  «        | j6                  r| j6                  |_        | j:                  r| j:                  |_        |j=                  | j>                  «       |jA                  | jB                  «       || _        | jD                  s#|jF                  }|jI                  |«      | _"        y y )N)éZ   i  r   zpage stream)%r~  rT  r÷  ÚRotateÚ
pageheightÚ	pagewidthÚAnnotsr,   r2   ÚContentsr  r  r@  r{   r   r   r  r  rò  rñ  r#   Ú	ResourcesÚPDFResourceDictionaryÚ
basicFontsÚ	hasImagesÚallProcsÚ
basicProcsÚXObjectsÚXObjectÚ	ExtGStateÚ
setShadingÚ_shadingUsedÚsetColorSpaceÚ_colorsUsedrl  r%   r4   )rE   r<   r  r  Ú	resourcesr�   s         r   rU  zPDFPage.check_formats  sÑ  € à×,Ò,ØØŸ™ò  _¬°$·+±+ÀÐ2IÒ2rÈqÐQRÐSW×SbÑSbÐcg×cqÑcqÐNrò  3^ÐwxÐz{ð  ~B÷  ~Lñ  ~Lð  NR÷  N]ñ  N]ð  w^ó  *_ˆŒØ�{Š{ØˆD�Kô ˜dŸk™k¬)Ô4Ü& t§{¡{Ó3�”Ø�}Š}Ø—[‘[ˆFÙÜ *£�•ä“K�Ø×#Ò#Ü )× 0Ñ 0Ò T´oÄ|Ð5TÒ fÔYeÐXf�A”IØ"�”	Ø -�”Ø !�”Ø�~Š~Ü-Ó/ˆIà× Ñ Ô"Ø�~Š~Ø×"Ñ"Õ$à×$Ñ$Ô&Ø�}Š}à$(§M¡M�	Ô!Ø�~Š~Ø&*§n¡n�	Ô#Ø× Ñ  ×!2Ñ!2Ô3Ø×#Ñ# D×$4Ñ$4Ô5à&ˆDŒNØ�{Š{Ø—N‘NˆEØ"×,Ñ,¨UÓ3ˆD�Kð r   )r   r   r   r#   r~  r"   rè   rV  rÙ  rY  rW  rŠ  r‰  r  r�  r{   r“  r™  Ú_shadingsUsedrƒ  rƒ   ra   r�  r…  rU  r   r   r   rx  rx  I  s�   „ Ø#€Kð $%Ð Ø€KØ™G F›Oð €Lð÷ ‘“ð ð (×-Ñ-Ó/€HØ€IØ€JØ€FØ€IØ€KØ€HØ€KØ€MØ€Eò&ò!òò-ó*4r   rx  c                   ó   — e Zd Zy)ÚDuplicatePageLabelPageNr   r   r   r   r�  r�     r    r   r�  c                   ó4   — e Zd ZdZdZi ZdgZg Zd„ Zd„ Z	d„ Z
y)ÚPDFPageLabelsNr   ÚNumsc                 ó   — g | _         y rH   )ÚlabelsrQ   s    r   rƒ   zPDFPageLabels.__init__©  s	   € Øˆ�r   c                 ó>   — | j                   j                  ||f«       y)a¨   Adds a new PDFPageLabel to this catalog.
        The 'page' argument, an integer, is the page number in the PDF document
        with which the 'label' should be associated. Page numbering in the PDF
        starts at zero! Thus, to change the label on the first page, '0' should be
        provided as an argument, and to change the 6th page, '5' should be provided
        as the argument.

        The 'label' argument should be a PDFPageLabel instance, which describes the
        format of the labels starting on page 'page' in the PDF and continuing
        until the next encounter of a PDFPageLabel.

        The order in which labels are added is not important.
        N)r¢  r  )rE   r¹   Úlabels      r   ÚaddPageLabelzPDFPageLabels.addPageLabel¬  s   € ð 	�‰×Ñ˜D %˜=Õ)r   c                 óü  — 	 | j                   j                  «        g }| j                   D ]'  \  }}|j                  |«       |j                  |«       Œ) t        |«      | _
        t        j                  | |«      S # t        $ rx t        | j                   D �cg c]  }|d   ‘Œ	 nc c}w c}«      }t	        dt        t        |D �cg c]  }|j                  |«      dkD  sŒ|‘Œ nc c}w c}«      «      z  «       Y ŒÞw xY w)Nr   z-

!!!!! Duplicate PageLabel seen for pages %rr&   )r¢  r  r�  Úsortedr   r  ÚsetÚcountr  r÷  r   rk   r5   )rE   r<   r/   Útmpr¢  r¹   r¤  s          r   r5   zPDFPageLabels.format¼  så   € ð	AØ�K‰K×ÑÔð ˆØŸ;™;ò 	!‰KˆD�%Ø�M‰M˜$ÔØ�M‰M˜%Õ ð	!ô ˜VÓ$ˆŒ	Ü× Ñ   xÓ0Ð0øô &ò 	AÜ¨¯©Ö4 1˜!˜A›$Ñ4ùÔ4Ó5ˆCÜÐOÔRVÔWZÐgjÖ[}ÐbcÐnq×nwÑnwÐxyÓnzÐ{|Ón|Ò\]Ñ[}ùÔ[}ÓW~ÓRÑö  Að	Aús/   ‚A: Á:C;ÂB#
Â"!C;ÃC"ÃC"Ã!C;Ã:C;)r   r   r   Ú__comment__r"   rV  rY  rW  rƒ   r¥  r5   r   r   r   rŸ  rŸ  ¢  s,   „ Ø€KØ€KØ€LØ�H€MØ€Hòò*ó 1r   rŸ  c                   ó^   — e Zd ZdZdZi Zdj                  «       ZdZdZ	dZ
dZdZd	Zdd
„Zd„ Zy)ÚPDFPageLabelNr   zType S P Stz:ARABIC ROMAN_UPPER ROMAN_LOWER LETTERS_UPPER LETTERS_LOWERrL  rP  ÚrÚAr¤  c                 óÞ   — |rF|j                  «       | j                  v rt        | |j                  «       «      }t        |«      | _        |rt        |«      | _        |rt        |«      | _        yy)a+  
        A PDFPageLabel changes the style of page numbering as displayed in a PDF
        viewer. PDF page labels have nothing to do with 'physical' page numbers
        printed on a canvas, but instead influence the 'logical' page numbers
        displayed by PDF viewers. However, when using roman numerals (i, ii,
        iii...) or page prefixes for appendecies (A.1, A.2...) on the physical
        pages PDF page labels are necessary to change the logical page numbers
        displayed by the PDF viewer to match up with the physical numbers. A
        PDFPageLabel changes the properties of numbering at the page on which it
        appears (see the class 'PDFPageLabels' for specifying where a PDFPageLabel
        is associated) and all subsequent pages, until a new PDFPageLabel is
        encountered.

        The arguments to this initialiser determine the properties of all
        subsequent page labels. 'style' determines the numberings style, arabic,
        roman, letters; 'start' specifies the starting number; and 'prefix' any
        prefix to be applied to the page numbers. All these arguments can be left
        out or set to None.

        * style:

            - None:                       No numbering, can be used to display the prefix only.
            - PDFPageLabel.ARABIC:        Use arabic numbers: 1, 2, 3, 4...
            - PDFPageLabel.ROMAN_UPPER:   Use upper case roman numerals: I, II, III...
            - PDFPageLabel.ROMAN_LOWER:   Use lower case roman numerals: i, ii, iii...
            - PDFPageLabel.LETTERS_UPPER: Use upper case letters: A, B, C, D...
            - PDFPageLabel.LETTERS_LOWER: Use lower case letters: a, b, c, d...

        * start:

            -   An integer specifying the starting number for this PDFPageLabel. This
                can be used when numbering style changes to reset the page number back
                to one, ie from roman to arabic, or from arabic to appendecies. Can be
                any positive integer or None. I'm not sure what the effect of
                specifying None is, probably that page numbering continues with the
                current sequence, I'd have to check the spec to clarify though.

        * prefix:

            -   A string which is prefixed to the page numbers. Can be used to display
                appendecies in the format: A.1, A.2, ..., B.1, B.2, ... where a
                PDFPageLabel is used to set the properties for the first page of each
                appendix to restart the page numbering at one and set the prefix to the
                appropriate letter for current appendix. The prefix can also be used to
                display text only, if the 'style' is set to None. This can be used to
                display strings such as 'Front', 'Back', or 'Cover' for the covers on
                books.

        N)	ÚupperÚ__convertible__r£   rè   r  rh  ÚStrp   ÚP)rE   ÚstyleÚstartÚprefixs       r   rƒ   zPDFPageLabel.__init__×  sV   € ñd Ø�{‰{‹} × 4Ñ 4Ñ4¼gÀdÈ5Ï;É;Ë=Ó>Y°eÜ˜U“^ˆDŒFÙœI eÓ,�$”'ÙœI fÓ-�4•6ˆ6r   c                 ó8   — t         j                  r
t        «       ‚y)NF)r   ÚerrorOnDuplicatePageLabelPager�  )rE   Úoths     r   Ú__lt__zPDFPageLabel.__lt__  s   € Ü×2Ò2Ü(Ó*Ð*Ør   rü  )r   r   r   r#   r"   rV  rÙ  rY  r²  ÚARABICÚROMAN_UPPERÚROMAN_LOWERÚLETTERS_UPPERÚLETTERS_LOWERrƒ   r»  r   r   r   r­  r­  Ê  sH   „ Ø€KØ€KØ€LØ!×'Ñ'Ó)€MØR€Oà€FØ€KØ€KØ€MØ€Mó6.ópr   r­  c                 ó"  — t        «       }t        «       |_        | j                  }| j	                  |«      |_        t        g d¢«      |_        t        «       }|j                  «        |j                  «        ||_        |j                  |«       y )N)r   r   ry  iI  )rx  r  rŒ  r%   r4   rl  r÷  rT  rŽ  r‘  r�  r�  rÎ   )r<   r´  r�   rš  s       r   ÚtestpagerÂ    sm   € Ü‹	€AÜ“€A„JØ�N‰N€EØ×!Ñ! %Ó(€A„HÜÒ*Ó+€A„JÜ%Ó'€IØ×ÑÔØ×ÑÔØ€A„KØ	‡M�M�!Õr   z/
<<
  /Count
      0
  /Type
      /Outlines
>>c                   ó>   — e Zd ZdZej                  dd«      ZdZd„ Zy)rr   zTEST OUTLINE!r�  r&   c                 ó,   — t        | j                  «      S rH   )r0   rá  rI   s     r   r5   zPDFOutlines0.format.  s   € Ü˜Ÿ™Ó#Ð#r   N)	r   r   r   r#   ÚDUMMYOUTLINEr‹  rá  r"   r5   r   r   r   rr   rr   *  s#   „ Ø!€KØ×Ñ  dÓ+€DØ€Kó$r   rr   c                   ó6   — e Zd ZdZdxZxZxZxZxZxZ	xZ
Zd„ Zy)ÚOutlineEntryObjectzan entry in an outlineNc                 óà   — i }t        | j                  «      |d<   | j                  |d<   | j                  |d<   dD ]  }t	        | |«      }|€Œ|||<   Œ t        |«      }|j                  |«      S )NÚTitlerl  ÚDest)r8  ÚNextÚFirstÚLastru  )rp   rÉ  rl  rÊ  r£   rx   r5   )rE   r<   rL  rg  r  ÚPDs         r   r5   zOutlineEntryObject.format4  sw   € ØˆÜ˜tŸz™zÓ*ˆˆ'‰
Ø—k‘kˆˆ(‰Ø—I‘Iˆˆ&‰	Ø;ò 	ˆAÜ˜˜aÓ ˆAØ‰}Ø��!’ð	ô ˜1ÓˆØ�y‰y˜Ó"Ð"r   )r   r   r   rV   rÉ  rÊ  rl  r8  rË  rÌ  rÍ  ru  r5   r   r   r   rÇ  rÇ  1  s2   „ ÙØAEÐE€EÐEˆDÐE�6ÐE˜DÐE 4ÐE¨%ÐE°$¸ó
#r   rÇ  c                   óZ   — e Zd ZdZdxZZdZdZd„ Zdd„Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zdd„Zy)rs   aø  
    takes a recursive list of outline destinations like::

        out = PDFOutline1()
        out.setNames(canvas, # requires canvas for name resolution
        "chapter1dest",
        ("chapter2dest",
        ["chapter2section1dest",
        "chapter2section2dest",
        "chapter2conclusiondest"]
        ), # end of chapter2 description
        "chapter3dest",
        ("chapter4dest", ["c4s1", "c4s2"])
        )

    Higher layers may build this structure incrementally. KISS at base level.
    Nr   éÿÿÿÿc                 óJ   — i | _         i | _        g | _        g | _        i | _        y rH   )ÚdestinationnamestotitlesÚdestinationstotitlesÚ
levelstackÚ	buildtreeÚ	closedictrQ   s    r   rƒ   zPDFOutlines.__init__X  s'   € Ø(*ˆÔ%Ø$&ˆÔ!ØˆŒØˆŒØˆ�r   c                 óŽ  — |€|dk7  rt        d«      ‚t        |t        «      st        dt        |«      z  «      ‚|dk  rt        d«      ‚|€|}| j                  }| j
                  }| j                  }||kD  r8||dz   kD  rt        d|›d|›d	|›d
|›d�	«      ‚|dz   x}}|j                  g «       ||k  rT|d   }|d= |d   }	|	d   }
t        |
t        «      r|
\  }}t        dt        |
«      z   «      ‚|
}|}||f|	d<   |dz
  }||k  rŒT|€y|d   j                  |«       || j                  |<   |rd| j                  |<   || _        y)z/destinationname of None means "close the tree" Nr   zclose tree must have level of 0zlevel must be integer, got %sznegative levels not allowedr&   zcan't jump from outline level z
 to level z&, need intermediates (destinationname=z, title=r‚  rÐ  z cannot reset existing sections: )rº   r,   r:   r8   ÚcurrentlevelrÔ  rÕ  r  Útupler©   rÒ  rÖ  )rE   ÚdestinationnameÚlevelrò   ÚclosedrØ  ÚstackÚtreeÚcurrentÚpreviousÚlastinpreviousr�   Úsectionlists                r   ÚaddOutlineEntryzPDFOutlines.addOutlineEntry_  s•  € àÐ" u¨a¢xÜÐ>Ó?Ð?Ü˜%¤Ô$¬JÐ7VÔY]Ð^cÓYdÑ7dÓ,eÐ&eØ�Š7œ*Ð%BÓCÐCØˆ= /˜%Ø×(Ñ(ˆØ—‘ˆØ�~‰~ˆà�ÒØ�\ !‘^Ò#Ý ò  FRò  TYò  [jò  lqð  "ró  sð  sØ#/°¡>Ð1ˆE�LØ�L‰L˜ÔØ�LÒ à˜B‘iˆGØ�b�	Ø˜R‘yˆHØ% b™\ˆNÜ˜.¬Ô/Ø&4Ñ#��{Ü Ð!CÄdÈ>ÓFZÑ!ZÓ[Ð[à%�Ø%�Ø $ kÐ2�˜‘à'¨™>ˆLð �LÓ ð Ð" FØˆb‰	×Ñ˜Ô)Ø9>ˆ×%Ñ% oÑ6Ù°Q�4—>‘> /Ñ2Ø!ˆÕr   c                 ó   — || _         y rH   )Úmydestinations)rE   Údestinationtrees     r   ÚsetDestinationszPDFOutlines.setDestinations„  s
   € Ø-ˆÕr   c                 ó´   — i }t        d«      |d<   | j                  |d<   | j                  |d<   | j                  |d<   t	        |«      }|j                  |«      S )Nru   rA  ru  rÌ  rÍ  )rè   r©  ÚfirstÚlastrx   r5   ©rE   r<   rL  rÎ  s       r   r5   zPDFOutlines.format‡  sU   € àˆÜ˜JÓ'ˆˆ&‰	Ø—Z‘Zˆˆ'‰
Ø—Z‘Zˆˆ'‰
Ø—I‘Iˆˆ&‰	Ü˜1ÓˆØ�y‰y˜Ó"Ð"r   c                 óJ   — | j                  ||«      }| j                  |«       y rH   ©ÚtranslateNamesrç  ©rE   r¯   ÚnametreeÚdesttrees       r   ÚsetNameszPDFOutlines.setNames‘  s"   € Ø×&Ñ& v¨xÓ8ˆØ×Ñ˜XÕ&r   c                 óJ   — | j                  ||«      }| j                  |«       y)z1Explicit list so I don't need to do in the callerNrí  rï  s       r   ÚsetNameListzPDFOutlines.setNameList•  s"   € à×&Ñ& v¨xÓ8ˆØ×Ñ˜XÕ&r   c                 óð  — | j                   }| j                  }| j                  }t        |«      r_t	        |«      s|j                  d«      }|j                  |«      }|}||v r||   }n|||<   |||<   ||v rd||<   ||j                  |«      iS t        |«      rGg }|D ]#  }	|j                  | j                  ||	«      «       Œ% t        |t        «      rt        |«      S |S t        dt        |«      z  «      ‚)z=recursively translate tree of names into tree of destinationsr}  r&   z5in outline, destination name must be string: got a %s)rÒ  rÓ  rÖ  r   r
   rˆ  Ú_bookmarkReferencer   r  rî  r,   rÙ  r¨   r8   )
rE   r¯   ÚobjectrÒ  rÓ  rÖ  Údestinationrò   rš  Úos
             r   rî  zPDFOutlines.translateNamesš  s	  € à#'×#@Ñ#@Ð Ø#×8Ñ8ÐØ—N‘Nˆ	Ü�Œ=Ü˜VÔ$¨v¯}©}¸VÓ/D fØ ×3Ñ3°FÓ;ˆKØˆEØÐ1Ñ1Ø0°Ñ8‘à27Ð(¨Ñ/Ø05Ð  Ñ-Ø˜Ñ"Ø)*�	˜+Ñ&Ø˜F×5Ñ5°fÓ=Ð>Ð>Ü�Œ=ØˆAØò 9�Ø—‘˜×,Ñ,¨V°QÓ7Õ8ð9ä˜&¤Ô'Ü˜Q“x�ØˆHäÐOÔPTÐU[ÓP\Ñ\Ó]Ð]r   c                 óŒ  — | j                   €a| j                  r8| j                  d«       | j                  d   }| j                  ||«      | _         ndx| _        | _        d| _        d| _        yt        | j                   | j                  «      | _        | j                  || j                   d¬«      \  | _        | _        d| _        y)zPprepare all data structures required for save operation (create related objects)Nr   rÐ  r&   r  )
rå  rÔ  rã  rî  ré  rê  r©  r¶   rÖ  Úmaketree)rE   r<   r¯   Ú	destnamess       r   rJ   zPDFOutlines.prepareµ  sª   € à×ÑÐ&Ø�ŠØ×$Ñ$ TÔ*Ø ŸO™O¨AÑ.�	à&*×&9Ñ&9¸&À)Ó&L�Õ#à)-Ð-�”
˜TœYØ�”
Ø�”
Øô ˜4×.Ñ.°·±Ó?ˆŒ
Ø"&§-¡-°¸$×:MÑ:MÐXY -Ó"ZÑˆŒ�T”YØˆ�
r   c                 óò  — |rd}|j                  |j                  «      }n1| xj                  dz  c_        d| j                  z  }|€t        d«      ‚t	        |«      st        d«      ‚t        |«      }|dz
  }d x}x}	}
| j                  }| j                  }t        |«      D �]  }t        «       }||_
        |›d|›�}|j                  ||«      }|�||_        |
|_        |	€|}	|}
|}|}
||   }t        |t        «      r|}n_t        |t        «      r8	 |\  }}t        ||«      |_        | j#                  |||«      \  |_        |_        nt        dt)        |«      z  «      ‚	 t+        |j-                  «       «      \  \  }}||   |_        ||_        t        |t        «      s�Œ||v s�Œ|j                    |_        �Œ |	|
fS #  t        dt        |«      z  «      ‚xY w#  t        d	t/        |«      z   «      ‚xY w)
NÚOutliner&   z
Outline.%sz2non-top level outline elt parent must be specifiedz-destinationtree must be list or tuple, got %sú.z7destination tree elt tuple should have two elts, got %sz4destination tree elt should be dict or tuple, got %sz3bad outline leaf dictionary, should have one entry )r4   ru   r©  rº   r   r  rÒ  rÖ  r²  rÇ  rl  rË  r8  r,   rB  rÙ  ru  rû  rÌ  rÍ  r8   r  rX  r   rÉ  rÊ  )rE   r<   ræ  rl  r=   Ú	levelnameÚneltsÚ	lastindexÚlasteltÚfirstrefÚlastrefrÒ  rÖ  ÚindexÚeltobjÚeltnameÚeltrefÚeltÚleafdictÚsubsectionsrÉ  rÊ  s                         r   rû  zPDFOutlines.maketreeÉ  s  € ÙØ!ˆIØ×'Ñ'¨×(9Ñ(9Ó:‰Fà�JŠJ˜!‰O�JØ$ t§z¡zÑ1ˆIØˆ~Ü Ð!UÓVÐVÜ�_Ô%ÜÐLÓMÐMÜ�OÓ$ˆØ˜!‘Gˆ	Ø'+Ð+ˆÐ+�(˜WØ#'×#@Ñ#@Ð Ø—N‘Nˆ	Ü˜5“\ó $	-ˆEÜ'Ó)ˆFØ"ˆFŒMÚ!*©EÐ2ˆGØ×'Ñ'¨°Ó8ˆFàÐ"Ø%�”Ø%�”ØÐØ!�ØˆGØˆGØˆGØ! %Ñ(ˆCÜ˜#œdÔ#à‘Ü˜C¤Ô&ðkØ.1Ñ+�X˜{ô  % [°)Ó<�”Ø.2¯m©m¸HÀkÐSYÓ.ZÑ+�”˜v�{ä Ð!WÔZ^Ð_bÓZcÑ!cÓdÐdðeÜ"& x§~¡~Ó'7Ó"8‘‘�%˜ð 4°EÑ:ˆFŒLØˆFŒKÜ˜#œeÖ$¨°Ó):à &§¡˜}�–ðI$	-ðJ ˜'Ð"Ð"øðkÜ$Ð%^ÔadÐehÓaiÑ%iÓjÐjûðeÜ Ð!VÔW^Ð_bÓWcÑ!cÓdÐdús   ÄGÅ!GÇGÇG6)r   NNr´   )r   r   r   rV   rå  r¶   r&  rØ  rƒ   rã  rç  r5   rò  rô  rî  rJ   rû  r   r   r   rs   rs   @  sL   „ ñð& "Ð!€N�UØ€GØ€Lòó#"òJ.ò#ò'ò'ò
^ò6ô(5#r   rs   c                 óì   — t        | t        «      r*| \  }}t        |j                  «       «      \  \  }}|r||v ryt	        | «      r/g }| D ]  }|j                  t        ||«      «       Œ t        |«      S y)zButility for outline: recursively count leaves in a tuple/list treer&   )r,   rÙ  r  rX  r   r  r©  Úsum)rÞ  rÖ  r  r  rÉ  rÊ  Úcountsrt  s           r   r©  r©     su   € ä�$”uÔà"&Ñˆ�;Ü˜xŸ~™~Ó/Ó0‰‰ˆ%�Ù˜ Ñ*ØÜˆT„{àˆØò 	/ˆAØ�M‰Mœ%  9Ó-Õ.ð	/ä�6‹{ÐØr   z$ReportLab PDF Library - (opensource)c                   óD   — e Zd ZdZeZdZdZdZdZ	dZ
dZd„ Zd„ Zd	„ Zd
„ Zy)rv   zÌPDF documents can have basic information embedded, viewable from
    File | Document Info in Acrobat Reader.  If this is wrong, you get
    Postscript errors while printing, even though it does not print.Ú	anonymousÚuntitledÚunspecifiedr  Nc                 ó   — d| _         y )NÚFalse)ÚtrappedrQ   s    r   rƒ   zPDFInfo.__init__  ó	   € Øˆ�r   c                 óž   — | j                   | j                  | j                  | j                  fD ]  }|j	                  t        |«      «       Œ y rH   )rò   rõ   rù   r  rd   r   )rE   Ú	md5objectr/   s      r   r”   zPDFInfo.digest   s<   € à—*‘*˜dŸk™k¨4¯<©<¸¿¹ÐGò 	)ˆAØ×ÑœW Q›ZÕ(ñ	)r   c                 óà  — i }t        | j                  «      |d<   t        | j                  «      |d<   t        |j                  | j
                  ¬«      x|d<   |d<   t        | j                  «      |d<   t        | j                  «      |d<   t        | j                  «      |d<   t        | j                  «      |d	<   t        | j                  «      |d
<   t        |«      }|j                  |«      S )NrÉ  ÚAuthor)Útsr  ÚModDateÚCreationDateÚProducerÚCreatorÚSubjectÚKeywordsÚTrapped)rp   rò   rõ   ÚPDFDatere   r  r   rü   rù   r  rè   r  rx   r5   rë  s       r   r5   zPDFInfo.format%  sÅ   € ØˆÜ˜tŸz™zÓ*ˆˆ'‰
Ü §¡Ó,ˆˆ(‰Ü+2°h×6IÑ6IÐX\×XkÑXkÔ+lÐlˆˆ)‰�q˜Ñ(Ü! $§-¡-Ó0ˆˆ*‰Ü  §¡Ó.ˆˆ)‰Ü  §¡Ó.ˆˆ)‰Ü! $§-¡-Ó0ˆˆ*‰Ü˜tŸ|™|Ó,ˆˆ)‰ä˜1ÓˆØ�y‰y˜Ó"Ð"r   c                 ó„   — | j                  «       }| j                  j                  «       D ]  \  }}t        |||«       Œ |S )z'shallow copy - useful in pagecatchering)Ú	__klass__Ú__dict__rX  r{  )rE   r�   rŒ   r  s       r   rž  zPDFInfo.copy3  s?   € à—‘Ó ˆØ—M‘M×'Ñ'Ó)ò 	!‰DˆAˆqÜ�E˜1˜aÕ ð	!àˆr   )r   r   r   rV   rÿ   r   rü   rò   rõ   rù   r  r  rƒ   r”   r5   rž  r   r   r   rv   rv     sA   „ ñHð !€HØ€GØ€EØ€FØ€GØ€HØ€Nòò)ò
#ór   rv   c                   óN   — e Zd ZdZd ed«      fgZdZedz   Zdd„Zd„ Z	d„ Z
d	„ Zy
)Ú
Annotationzsuperclass for all annotations.rA  ÚAnnot)rA  ÚRectrŒ  rB  )ÚBorderÚCÚTÚMÚFÚHÚBSÚAAÚASÚPopupr´  ÚAPc                 óf   — |d   }t        |«      st        |«      |d<   t        |d   |«      |d<   |S )ú@transform dict args from python form to pdf string rep as neededr+  rŒ  )r   r÷  rp   )rE   Údrx  r+  s       r   ÚcvtdictzAnnotation.cvtdictA  s8   € à�‰yˆÜ�TŒ{Ü  ›ˆAˆf‰IÜ! ! J¡-°Ó7ˆˆ*‰Øˆr   c                 óŽ  — d|v r	|d   }|d= nd}i }| j                   D ]
  \  }}|||<   Œ |j                  |«       | j                  D ]  }||vsŒt        d|› d�«      ‚ | j	                  ||¬«      }| j
                  }|j                  «       D ]*  }||vsŒt        | j                  j                  ›d|›�«      ‚ t        |«      S )Nrx  r&   zkeyword argument z missing)rx  z  bad annotation dictionary name )
rZ  rd   Úrequiredrº   r:  Ú	permittedr‹   r¥   r   rx   )rE   Úkwrx  r9  r�   Úvalr=  s          r   ÚAnnotationDictzAnnotation.AnnotationDictH  sã   € Ø�r‰>Ø˜‘\ˆFØ�8‘àˆFØˆØŸ-™-ò 	‰JˆT�#ØˆAˆdŠGð	à	�‰�ŒØ—M‘Mò 	EˆDØ˜1Š}Ü Ð#4°T°F¸(Ð!CÓDÐDð	Eð �L‰L˜ &ˆLÓ)ˆØ—N‘Nˆ	Ø—F‘F“Hò 	jˆDØ˜9Ò$Ü È4Ï>É>×KbÓKbÑcgÐ!hÓiÐið	jô ˜QÓÐr   c                 ó   — t        d«      ‚)NzEDictString undefined for virtual superclass Annotation, must overload©rº   rQ   s    r   ÚDictzAnnotation.Dict[  s   € ÜÐ`ÓaÐar   c                 óD   — | j                  «       }|j                  |«      S rH   ©rC  r5   ©rE   r<   rL  s      r   r5   zAnnotation.format_  s   € Ø�I‰I‹KˆØ�x‰x˜Ó!Ð!r   N©r&   )r   r   r   rV   rè   rZ  r<  r=  r:  r@  rC  r5   r   r   r   r)  r)  ;  sB   „ Ù)Ø™ Ó)Ð+Ð,€HØ6€HØð Oñ O€Ióò ò&bó"r   r)  c                   ó6   — e Zd Zej                  dz   Zd„ Zd„ Zy)ÚFreeTextAnnotation)ÚDAc                 ó<   — || _         || _        || _        || _        y rH   )r+  rŒ  rJ  Úotherkw)rE   r+  rŒ  rJ  r>  s        r   rƒ   zFreeTextAnnotation.__init__e  s   € ØˆŒ	Ø ˆŒØˆŒØˆ�r   c                 óÄ   — i }|j                  | j                  «       | j                  |d<   | j                  |d<   | j                  |d<   d|d<    | j
                  di |¤ŽS )Nr+  rŒ  rJ  z	/FreeTextrB  r   )rd   rL  r+  rŒ  rJ  r@  ©rE   r9  s     r   rC  zFreeTextAnnotation.Dictj  s]   € ØˆØ	�‰�—‘ÔØ—I‘Iˆˆ&‰	ØŸ™ˆˆ*‰Ø—'‘'ˆˆ$‰Ø"ˆˆ)‰Ø"ˆt×"Ñ"Ñ' QÑ'Ð'r   N)r   r   r   r)  r=  rƒ   rC  r   r   r   rI  rI  c  s   „ Ø×$Ñ$ wÑ.€Iòó
(r   rI  c                   ó>   — e Zd Zej                  dz   Zdd„Zd„ Zd„ Zy)ÚLinkAnnotation)rÊ  r¯  ÚPAc                 óJ   — || _         || _        || _        || _        || _        y rH   )r,  r+  rŒ  ÚDestinationrL  )rE   r+  rŒ  rS  r,  r>  s         r   rƒ   zLinkAnnotation.__init__w  s&   € ØˆŒØˆŒ	Ø ˆŒØ&ˆÔØˆ�r   c                  ó   — y)Nz„
          << /Type /Annot /Subtype /Link /Rect [71 717 190 734] /Border [16 16 1]
             /Dest [23 0 R /Fit] >>
             r   rQ   s    r   ÚdummyDictStringzLinkAnnotation.dummyDictString~  s   € ðr   c                 óâ   — i }|j                  | j                  «       | j                  |d<   | j                  |d<   | j                  |d<   d|d<   | j
                  |d<    | j                  di |¤ŽS )Nr,  r+  rŒ  z/LinkrB  rÊ  r   )rd   rL  r,  r+  rŒ  rS  r@  rN  s     r   rC  zLinkAnnotation.Dict„  sl   € ØˆØ	�‰�—‘ÔØ—k‘kˆˆ(‰Ø—I‘Iˆˆ&‰	ØŸ™ˆˆ*‰Øˆˆ)‰Ø×$Ñ$ˆˆ&‰	Ø"ˆt×"Ñ"Ñ' QÑ'Ð'r   N)z[0 0 1])r   r   r   r)  r=  rƒ   rU  rC  r   r   r   rP  rP  s  s&   „ à×$Ñ$ð (ñ €Ióòó(r   rP  c                   óJ   — e Zd ZdZej
                  dz   Zg d¢fd„Zdd„Zd„ Zy)	ÚHighlightAnnotationa  
    HighlightAnnotation is an annotation that highlights the selected area.

    Rect is the mouseover area that will show the contents.

    QuadPoints is a list of points to highlight, you can have many groups of
    four QuadPoints to allow highlighting many lines.
    )Ú
QuadPoints)g�Âõ(\�ê?g{®Gázì?gffffffî?c                 óJ   — || _         || _        || _        || _        || _        y rH   )r+  rŒ  rL  rY  ÚColor)rE   r+  rŒ  rY  r[  r>  s         r   rƒ   zHighlightAnnotation.__init__™  s%   € ØˆŒ	Ø ˆŒØˆŒØ$ˆŒØˆ�
r   c                 ób  — |d   }|d   }|d   }t        |t        «      st        |«      j                  |d¬«      |d<   t        |t        «      st        |«      j                  |d¬«      |d<   t        |t        «      st        |«      j                  |d¬«      |d<   t	        |d   |«      |d<   |S )r8  r+  rY  r-  rª  r:  rŒ  )r,   r-   r÷  r5   rp   )rE   r9  rx  r+  ÚQuadr[  s         r   r:  zHighlightAnnotation.cvtdict   s«   € à�‰yˆØ�‰ˆØ�#‘ˆÜ˜$¤Ô$Ü  ›×-Ñ-¨a°TÐ-Ó:ˆAˆf‰IÜ˜$¤Ô$Ü& t›n×3Ñ3°A¸4Ð3Ó@ˆAˆl‰OÜ˜%¤Ô%Ü˜e“_×+Ñ+¨A°4Ð+Ó8ˆAˆc‰FÜ! ! J¡-°Ó8ˆˆ*‰Øˆr   c                 óâ   — i }|j                  | j                  «       | j                  |d<   | j                  |d<   d|d<   | j                  |d<   | j
                  |d<    | j                  di |¤ŽS )Nr+  rŒ  z
/HighlightrB  rY  r-  r   )rd   rL  r+  rŒ  rY  r[  r@  rN  s     r   rC  zHighlightAnnotation.Dict®  sj   € ØˆØ	�‰�—‘ÔØ—I‘Iˆˆ&‰	ØŸ™ˆˆ*‰Ø#ˆˆ)‰ØŸ/™/ˆˆ,‰Ø—‘ˆˆ#‰Ø"ˆt×"Ñ"Ñ' QÑ'Ð'r   NrG  )	r   r   r   rV   r)  r=  rƒ   r:  rC  r   r   r   rX  rX  Ž  s,   „ ñð ×$Ñ$Ð'7Ñ7€Iâ9Kó óó(r   rX  c                   ó6   — e Zd Zej                  dz   Zd„ Zd„ Zy)ÚTextAnnotation)ÚOpenÚNamec                 ó”   — t        j                  | ||f|j                  dd «      xs t        |«      |j                  dd«      dœ|¤Ž y )NrY  r[  )r   r   r   )rY  r[  )rX  rƒ   r¶  Úrect_to_quad)rE   r+  rŒ  r>  s       r   rƒ   zTextAnnotation.__init__»  sO   € Ü×$Ñ$ TØØð	ð Ÿ6™6 ,¨tÓ4ÒJ¼ÀTÓ8JØ—f‘f˜W WÓ-ñ		ð
 ó	r   c                 ó:   — t         j                  | «      }d|d<   |S )Nz/TextrB  )rX  rC  rN  s     r   rC  zTextAnnotation.DictÂ  s    € Ü×$Ñ$ TÓ*ˆØˆˆ)‰Øˆr   N)r   r   r   rX  r=  rƒ   rC  r   r   r   r`  r`  ¸  s!   „ Ø#×-Ñ-ð 1ñ €Iòór   r`  c           	      óF   — | d   | d   | d   | d   | d   | d   | d   | d   gS )z9
    Utility method to convert a Rect to a QuadPoint
    r   r&   r€  r'   r   )r+  s    r   rd  rd  Ç  s@   € ð �‰G�T˜!‘W˜d 1™g t¨A¡wØ�‰G�T˜!‘W˜d 1™g t¨A¡wð0ð 0r   c                   ó   — e Zd Zd„ Zd„ Zy)ÚPDFRectanglec                 óB   — ||||f\  | _         | _        | _        | _        y rH   )ÚllxÚllyÚulxÚury)rE   rj  rk  Úurxrm  s        r   rƒ   zPDFRectangle.__init__Ô  s!   € Ø14°c¸3ÀÐ1CÑ.ˆŒ�$”(˜DœH d¥hr   c                 óˆ   — t        | j                  | j                  | j                  | j                  g«      }t        ||«      S rH   )r÷  rj  rk  rl  rm  r5   )rE   r<   r¯  s      r   r5   zPDFRectangle.formatÖ  s2   € Ü�d—h‘h §¡¨$¯(©(°D·H±HÐ=Ó>ˆÜ�a˜Ó"Ð"r   Nr  r   r   r   rh  rh  Ó  s   „ òDó#r   rh  c                   ó    — e Zd Zdd„Zd„ Zd„ Zy)r$  Nc                 óL   — |€
t        «       }| j                  |«       || _        y rH   )r   Ú_initr  )rE   r  r  s      r   rƒ   zPDFDate.__init__Ü  s!   € Øˆ:Ü“ˆBØ�
‰
�2ŒØ*ˆÕr   c                 ój   — |j                   | _        |j                  | _        |j                  | _        y rH   )ÚYMDhmsÚdateÚdhhÚdmm)rE   r  s     r   rr  zPDFDate._initâ  s#   € Ø—I‘IˆŒ	Ø—6‘6ˆŒØ—6‘6ˆ�r   c                 ón   ‡ — ‰ j                   xs ˆ fd„}t        t         |‰ j                  Ž «      |«      S )Nc           	      óF   •— d| |||||‰j                   ‰j                  fz  S )Nz%D:%04d%02d%02d%02d%02d%02d%+03d'%02d')rv  rw  )ÚyyyyÚmmÚddÚhhÚmrm  rE   s         €r   ú<lambda>z PDFDate.format.<locals>.<lambda>é  s-   ø€ Ø;Ø  2 b¨¨1¨T¯X©X°d·h±hÐ?ñ@ð r   )r  r5   rp   ru  )rE   r–   Údfmts   `  r   r5   zPDFDate.formatç  s:   ø€ Ø×!Ñ!ò Aó@ð 	ô ”i¡ d§i¡iÐ 0Ó1°3Ó7Ð7r   rÈ  )r   r   r   rƒ   rr  r5   r   r   r   r$  r$  Ú  s   „ ó+òó
8r   r$  c                   ó^   — e Zd ZdZdxZxZZd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zy)rS  aM  

    not a PDFObject!  This is a placeholder that can delegates
    to a pdf object only after it has been defined by the methods
    below.

    EG a Destination can refer to Appendix A before it has been
    defined, but only if Appendix A is explicitly noted as a destination
    and resolved before the document is generated...

    For example the following sequence causes resolution before doc generation.
        d = Destination()
        d.fit() # or other format defining method call
        d.setPage(p)
        (at present setPageRef is called on generation of the page).
    Nc                 ó.   — || _         d x| _        | _        y rH   )r�   Úfmtr¹   rH  s     r   rƒ   zDestination.__init__   s   € ØˆŒ	Ø#Ð#ˆŒ�4•9r   c                 óÊ   — | j                   }|€t        d| j                  z  «      ‚| j                  }|€t        d| j                  z  «      ‚||_        |j	                  |«      S )NzYformat not resolved, probably missing URL scheme or undefined destination target for '%s'zTPage not bound, probably missing URL scheme or undefined destination target for '%s')rƒ  rº   r�   r¹   r5   )rE   r<   r>   Úps       r   r5   zDestination.format  s�   € Ø�H‰HˆØˆ9œJð  (Cð  FJ÷  FOñ  FOñ  (Oó  Pð  PØ�I‰IˆØˆ9œJÐ'}ð  AE÷  AJñ  AJñ  (Jó  Kð  KØˆŒØ�x‰x˜Ó!Ð!r   c                 ó*   — t        d |||«      | _        y rH   )ÚPDFDestinationXYZrƒ  )rE   ÚleftÚtopÚzooms       r   ÚxyzzDestination.xyz
  s   € Ü$ T¨4°°dÓ;ˆ�r   c                 ó$   — t        d «      | _        y rH   )ÚPDFDestinationFitrƒ  rQ   s    r   ÚfitzDestination.fit  s   € Ü$ TÓ*ˆ�r   c                 ó$   — t        d «      | _        y rH   )ÚPDFDestinationFitBrƒ  rQ   s    r   ÚfitbzDestination.fitb  s   € Ü% dÓ+ˆ�r   c                 ó&   — t        d |«      | _        y rH   )ÚPDFDestinationFitHrƒ  ©rE   r‰  s     r   ÚfithzDestination.fith  s   € Ü% d¨3Ó/ˆ�r   c                 ó&   — t        d |«      | _        y rH   )ÚPDFDestinationFitVrƒ  ©rE   rˆ  s     r   ÚfitvzDestination.fitv  s   € Ü% d¨DÓ1ˆ�r   c                 ó&   — t        d |«      | _        y rH   )ÚPDFDestinationFitBHrƒ  r”  s     r   ÚfitbhzDestination.fitbh  s   € Ü& t¨SÓ1ˆ�r   c                 ó&   — t        d |«      | _        y rH   )ÚPDFDestinationFitBVrƒ  r˜  s     r   ÚfitbvzDestination.fitbv  s   € Ü& t¨TÓ2ˆ�r   c                 ó,   — t        d ||||«      | _        y rH   )ÚPDFDestinationFitRrƒ  )rE   rˆ  ÚbottomÚrightr‰  s        r   ÚfitrzDestination.fitr  s   € Ü% d¨D°&¸%ÀÓEˆ�r   c                 ó   — || _         y rH   ©r¹   rr  s     r   ÚsetPagezDestination.setPage  r  r   )r   r   r   rV   Úrepresentationr5   r¹   rƒ   r‹  rŽ  r‘  r•  r™  rœ  rŸ  r¤  r§  r   r   r   rS  rS  î  sP   „ ñð  &*Ð)€NÐ)�V˜dò$ò"ò<ò+ò,ò0ò2ò2ò3òFór   rS  c                   ó   — e Zd ZdZd„ Zd„ Zy)r‡  ÚXYZc                 ó<   — || _         || _        || _        || _        y rH   )r¹   r‰  rŠ  rˆ  )rE   r¹   rˆ  r‰  rŠ  s        r   rƒ   zPDFDestinationXYZ.__init__   s   € ØˆŒ	ØˆŒØˆŒ	Øˆ�	r   c                 óÒ   — |j                  | j                  «      }t        |t        | j                  «      | j
                  | j                  | j                  g«      }t        ||«      S rH   )	r4   r¹   r÷  rè   Útypenamerˆ  r‰  rŠ  r5   ©rE   r<   Úpagerefr¯  s       r   r5   zPDFDestinationXYZ.format%  sM   € Ø×$Ñ$ T§Y¡YÓ/ˆÜ˜¤¨¯©Ó!7¸¿¹ÀDÇHÁHÈdÏiÉiÐYÓ[ˆÜ�a˜Ó"Ð"r   N©r   r   r   r­  rƒ   r5   r   r   r   r‡  r‡    s   „ Ø€Hòó
#r   r‡  c                   ó   — e Zd ZdZd„ Zd„ Zy)r�  ÚFitc                 ó   — || _         y rH   r¦  rr  s     r   rƒ   zPDFDestinationFit.__init__,  r  r   c                 ó�   — |j                  | j                  «      }t        |t        | j                  «      g«      }t        ||«      S rH   )r4   r¹   r÷  rè   r­  r5   r®  s       r   r5   zPDFDestinationFit.format.  s;   € Ø×$Ñ$ T§Y¡YÓ/ˆÜ˜¤¨¯©Ó!7Ð9Ó;ˆÜ�a˜Ó"Ð"r   Nr°  r   r   r   r�  r�  *  s   „ Ø€Hòó#r   r�  c                   ó   — e Zd ZdZy)r�  ÚFitBN©r   r   r   r­  r   r   r   r�  r�  3  s   „ Ø�Hr   r�  c                   ó   — e Zd ZdZd„ Zd„ Zy)r“  ÚFitHc                 ó    — || _         || _        y rH   )r¹   r‰  )rE   r¹   r‰  s      r   rƒ   zPDFDestinationFitH.__init__8  s   € ØˆŒ	 3˜$�(r   c                 ó¦   — |j                  | j                  «      }t        |t        | j                  «      | j
                  g«      }t        ||«      S rH   )r4   r¹   r÷  rè   r­  r‰  r5   r®  s       r   r5   zPDFDestinationFitH.format:  sA   € Ø×$Ñ$ T§Y¡YÓ/ˆÜ˜¤¨¯©Ó!7¸¿¹ÐCÓEˆÜ�a˜Ó"Ð"r   Nr°  r   r   r   r“  r“  6  s   „ Ø€Hò'ó#r   r“  c                   ó   — e Zd ZdZy)r›  ÚFitBHNr·  r   r   r   r›  r›  ?  ó   „ Ø�Hr   r›  c                   ó   — e Zd ZdZd„ Zd„ Zy)r—  ÚFitVc                 ó    — || _         || _        y rH   )r¹   rˆ  )rE   r¹   rˆ  s      r   rƒ   zPDFDestinationFitV.__init__D  s   € ØˆŒ	 D˜$�)r   c                 ó¦   — |j                  | j                  «      }t        |t        | j                  «      | j
                  g«      }t        ||«      S rH   )r4   r¹   r÷  rè   r­  rˆ  r5   r®  s       r   r5   zPDFDestinationFitV.formatF  sA   € Ø×$Ñ$ T§Y¡YÓ/ˆÜ˜¤¨¯©Ó!7¸¿¹ÐDÓFˆÜ�a˜Ó"Ð"r   Nr°  r   r   r   r—  r—  B  s   „ Ø€Hò)ó#r   r—  c                   ó   — e Zd ZdZy)rž  ÚFitBVNr·  r   r   r   rž  rž  K  r¾  r   rž  c                   ó   — e Zd ZdZd„ Zd„ Zy)r¡  ÚFitRc                 óJ   — || _         || _        || _        || _        || _        y rH   )r¹   rˆ  r¢  r£  r‰  )rE   r¹   rˆ  r¢  r£  r‰  s         r   rƒ   zPDFDestinationFitR.__init__P  s$   € ØˆŒ	 D˜$œ)°f¨$¬+È¸d¼jÐY\ÐPTÕPXr   c                 óè   — |j                  | j                  «      }t        |t        | j                  «      | j
                  | j                  | j                  | j                  g«      }t        ||«      S rH   )
r4   r¹   r÷  rè   r­  rˆ  r¢  r£  r‰  r5   r®  s       r   r5   zPDFDestinationFitR.formatR  sY   € Ø×$Ñ$ T§Y¡YÓ/ˆÜ˜¤¨¯©Ó!7¸¿¹ÀDÇKÁKÐQU×Q[ÑQ[Ð]a×]eÑ]eÐfÓhˆÜ�a˜Ó"Ð"r   Nr°  r   r   r   r¡  r¡  N  s   „ Ø€Hò]ó#r   r¡  c                   ó¢   — e Zd ZdZd„ Zdj                  «       D � ��cg c]  }t        |«      ‘Œ c}}} ZdZd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zyc c}}} w )rŽ  z7each element *could* be reset to a reference if desiredc           	      ó¶   — | j                   D ]  }t        | ||j                  |i «      «       Œ! | j                  «        d|v r|j                  d«      | _        y y ©NÚProcSet)Údict_attributesr{  r¶  r’  rÌ  )rE   ÚkwdsrO  s      r   rƒ   zPDFResourceDictionary.__init__]  sV   € Ø×%Ñ%ò 	+ˆAÜ�D˜˜4Ÿ8™8 A b›>Õ*ð	+ð 	�‰ÔØ˜ÑØŸ(™( 9Ó-ˆD�Lð r   zPDF Text ImageB ImageC ImageI)Ú
ColorSpacer”  r•  ÚFontÚPatternÚ
PropertiesÚShadingc                 ó&   — | j                   | _        y rH   ©ÚstdprocsrÌ  rQ   s    r   r‘  zPDFResourceDictionary.allProcsg  s   € à—}‘}ˆ�r   c                 ó,   — | j                   d d | _        y )Nr€  rÕ  rQ   s    r   r’  z PDFResourceDictionary.basicProcsk  s   € Ø—}‘} R aÐ(ˆ�r   c                 ó,   — t        t        «      | _        y rH   )rË   r$   rÐ  rQ   s    r   r�  z PDFResourceDictionary.basicFontsn  s   € Ü&¤zÓ2ˆ�	r   c                 ód   — |j                  «       D ]  \  }}t        |«      | j                  |<   Œ y rH   )rX  rË   rÏ  )rE   Ú
colorsUsedrn  rm  s       r   r˜  z#PDFResourceDictionary.setColorSpaceq  s1   € Ø×#Ñ#Ó%ò 	7‰CˆAˆaÜ!3°AÓ!6ˆD�O‰O˜AÒñ	7r   c                 ód   — |j                  «       D ]  \  }}t        |«      | j                  |<   Œ y rH   )rX  rË   rÓ  )rE   ÚshadingUsedrn  rm  s       r   r–  z PDFResourceDictionary.setShadingu  s0   € Ø×$Ñ$Ó&ò 	4‰CˆAˆaÜ0°Ó3ˆD�L‰L˜ŠOñ	4r   c                 ó"  — i }| j                   D ]7  }t        | |«      }t        |t        «      r|sŒ"t	        |«      }|||<   Œ3|||<   Œ9 | j
                  }d}t        |«      r|rt        |«      }|||<   n|||<   t	        |«      }t        ||«      S rË  )	rÍ  r£   r,   rB  rx   rÌ  r   r÷  r5   )rE   r<   rL  Údnamer  Údvr‚   s          r   r5   zPDFResourceDictionary.formaty  s�   € ØˆØ×)Ñ)ò 	ˆEÜ˜˜eÓ$ˆAÜ˜!œDÔ!ÚÜ& qÓ)�BØ!�A�e’Hà��%’ð	ð �L‰LˆØˆÜ�Œ8ÙÜ˜a“[�Ø��%’àˆAˆe‰HÜ˜1ÓˆÜ�b˜(Ó#Ð#r   N)r   r   r   rV   rƒ   rÙ  rè   rÖ  rÍ  r‘  r’  r�  r˜  r–  r5   )Ú.0rm  rè   s   000r   rŽ  rŽ  [  sV   „ ÙAò.ð %D×$IÑ$IÓ$K×LÐL˜q”˜•
ÔL€HØh€Oò%ò)ò3ò7ò4ó$ùô+ Ms   žA
rŽ  c                   ób   — e Zd ZdZdZdj                  «       ZdZdZdj                  «       Z	d„ Z
y)	ÚPDFType1Fontz"no init: set attributes explicitlyr&   zType Subtype BaseFont NamerÐ  ÚType1z;FirstChar LastChar Widths Encoding ToUnicode FontDescriptorc                 ó  — i }| j                   D ])  }t        | |«      sŒt        | |«      }t        |«      ||<   Œ+ | j                  D ]   }t        | |«      sŒt        | |«      }|||<   Œ" t        |«      }|j                  |«      S rH   )Úname_attributesr3   r£   rè   Úlocal_attributesrx   r5   )rE   r<   rL  r�   rê   rÎ  s         r   r5   zPDFType1Font.format�  s�   € ØˆØ×(Ñ(ò 	)ˆDÜ�t˜TÕ"Ü  dÓ+�Ü! %›.��$’ð	)ð ×)Ñ)ò 	 ˆDÜ�t˜TÕ"Ü  dÓ+�Ø��$’ð	 ô
 ˜1ÓˆØ�y‰y˜Ó"Ð"r   N)r   r   r   rV   r"   rÙ  rå  rA  rB  ræ  r5   r   r   r   râ  râ  ”  s6   „ Ù,Ø€Kà2×8Ñ8Ó:€OØ€DØ€GàT×ZÑZÓ\Ðó#r   râ  c                   ó   — e Zd ZdZy)ÚPDFTrueTypeFontÚTrueTypeN)r   r   r   rB  r   r   r   rè  rè  ®  s   „ Ø�Gr   rè  c                   óH   — e Zd ZdxZxZxZxZxZxZZ	dZ
dZd„ Zd„ Zd„ Zd„ Zy)r>  Nr&   r   c                 ó<   — || _         || _        || _        || _        y rH   )ÚlowerxÚloweryÚupperxÚuppery)rE   rì  rí  rî  rï  s        r   rƒ   zPDFFormXObject.__init__Ø  s   € àˆŒ¨&˜dœk¸f°$´+ÐRXÀdÅkr   c                 ó\   — t        |«      rdj                  |«      }t        |«      | _        y )Nr�  )r   r—  r0   r  )rE   r±   s     r   ÚsetStreamListzPDFFormXObject.setStreamListÜ  s!   € Ü�Œ;Ø—9‘9˜T“?ˆDÜ “oˆ�r   c                 ó´   — | j                   rt        | j                   j                  «      S | j                  | j                  | j
                  | j                  gS )z4get the declared bounding box for the form as a list)ÚBBoxr  rC  rì  rí  rî  rï  rQ   s    r   r?  zPDFFormXObject.BBoxListá  s=   € à�9Š9Ü˜Ÿ	™	×*Ñ*Ó+Ð+à—K‘K §¡¨d¯k©k¸4¿;¹;ÐGÐGr   c                 ó  — | j                   xs7 t        | j                  | j                  | j                  | j
                  g«      | _         | j                  xs t        g d¢«      | _        | j                  sd | _        nt        d«      ‚| j                  s=| j                  }|st        «       | _	        nt        «       }||_        d|_        || _	        | j                  skt!        «       }|j#                  «        | j$                  r|j'                  «        n|j)                  «        | j*                  r| j*                  |_        || _        | j.                  r6t0        j2                  xr t4        t6        gxs t6        g| j                  _        | j                  j:                  }t=        d«      |d<   t=        d«      |d<   d|d	<   | j                   |d
<   | j                  |d<   | j                  |d<   | j                  j?                  |«      S )N)r&   r   r   r&   r   r   z-annotations don't work in PDFFormXObjects yetzxobject form streamr”  rA  ÚFormrB  r&   ÚFormTyperó  ÚMatrixr�  ) ró  r÷  rì  rí  rî  rï  r÷  r‹  rº   rŒ  r  r  r@  rñ  r#   r�  rŽ  r�  r�  r‘  r’  r“  r”  r{   r   r   r  r  rò  rA  rè   r5   )rE   r<   r  r  rš  Úsdicts         r   r5   zPDFFormXObject.formatè  s‘  € Ø—I‘IÒ_¤¨4¯;©;¸¿¹ÀTÇ[Á[ÐRV×R]ÑR]Ð*^Ó!_ˆŒ	Ø—k‘kÒA¤XÒ.@Ó%AˆŒØ�{Š{ØˆD�Kô ÐLÓMÐMØ�}Š}Ø—[‘[ˆFÙÜ *£�•ä“K�Ø"�”	à 5�”Ø !�”Ø�~Š~Ü-Ó/ˆIà× Ñ Ô"Ø�~Š~Ø×"Ñ"Õ$à×$Ñ$Ô&Ø�}Š}à$(§M¡M�	Ô!Ø$ˆDŒNØ×ÒÜ$-×$4Ñ$4Ò$X¼/Ì<Ð9XÒ$jÔ]iÐ\jˆD�M‰MÔ!Ø—‘×(Ñ(ˆÜ 	Ó*ˆˆf‰Ü" 6›?ˆˆiÑØˆˆjÑØŸ	™	ˆˆf‰ØŸ+™+ˆˆh‰Ø!Ÿ^™^ˆˆkÑØ�}‰}×#Ñ# HÓ-Ð-r   )r   r   r   r“  r‹  ró  r÷  rŒ  r  r�  r�  r{   rƒ   rñ  r?  r5   r   r   r   r>  r>  Ñ  sI   „ ð IMÐL€HÐLˆvÐL˜ÐL˜vÐL¨ÐL°6¸IØ€IØ€KòYò&ò
Hó'.r   r>  c                   ó   — e Zd ZdZdd„Zd„ Zy)ÚPDFPostScriptXObjectz,For embedding PD (e.g. tray commands) in PDFNc                 ó   — || _         y rH   ©rñ  )rE   rñ  s     r   rƒ   zPDFPostScriptXObject.__init__  r  r   c                 ó¸   — t        «       }| j                  |_        d|_        |j                  }t	        d«      |d<   t	        d«      |d<   |j                  |«      S )Nzxobject postscript streamr”  rA  ÚPSrB  )r@  rñ  r#   rA  rè   r5   )rE   r<   r  rø  s       r   r5   zPDFPostScriptXObject.format  sO   € Ü‹KˆØ—L‘LˆŒ	Ø3ˆŒØ—‘ˆÜ 	Ó*ˆˆf‰Ü" 4›=ˆˆiÑØ�x‰x˜Ó!Ð!r   rH   )r   r   r   rV   rƒ   r5   r   r   r   rú  rú    s   „ Ù2óó"r   rú  Ú	DeviceRGBÚ
DeviceGrayÚ
DeviceCMYK)ÚRGBrš  ÚCMYKc                   ó8   — e Zd Zd	d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)
ÚPDFImageXObjectNc                 ó4  — || _         d| _        d| _        d| _        d| _        t
        j                  xr dxs d| _        d| _        || _	        |€y t        |d«      r| j                  |«       y d	d l}|j                  j                  |«      d   j                  «       }t!        |«      }	 |d
v r| j#                  |«      s3t
        j                  r| j%                  |«       n| j'                  |«       |j)                  «        y # |j)                  «        w xY w)Né   é   r&   r   )ré  r   zß
            003B00 002700 002480 0E4940 114920 14B220 3CB650
            75FE88 17FF8C 175F14 1C07E2 3803C4 703182 F8EDFC
            B2BBC2 BB6F84 31BFC2 18EA3C 0E3E00 07FC00 03F800
            1E1800 1FF800>
            Újpeg_fhr   )z.jpgz.jpeg)r�   ÚwidthÚheightÚbitsPerComponentÚ
colorSpacer   r   Ú_filtersÚstreamContentÚmaskr3   ÚloadImageFromSRCr¬   rG  ÚsplitextÚlowerr   ÚloadImageFromJPEGÚloadImageFromA85ÚloadImageFromRawr«   )rE   r�   Úsourcer  r¬   ÚextÚsrcs          r   rƒ   zPDFImageXObject.__init__&  sõ   € ØˆŒ	ØˆŒ
ØˆŒØ !ˆÔØ&ˆŒÜ!×(Ñ(Ò?Ð-?ÒEÀ2ˆŒðˆÔð ˆŒ	àˆ>ØÜ�V˜IÔ&Ø×!Ñ! &Õ)ó Ø—'‘'×"Ñ" 6Ó*¨1Ñ-×3Ñ3Ó5ˆCÜ Ó'ˆCðØÐ/Ñ/°D×4JÑ4JÈ3Ô4OÜ ×'Ò'Ø×-Ñ-¨cÕ2à×-Ñ-¨cÔ2à—	‘	•ø�—	‘	•ús   Â,AD ÄDc                 óæ  — g }t        j                  ||d¬«      }|s| j                  |d   «      S |D �cg c]  }|j                  «       ‘Œ }}|d   j	                  «       }t        |d   «      t        |d   «      c| _        | _        dddd	œ|d
      | _        d| _	        d| _
        |r| j                  |d   «       n| j                  dk(  rd | _        dj                  |dd «      | _        y c c}w )NT©ÚIMGÚ
detectJpegr   r&   r'   rÿ  r   r  ©z/RGBz/Gz/CMYKé   é   ©ré  rÜ  rz  r  rÐ  )r   ÚmakeA85Imager  rÿ  rÙ  r:   r
  r  r  r  r  Ú_checkTransparencyr  r—  r  )rE   r  r  Ú	imagedatarm  Úwordss         r   r  z PDFImageXObject.loadImageFromA85G  sé   € ØˆÜ×)Ñ)¨&°SÀDÔIˆ	ÙØ×(Ñ(¨¨Q©Ó0Ð0Ø(1Ö2 1�Q—W‘W•YÐ2ˆ	Ð2Ø˜!‘×"Ñ"Ó$ˆÜ#& u¨Q¡x£=´°U¸1±X³ÐˆŒ
�D”KØ"-°LÈ,ÑWÐX]Ð^_ÑX`ÑaˆŒØ !ˆÔØ5ˆŒÙ�×'Ñ'¨¨A©Õ/Ø�Y‰Y˜Ò¨D ¤	ØŸW™W Y¨q° _Ó5ˆÕùò 3s   µC.c                 óÜ  — 	 	 t        j                  |«      }|j                  d«       	 |d   |d   c| _        | _        d| _        |d   dk(  rd| _        n|d   dk(  rd| _        nd	| _        d| _        |j                  «       | _	        t        j                  r)t        | j                  «      | _	        d
| _        d | _        yd| _        d | _        y# |j                  d«       w xY w#  Y yxY w)Nr   Fr&   r   r€  r   r'   rÿ  r  )ré  Ú	DCTDecode)r'  T)r   ÚreadJPEGInfoÚseekr
  r  r  r  Ú_dotransrN  r  r   r   r   r  r  )rE   Ú	imageFilerR   s      r   r  z!PDFImageXObject.loadImageFromJPEGV  sæ   € ð	ð"Ü×,Ñ,¨YÓ7�à—‘˜qÕ!ð #' q¡'¨4°©7ÐˆŒ
�D”KØ !ˆÔØ�‰7�aŠ<Ø*ˆD�OØ�!‰W˜Š\Ø)ˆD�Oà*ˆDŒOØˆDŒMØ&Ÿ^™^Ó-ˆÔÜ×ÒÜ!2°4×3EÑ3EÓ!FˆDÔØ7ˆDŒMð ˆŒ	Øð )ˆDŒMØˆŒ	Øøð' —‘˜qÕ!ûð	Ùús   ƒC ˜C' ÃC$Ã$C' Ã'C+c                 ó   — g }t        j                  ||d¬«      }|s| j                  |d   «      S |d   j                  «       }t	        |d   «      | _        t	        |d   «      | _        dddd	œ|d
      | _        d| _        d| _	        |r| j                  |d   «       n| j                  dk(  rd | _        dj                  |dd «      | _        y )NTr  r   r&   r'   rÿ  r   r  r  r  r   ©rÜ  rz  r   rÐ  )r   ÚmakeRawImager  rÙ  r:   r
  r  r  r  r  r#  r  r—  r  )rE   r  r  r$  r%  s        r   r  z PDFImageXObject.loadImageFromRawp  sÉ   € ØˆÜ×)Ñ)¨&°SÀDÔIˆ	ÙØ×(Ñ(¨¨Q©Ó0Ð0Ø˜!‘×"Ñ"Ó$ˆÜ˜˜q™“]ˆŒ
Ü˜% ™(“mˆŒØ"-°LÈ,ÑWÐX]Ð^_ÑX`ÑaˆŒØ !ˆÔØ&ˆŒÙ�×'Ñ'¨¨A©Õ/Ø�Y‰Y˜Ò¨D ¤	Ø ŸX™X i°°" oÓ6ˆÕr   c                 ó   — | j                   dk(  rŸ|j                  rYd | _         t        t        |j                  j	                  «       «      |j                  d ¬«      | _        ddg| j
                  _        y |j                  «       }|r |d   |d   |d   |d   |d   |d   f| _         y d | _         y t        | j                   d«      r:| j                   j                  «       }|d   |d   |d   |d   |d   |d   f| _         y y )Nrz  )r  r   r&   r€  Úrgb)
r  Ú_dataAr  r   Ú
getRGBDataÚ_smaskÚ_decodeÚgetTransparentr3   r0  )rE   ÚimÚtcrO  s       r   r#  z"PDFImageXObject._checkTransparency  sè   € Ø�9‰9�fÒØ�yŠyØ �”	Ü-¬i¸¿	¹	×8LÑ8LÓ8NÓ.OÐPR×PYÑPYÐ_cÔd�”Ø'(¨ e�—‘Õ#à×&Ñ&Ó(�ÙØ!# A¡¨¨1©¨r°!©u°b¸±e¸RÀ¹UÀBÀqÁEÐ J�D•Ià $�D•IÜ�T—Y‘Y˜uÔ%Ø—	‘	—‘“ˆAØ˜!™˜Q˜q™T ! A¡$ q¨¡t¨A¨a©D°°1±Ð5ˆD�Ið &r   c                 ó¬  — |j                  «       }|r| j                  |«       y|j                  «       \  | _        | _        |j                  «       }t        j                  |«      | _        t        j                  r"t        | j                  «      | _        d| _        nd| _        t        |j                     | _        d| _        | j#                  |«       y)z%Extracts the stream, width and heightr!  r-  r   N)r	  r  ÚgetSizer
  r  r2  rÞ  rß  r  r   r   r   r  Ú_mode2CSri  r  r  r#  )rE   r6  Úfpr’   s       r   r  z PDFImageXObject.loadImageFromSRC�  sž   € à�Z‰Z‹\ˆÙØ×"Ñ" 2Õ&à&(§j¡j£lÑ#ˆDŒJ˜œØ—-‘-“/ˆCä!%§¡¨sÓ!3ˆDÔÜ×ÒÜ%6°t×7IÑ7IÓ%J�Ô"Ø =�•à .�”Ü% b§g¡gÑ.ˆDŒOØ$%ˆDÔ!Ø×#Ñ# BÕ'r   c                 óÊ  — t        | j                  ¬«      }|j                  }t        d«      |d<   t        d«      |d<   | j                  |d<   | j
                  |d<   | j                  |d<   t        | j                  «      |d	<   | j                  d
k(  rt        | dd«      rt        g d¢«      |d<   n%t        | dd «      rt        | j                  «      |d<   t        t        t        | j                  «      «      |d<   t        | j                  «      |d<   | j                  rt        | j                  «      |d<   t        | dd «      r| j                  |d<   |j!                  |«      S )Nrü  r”  rA  ÚImagerB  ÚWidthÚHeightÚBitsPerComponentrÏ  r  r*  r   )r&   r   r&   r   r&   r   r&   r   ÚDecoder4  rô  rõ  ÚMaskÚsmaskÚSMask)r@  r  rA  rè   r
  r  r  r  r£   r÷  r4  r½  r  r  r  rC  r5   )rE   r<   r  rB  s       r   r5   zPDFImageXObject.format¢  s%  € Ü × 2Ñ 2Ô3ˆØ�|‰|ˆÜ˜yÓ)ˆˆV‰Ü! 'Ó*ˆˆY‰ØŸ
™
ˆˆW‰ØŸ™ˆˆX‰Ø#'×#8Ñ#8ˆÐÑ Ü$ T§_¡_Ó5ˆˆ\ÑØ�?‰?˜LÒ(¬W°T¸*ÀQÔ-GÜ%Ò&7Ó8ˆD�ŠNÜ�T˜) DÔ)Ü% d§l¡lÓ3ˆD�‰NÜ!¤#¤g¨d¯m©mÓ"<Ó=ˆˆX‰Ü˜T×/Ñ/Ó0ˆˆX‰Ø�9Š9¤X¨d¯i©iÓ%8�d˜6‘lÜ�4˜ Ô%°t·z±z t¨G¡}Ø�x‰x˜Ó!Ð!r   rÈ  )
r   r   r   rƒ   r  r  r  r#  r  r5   r   r   r   r  r     s&   „ óòB6òò47ò6ò (ó&"r   r  c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ré   c                 óÖ   — ddl m} t        ||«      s"t        d| j                  j
                  z  «      ‚|j                  s"t        d| j                  j
                  z  «      ‚|| _        y )Nr   )Ú	CMYKColorz%s needs a CMYKColor argumentz-%s needs a CMYKColor argument with a spotName)Úreportlab.lib.colorsrG  r,   rº   r¥   r   râ   rë   )rE   rë   rG  s      r   rƒ   zPDFSeparationCMYKColor.__init__¶  sS   € Ý2Ü˜$˜yÔ)ÜÐ<¸t¿~¹~×?VÑ?VÑVÓWÐWØ—’ÜÐLÈtÏ~É~×OfÑOfÑfÓgÐgØˆ�	r   c                 óš  — g j                   }t        | j                  j                  «       «      D ]|  \  }}t        |«      }|dk(  r0|dk(  r |d«        |d«       Œ, |t	        |«      «        |d«       ŒF|dk(  r	 |d«       n! |d«        |t	        |«      «        |d«        |d«       Œ~ d	d
j                  |j                  «      z  S )zpcreate the postscript code for the tint transfer function
        effectively this is tint*c, tint*y, ... tint*kr'   ç        r¶  z0.0Úmulr   ÚdupÚexchz{%s}r  )r  r”  rë   r9   r-   r—  Ú__self__)rE   rP  r›  r  s       r   Ú_makeFuncPSz"PDFSeparationCMYKColor._makeFuncPS¾  s¯   € ð �I‰IˆÜ˜TŸY™YŸ^™^Ó-Ó.ò 	‰CˆAˆaÜ�A‹hˆAØ�!ŠtØ�c’6Ù�e”HÙ�e•Há”c˜!“f”IÙ�e•Hà�a’4Ù�e•Há�e”HÙ”c˜!“f”IÙ�e”HÙ�&•	ð!	ð" ˜Ÿ™ !§*¡*Ó-Ñ.Ð.r   c                 ó   — t        t        d«      t        | j                  j                  «      t        d«      t	        t        t        dt        d«      t        d«      ¬«      «      | j                  «       d ¬«      f«      S )NÚ
Separationr  r(   )r   r&   )r   r&   r   r&   r   r&   r   r&   )ÚFunctionTypeÚDomainÚRange)rA  rñ  rò  )r  rè   rë   râ   r@  rx   rB  rO  rQ   s    r   rê   zPDFSeparationCMYKColor.valueÕ  sr   € ÜÜ˜LÓ)Ü˜DŸI™I×.Ñ.Ó/Ü˜LÓ)ÜÜ#0´Ø)*Ü#2°5Ó#9Ü"1Ð2CÓ"Dô2ó $ð
 !%× 0Ñ 0Ó 2Ø $ôð	 ó ð 	r   N)r   r   r   rƒ   rO  rê   r   r   r   ré   ré   µ  s   „ òò/ó.r   ré   c                   ó4   — e Zd ZdZg ZdZedz   Zd„ Zd„ Zd„ Z	y)ÚPDFFunctionz"superclass for all function types.)rR  rS  )rT  c                 ó  — i }| j                   D ]
  \  }}|||<   Œ |j                  |«       | j                  D ]  }||vsŒt        d|z  «      ‚ | j                  }|j                  «       D ]  }||vsŒt        d|z  «      ‚ t        |«      S ©Nzkeyword argument %s missingz!bad annotation dictionary name %s)rZ  rd   r<  rº   r=  r‹   rx   )rE   r>  r9  r�   r?  r=  s         r   ÚFunctionDictzPDFFunction.FunctionDictê  s§   € ØˆØŸ-™-ò 	‰JˆT�#ØˆAˆdŠGð	à	�‰�ŒØ—M‘Mò 	GˆDØ˜1Š}Ü Ð!>ÀÑ!EÓFÐFð	Gð —N‘Nˆ	Ø—F‘F“Hò 	MˆDØ˜9Ò$Ü Ð!DÀtÑ!KÓLÐLð	Mô ˜QÓÐr   c                 ó   — t        d«      ‚©Nz?Dict undefined for virtual superclass PDFShading, must overloadrB  rI   s     r   rC  zPDFFunction.Dictø  ó   € ÜÐZÓ[Ð[r   c                 óF   — | j                  |«      }|j                  |«      S rH   rE  rF  s      r   r5   zPDFFunction.formatý  ó   € Ø�I‰I�hÓˆØ�x‰x˜Ó!Ð!r   N)
r   r   r   rV   rZ  r<  r=  rY  rC  r5   r   r   r   rV  rV  å  s)   „ Ù,Ø€HØ)€HØ˜Ñ#€Iò ò\ó
"r   rV  c                   ó„   — e Zd Zej                  d ed«      fgz   Zej                  dz   Zej                  dz   Zd„ Zd„ Z	y)ÚPDFExponentialFunctionrS  )rJ  g      ð?)ÚN)ÚC0ÚC1ra  c                 ó<   — || _         || _        || _        || _        y rH   )rb  rc  ra  rL  )rE   rb  rc  ra  r>  s        r   rƒ   zPDFExponentialFunction.__init__	  s   € ØˆŒØˆŒØˆŒØˆ�r   c                 óè   — i }|j                  | j                  «       d|d<   t        | j                  «      |d<   t        | j                  «      |d<   | j
                  |d<    | j                  di |¤ŽS )Nr€  rR  rb  rc  ra  r   )rd   rL  r  rb  rc  ra  rY  ©rE   r<   r9  s      r   rC  zPDFExponentialFunction.Dict
	  sh   € ØˆØ	�‰�—‘ÔØˆˆ.ÑÜ! $§'¡'Ó*ˆˆ$‰Ü! $§'¡'Ó*ˆˆ$‰Ø—‘ˆˆ#‰Ø ˆt× Ñ Ñ% 1Ñ%Ð%r   N)
r   r   r   rV  rZ  r  r<  r=  rƒ   rC  r   r   r   r`  r`  	  sJ   „ Ø×#Ñ#¨±/À*Ó2MÐ'NÐ&OÑO€HØ×#Ñ# fÑ,€HØ×%Ñ%Ð(9Ñ9€Iòó
&r   r`  c                   óT   — e Zd Zej                  dz   Zej
                  dz   Zd„ Zd„ Zy)ÚPDFStitchingFunction)Ú	FunctionsÚBoundsÚEncodec                 ó<   — || _         || _        || _        || _        y rH   )ri  rj  rk  rL  )rE   ri  rj  rk  r>  s        r   rƒ   zPDFStitchingFunction.__init__	  s   € Ø"ˆŒØˆŒØˆŒØˆ�r   c                 ó>  — i }|j                  | j                  «       d|d<   t        | j                  D �cg c]  }|j	                  |«      ‘Œ c}«      |d<   t        | j
                  «      |d<   t        | j                  «      |d<    | j                  di |¤ŽS c c}w )Nr'   rR  ri  rj  rk  r   )rd   rL  r÷  ri  r4   rj  rk  rY  )rE   r<   r9  r/   s       r   rC  zPDFStitchingFunction.Dict	  s‰   € ØˆØ	�‰�—‘ÔØˆˆ.ÑÜ!À$Ç.Á.Ö"Q¸Q 8×#5Ñ#5°aÕ#8Ò"QÓRˆˆ+‰Ü˜tŸ{™{Ó+ˆˆ(‰Ü˜tŸ{™{Ó+ˆˆ(‰Ø ˆt× Ñ Ñ% 1Ñ%Ð%ùò #Rs   ¶BN)r   r   r   rV  r<  r=  rƒ   rC  r   r   r   rh  rh  	  s.   „ Ø×#Ñ#Ð&GÑG€HØ×%Ñ%Ð(IÑI€Iòó
&r   rh  c                   ó0   — e Zd ZdZdZedz   Zd„ Zd„ Zd„ Zy)Ú
PDFShadingz!superclass for all shading types.)ÚShadingTyperÏ  )Ú
Backgroundró  Ú	AntiAliasc                 óê   — i }|j                  |«       | j                  D ]  }||vsŒt        d|z  «      ‚ | j                  }|j	                  «       D ]  }||vsŒt        d|z  «      ‚ t        |«      S rX  )rd   r<  rº   r=  r‹   rx   )rE   r>  r9  r�   r=  s        r   ÚShadingDictzPDFShading.ShadingDict(	  s‡   € ØˆØ	�‰�ŒØ—M‘Mò 	GˆDØ˜1Š}Ü Ð!>ÀÑ!EÓFÐFð	Gð —N‘Nˆ	Ø—F‘F“Hò 	MˆDØ˜9Ò$Ü Ð!DÀtÑ!KÓLÐLð	Mô ˜QÓÐr   c                 ó   — t        d«      ‚r[  rB  rI   s     r   rC  zPDFShading.Dict4	  r\  r   c                 óF   — | j                  |«      }|j                  |«      S rH   rE  rF  s      r   r5   zPDFShading.format9	  r^  r   N)	r   r   r   rV   r<  r=  rt  rC  r5   r   r   r   ro  ro  $	  s%   „ Ù+Ø,€HØÐ<Ñ<€Iò
 ò\ó
"r   ro  c                   óT   — e Zd Zej                  dz   Zej
                  dz   Zd„ Zd„ Zy)ÚPDFFunctionShading)ÚFunction)rS  r÷  ry  c                 ó.   — || _         || _        || _        y rH   )ry  rÏ  rL  )rE   ry  rÏ  r>  s       r   rƒ   zPDFFunctionShading.__init__@	  s   € Ø ˆŒØ$ˆŒØˆ�r   c                 óÖ   — i }|j                  | j                  «       d|d<   t        | j                  «      |d<   |j	                  | j
                  «      |d<    | j                  di |¤ŽS )Nr&   rp  rÏ  ry  r   )rd   rL  rè   rÏ  r4   ry  rt  rf  s      r   rC  zPDFFunctionShading.DictD	  sa   € ØˆØ	�‰�—‘ÔØˆˆ-ÑÜ! $§/¡/Ó2ˆˆ,‰Ø ×*Ñ*¨4¯=©=Ó9ˆˆ*‰Øˆt×ÑÑ$ !Ñ$Ð$r   N©r   r   r   ro  r<  r=  rƒ   rC  r   r   r   rx  rx  =	  s-   „ Ø×"Ñ" ]Ñ2€HØ×$Ñ$Ð'GÑG€Iòó%r   rx  c                   óT   — e Zd Zej                  dz   Zej
                  dz   Zd„ Zd„ Zy)ÚPDFAxialShading©ÚCoordsry  ©r€  rS  ry  ÚExtendc                 óD   — ||||f| _         || _        || _        || _        y rH   ©r€  ry  rÏ  rL  )rE   Úx0Úy0Úx1Úy1ry  rÏ  r>  s           r   rƒ   zPDFAxialShading.__init__P	  s'   € Ø˜2˜r 2Ð&ˆŒØ ˆŒØ$ˆŒØˆ�r   c                 ó  — i }|j                  | j                  «       d|d<   t        | j                  «      |d<   t	        | j
                  «      |d<   |j                  | j                  «      |d<    | j                  di |¤ŽS )Nr€  rp  rÏ  r€  ry  r   ©	rd   rL  rè   rÏ  r  r€  r4   ry  rt  rf  s      r   rC  zPDFAxialShading.DictU	  ós   € ØˆØ	�‰�—‘ÔØˆˆ-ÑÜ! $§/¡/Ó2ˆˆ,‰Ü% d§k¡kÓ2ˆˆ(‰Ø ×*Ñ*¨4¯=©=Ó9ˆˆ*‰Øˆt×ÑÑ$ !Ñ$Ð$r   Nr|  r   r   r   r~  r~  L	  ó2   „ Ø×"Ñ"Ð%;Ñ;€HØ×$Ñ$ð (6ñ 6€Iòó
%r   r~  c                   óT   — e Zd Zej                  dz   Zej
                  dz   Zd„ Zd„ Zy)ÚPDFRadialShadingr  r�  c	                 óH   — ||||||f| _         || _        || _        |	| _        y rH   r„  )
rE   r…  r†  Úr0r‡  rˆ  Úr1ry  rÏ  r>  s
             r   rƒ   zPDFRadialShading.__init__b	  s+   € Ø˜2˜r 2 r¨2Ð.ˆŒØ ˆŒØ$ˆŒØˆ�r   c                 ó  — i }|j                  | j                  «       d|d<   t        | j                  «      |d<   t	        | j
                  «      |d<   |j                  | j                  «      |d<    | j                  di |¤ŽS )Nr'   rp  rÏ  r€  ry  r   rŠ  rf  s      r   rC  zPDFRadialShading.Dictg	  r‹  r   Nr|  r   r   r   rŽ  rŽ  ^	  rŒ  r   rŽ  Ú__main__z-There is no script interpretation for pdfdoc.)r   rH   )„Ú__version__rV   r`  r†  rÞ  Úcollectionsr   r  r   Ú	reportlabr   r­   r   r   r   r	   r
   r   r   r   r   r   Úreportlab.lib.rl_accelr   r   r   r   r   Úhashlibr   Úsysr   Ú	Exceptionr   r!   r"   r#   r$   r%   rW  rB  rŠ   r0   r5   rA   ÚformNamerC   r2   rU   rY   ÚPDFtrueÚPDFfalseÚPDFnullr•   rh  ÚreÚcompilerk  ro  ru  rp   Úchrrè   rx   r»  rÁ  rÃ  rÊ  rÛ  r  rè  r  r@  r  rþ  r÷  r  r  rË   r  r"  r   r"  r=  rk   rn   rx  r�  rŸ  r­  rÂ  rÅ  rr   rÇ  rs   r©  rÿ   rv   r)  rI  rP  rX  r`  rd  rh  r$  rS  r‡  r�  r�  r“  r›  r—  rž  r¡  rŽ  râ  rè  r>  rú  r:  r  ré   rV  r`  rh  ro  rx  r~  rŽ  r   r®   r   r   r   ú<module>r¢     sY  ðð €ð	€÷ Ó Ý #Ý &Ý ÷ P÷  P÷  Pß ZÓ ZÝ (Ý å ô	ˆyô 	ð &Ð ð €ð €ð €
ð 	€ð Ð ÙØôÐ ò=ó'ò4'ð €÷ñ ÷	ñ 	ôˆyô ô
`(�)ô `(ðF €Ø€Ø
€ô%ˆiô %òó 
Ø�—
‘
˜7Ó#€Øò	òôG*�	ô G*ñR ˜“I¡ T£ó ô+ �Iô + ÷Zñ ò/ô4˜=ô 4ôÐ%9ô ÷((ñ (ñ (Ó)€÷	'ñ 	'ñ .Ó/€ô(2�	ô (2óT	ðÐ ô
!ˆyô !ô.�hô ô˜	ô ôk˜ô kô&ˆiô &ô<#- )ô #-ôJ&˜Yô &ô �ô ô6'ˆ)ô 'ô:3�ô 3ôj ˆzô  ô0T4ˆjô T4ôn	˜Yô 	ô&1�Jô &1ôPH�:ô HòV
ð€ô$�9ô $ô#˜ô #ô~#�)ô ~#ó@ð  ;Ð ô'ˆiô 'ôT&"�ô &"ôP(˜ô (ô (�Zô (ô6((˜*ô ((ôTÐ(ô ò0ô#�9ô #ô8ˆiô 8ô(-�)ô -ô`
#˜	ô 
#ô#˜	ô #ôÐ*ô ô#˜ô #ôÐ,ô ô#˜ô #ôÐ,ô ô#˜ô #ô1$˜Iô 1$ôr#�9ô #ô4�lô ôF>.�Yô >.ô@"˜9ô "ð  °lÑ	C€ôS"�iô S"÷j.ñ .ô`"�)ô "ô8&˜[ô &ô$&˜;ô &ô""�ô "ô2%˜ô %ô%�jô %ô$%�zô %ð$ ˆZÒÙ	Ð
9Õ:ð r   