+
    Œvj“~  ã                   ó(  € R t Rt^ RIHtHtHtHt ^ RIHtH	t	H
t
 ^ RIHt ^ RIHtHtHt ^ RIHtHtHtHt ^ RIHt ^ RIHt  ^ R	It]P<                  t ! R
 R]4      t R t! ! R R]"4      t#R t$R t%^ RIH&t& ^ RI'H(t( ]&! 4       t)R'R lt*R t+R t, ! R R4      t-^ R	I.t.].P^                  ! R].P`                  4      t1A.R(R lt2R)R lt3R*R lt4Rt5 ! R# R$4      t8 ! R% R&]84      t9R	#    ^ R	I6t6Rt7R tR  ;t!t$]t ]"t#R! t%R)R" lt3]%;t2;t+;t,;t4;t*t-Rt5 LC; i)+z3.3.0z¿
PDFTextObject is an efficient way to add text to a Canvas. Do not
instantiate directly, obtain one from the Canvas instead.

Progress Reports:
8.83, 2000-01-13, gmcm: created from pdfgen.py
)ÚColorÚ	CMYKColorÚCMYKColorSepÚtoColor)ÚisBytesÚisStrÚ	asUnicode)Úfp_str)ÚgetFontÚstringWidthÚ
unicode2T1)Ú	ShapedStrÚ	ShapeDataÚ	_sdGuardLÚshapeStr)Úgroupby)Ú
itemgetterNc                   ó:   a a€ ] tR t^t oRtRV 3R lltRtVtV ;t# )ÚBidiStrz6A str with indices visual __bidiV__, logical __bidiL__c                ó>   <€ \         SV `  W4      pW$n        W4n        V# ©N)ÚsuperÚ__new__Ú	__bidiV__Ú	__bidiL__)ÚclsÚsÚbidiVÚbidiLÚselfÚ	__class__s   &&&& €Ú_/var/www/html/daimler-pipeline/venv/lib/python3.14/site-packages/reportlab/pdfgen/textobject.pyr   ÚBidiStr.__new__   s    ø€ Ü‘7‘? 3Ó)ˆDØ"ŒNØ"ŒNØˆKó    ©r   r   ©éÿÿÿÿr&   )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r    Ú__classdict__s   @@r!   r   r      s   ù‡ € ÙD÷	÷ 	r#   r   c                 ó"   € \        V \        4      # r   )Ú
isinstancer   ©Ú_s   &r!   Ú<lambda>r5      s   € œ* Q¤wÔ/r#   c                   óF   a a€ ] tR t^ t oRtRV 3R lltV 3R ltRtVtV ;t	# )ÚBidiListz7A list with indices visual __bidiV__, logical __bidiL__c                ó>   <€ \         SV `  V4       W n        W0n        R # r   )r   Ú__init__r   r   )r   ÚLr   r   r    s   &&&&€r!   r9   ÚBidiList.__init__"   s   ø€ Ü‰GÑ˜QÔØ"ŒNØ"ŽNr#   c                óˆ   <€ V P                   P                   R \        SV `  4        RV P                   RV P
                   R2# )Ú(Ú,Ú))r    r'   r   Ú__repr__r   r   )r   r    s   &€r!   r@   ÚBidiList.__repr__&   sE   ø€ Ø—n‘n×-Ñ-Ð.¨a´±Ñ0@Ó0BÐ/CÀ1ÀTÇ^Á^ÐDTÐTUÐVZ×VdÑVdÐUeÐefÐgÐgr#   r$   r%   )
r'   r(   r)   r*   r+   r9   r@   r,   r-   r.   r/   s   @@r!   r7   r7       s   ù‡ € ÙE÷	#÷	hõ 	hr#   r7   c                 ó"   € \        V \        4      # r   )r2   r7   r3   s   &r!   r5   r5   (   s   € œ: a¬Ô1r#   c                 ó^   € V'       d   VP                  4       pVR9   d   \        WRR7      # T # )ÚLTRT)Úclean©rD   ÚRTL)ÚupperÚlog2vis)ÚtextÚ	directions   &&r!   ÚbidiTextrL   )   s*   € ß )§/¡/Ó"3�iØ6?À=Ô6PŒw�t¨TÔ2ÐZÐVZÐZr#   )Ú
KlassStore)Údeepcopyc                 óx  € \        V \        4      '       d   V # \        V 4      \        J d   \        pMV P                  P
                  pR V 2pV\        9  dM   \        \        WPP                  \        R7      p\        RV R2V4       \        P                  WVV,          4       \        V,          pV! WVR7      # )ÚBidiIndexed)r   Ú	klassNameÚklassrN   úclass zÞ(klass,BidiStr):
	def __new__(cls,s,bidiV=-1,bidiL=-1):
		self = super(cls,cls).__new__(cls,s)
		if hasattr(s,'__dict__'): self.__dict__=deepcopy(s.__dict__)
		self.__bidiV__ = bidiV
		self.__bidiL__ = bidiL
		return self
)r   r   )r2   r   ÚtypeÚstrr    r'   Ú_bidiKSÚdictrN   ÚexecÚadd)r   r   r   rR   Ú
sklassNamerQ   ÚNSs   &&&    r!   ÚinnerBidiStrWrapr\   /   sŸ   € Ü�aœ× Ò ¨ (Ü�‹7”c‹>Ü‰EàŸ™×-Ñ-ˆJØ% j \Ð2ˆIØ¤Ô'Ü¤°)Ç+Á+ÔW_Ô`�Ü˜F 9 +ð .0ð 0ð ôô —‘˜I¨¥mÔ4Ü˜IÕ&ˆEÙ�Q¨Ô/Ð/r#   c                 ór   € \        V\        4      '       g   V # \        WP                  VP                  4      # r   )r2   r   r\   r   r   )r   Úorigs   &&r!   ÚbidiStrWrapr_   C   s(   € Ü˜$œw×'Ò'°¨Ü §.¡.°·±Ó@Ð@r#   c                 óÖ  € \        V\        \        34      '       d   \        V \        4      '       d   V # \        V 4      \        J d   \        pMV P
                  P                  pR V 2pV\        9  dM   \        \        W@P
                  \        R7      p\        RV R2V4       \        P                  WEV,          4       \        V,          pV! WP                  VP                  4      # )rP   )r7   rQ   rR   rN   rS   zÅ(klass,BidiList):
	def __init__(self,L,bidiV=-1,bidiL=-1):
		klass.__init__(self,L)
		if hasattr(L,'__dict__'): self.__dict__=deepcopy(L.__dict__)
		self.__bidiV__ = bidiV
		self.__bidiL__ = bidiL
)r2   r7   Ú	BidiIndexrT   Úlistr    r'   rV   rW   rN   rX   rY   r   r   )r:   r^   rR   Ú
lklassNamerQ   r[   s   &&    r!   ÚbidiListWraprd   F   sº   € Ü˜$¤¬Ð3×4Ò4¼
À1ÄX×8NÒ8NÐWXÐPXÜ�‹7”d‹?Ü‰EàŸ™×-Ñ-ˆJØ% j \Ð2ˆIØ¤Ô'Ü¤°IÇKÁKÔYaÔb�Ü˜F 9 +ð .;ð ;ð ôô —‘˜I¨¥mÔ4Ü˜IÕ&ˆEÙ�Q—~‘~ d§n¡nÓ5Ð5r#   c                   ó*   a € ] tR t^Zt o RR ltRtV tR# )ra   c                ó   € Wn         W n        R # r   )r   r   )r   r   r   s   &&&r!   r9   ÚBidiIndex.__init__[   s   € Ø"ŒNØ"ŽNr#   r$   Nr%   )r'   r(   r)   r*   r9   r,   r-   ©r0   s   @r!   ra   ra   Z   s   ø‡ € ÷	#ò 	#r#   ra   z[^ ]+TFc           	     óÀ  € V'       d   VP                  4       pVR9  d   V # \        V \        \        34      '       g   \	        R4      hRP                  V 4      p. p\        WAW%R7      p/ p\        \        P                  V4      4       FF  w  r‰V	P                  ^ 4      V3p
V	P                  4       w  r¼\        W¼4       F  pW§W],          &   K  	  KH  	  . P                  p\        \        P                  V4      4       FS  w  rù\        V	P                  4       !   F3  pW×9   g   K  W},          w  ppT! V'       d   TM\        VW�4      4        KQ  	  KU  	  VP                  # )zntakes words (list of strings) returns bidi associated lists
if wx is True then the V2L index only is returned
z@bidiWordList argument words should be a list or tuple of stringsÚ ©Úbase_directionrE   Úpositions_V_to_LrF   )rH   r2   rb   ÚtupleÚ
ValueErrorÚjoinrI   Ú	enumerateÚwordpatÚfinditerÚgroupÚspanÚrangeÚappendr   Ú__self__)ÚwordsrK   rE   ÚwxÚrawÚV2LÚbidiÚVMAPÚiÚmÚtÚstartÚendÚjÚresÚwr   s   &&&&             r!   ÚbidiWordListr‡   a   s"  € ÷  )§/¡/Ó"3�iØ˜MÔ)°%¨<Ü˜%¤¤e ×-Ò-ÜÐ_Ó`Ð`Ø�h‰h�u‹oˆØˆÜ�s¸EÔXˆàˆÜœg×.Ñ.¨tÓ4Ö5‰DˆAØ—‘˜“˜Q�ˆAØŸ™›‰JˆEÜ˜5Ö%�Ø �S•V“ó &ñ 6ð �i‰iˆäœg×.Ñ.¨sÓ3Ö4‰DˆAÜ˜AŸF™F›HÔ%�Ø–9Ø�7‘D�A�qÙŸR™¤W¨Q¨q£^Ô4Úñ	 &ñ ñ 5ð �|‰|Ðr#   c           	     ó–  € \        V 4      p V'       d    \        V4      pVP                  '       g   RpV'       d   VP                  4       pVR
9   EdŒ   V'       Edu   V P	                  4       p\        V 4      \        V4      ,
          pVP                  4       p \        V4      \        V 4      ,
          p	\        P                  V 4       U
u. uF   q \        V
P                  4       !  ,          NK"  	  pp
\        W±RR7      pV Uu. uF  p\        W½,          W44      NK  	  pp\        V4      ^8”  d   V^ ,          VR,          8”  d   Y˜r˜\        VR,          W4RR7      p V FL  p\        VR4      '       g   \        WsVRR7      pW~^ ,          Jd   V \        RW4RR7      ,          p W,          p KN  	  V	'       d   V \        V	R,          W44      ,          p M"\        WVR7      p MV'       d   \        WV4      p \        V \         4      '       d+   \#        R V P$                   4       4      V,          R	,          M\'        WV4      pW3# u up
i u upi )zIreturn shaped/bidi text and width; assumes text is aways in logical orderFT)rK   rz   rj   )ÚforceÚ__shapeData__)rl   rE   c              3   ó8   "  € T F  qP                   x € K  	  R # 5ir   )Ú	x_advance)Ú.0r4   s   & r!   Ú	<genexpr>Ú!bidiShapedText.<locals>.<genexpr>ž   s   é € Ð>Ñ+= a—k–kÓ+=ùs   ‚éè  ©rG   rD   r&   )r   Úpdfmetrics_getFontÚshapablerH   ÚlstripÚlenÚrstriprr   rs   Úsliceru   r‡   r   ÚhasattrrI   r2   r   ÚsumrŠ   Úpdfmetrics_stringWidth)rJ   rK   rE   ÚfontNameÚfontSizeÚshapingÚfontr†   ÚbLÚbRr€   ÚLWÚVXr   ÚSWÚwidths   &&&&&&          r!   ÚbidiShapedTextr¥   €   sÏ  € ä˜‹ˆßÜ% hÓ/ˆDØ—=—=�=¨E 'ß )§/¡/Ó"3�iØ˜Õ%ßˆwØ—K‘K“M�Ü˜“Y¤ Q£Õ'�Ø—x‘x“z�Ü˜“Vœc $›iÕ'�Ü6=×6FÑ6FÀtÔ6LÓMÑ6L°œ5 !§&¡&£(Ñ+×,Ð,Ñ6L�ÐMÜ! "¸DÔA�ÙACÓDÁ¸A”h˜r�u XÖ7Á�ÐDÜ�r“7˜1”9  A¥ r¨"¥v¤Ø˜Ü  3¥ xÀÔE�Û�AÜ" 1 _×5Ò5¼8ÀAÈxÐ^bÔ;c°qØ 1¥“~ t¬x¸¸HÐUYÔ/ZÕ'Z tØ•I’Dñ ÷ ØœH R¨¥V¨HÓ>Õ>�Døä˜tÀ5ÔI‘çÜ °Ó9�ÜQ[Ð\`Ôaj×QkÒQk”Ñ>¨4×+=Ò+=Ó>Ó?ÀÕHÈÖMÜ/°ÀÓIð 	àˆ{Ðùò' NùâDs   Ã	&IÄIc           	      óŽ  aa€ VR
9  d   V # Rp. P                   p. P                   o\        V R,          4       F=  w  pw  r‰\        VR4      '       d   V! V4       K$  V	 F  p
S! V4       WZ,          pK  	  K?  	  \        V4      ^8:  d   V # SP                  o. o\        WQVSR7      p\        VV3R l\        V4       4       \        ^ 4      R7       UUu. uF4  w  rÍV ^V,           ,          ^ ,          RP                  R V 4       4      3NK6  	  ppp\        R V 4       4      .V,           pVP                  pV'       dÝ   S^ ,          SR,          8”  de   \        V4       FT  pW^,           ,          pVP                  \        V 4      V,
          V4       V^ ;;,          \        VR	^ 4      ,          uu&   KV  	  Mc\        \        V4      4       FK  pW^,           ,          pVP                  V^,           V4       V^ ;;,          \        VR	^ 4      ,          uu&   KM  	  V P                  V4      p\        V\!        W#4      4      # u uppi )rG   Ú :é   NNÚcbDefnrk   c              3   óL   <"  € T F  w  rSSV,          ,          V3x € K  	  R # 5ir   © )r�   r   Úvr|   ÚfLs   &  €€r!   rŽ   ÚbidiFragWord.<locals>.<genexpr>±   s'   øé € ÐLwÑgvÑ`cÐ`aÈbÐQTÐUVÕQWÍjÐYZÍ^Ógvùs   ƒ!$)Úkeyc              3   ó2   "  € T F  q^,          x € K  	  R# 5i)r¨   Nr«   )r�   Úkss   & r!   rŽ   r®   ±   s   é € Ð"5±1¨R a§5¢5³1ùs   ‚c              3   óf   "  € T F'  w  r\        W!P                  VP                  4      x € K)  	  R # 5ir   )rš   r›   rœ   )r�   Úfr   s   &  r!   rŽ   r®   ²   s%   é € ÐSÉsÉÈÔ*¨1¯Z©Z¸¿
¹
×CÐCËsùs   ‚/1r¤   r‘   r&   )rw   rq   r˜   r•   rx   rI   r   r   rp   r™   ÚsortedÚinsertÚgetattrÚreversedr    rd   ra   )r†   rK   r   r   rE   rJ   Úcbdr   r³   r   Úur}   ÚkÚgÚfsLÚbfwÚfsr|   r­   s   &&&&&            @@r!   ÚbidiFragWordr¿   ¡   sõ  ù€ Ø˜MÔ)°!¨8ØˆØ�i‰iˆØ�Y‰YˆÜ" 1 R¥5Ö)‰IˆA‰v�Ü�q˜×"Ò"Ù�A–ã�AÙ�q”EØ•I’Dó ñ	 *ô ˆt‹9�aŒ< ˜Ø�[‰[ˆØˆÜ�t¸UÐUXÔYˆÜDKÕLwÔgpÐquÔgvÓLwô  }Gð  HIó  }Jõ  EKô  Lñ  EK¹D¸A��!�A•#•�q•	˜"Ÿ'™'Ñ"5±1Ó"5Ó6Ó7ñ  EKˆñ  LÜÑSÉsÓSÓTÐUÐX[Õ[ˆØ�l‰lˆßØ�1�v�c˜"•gŒ~ä ž�AØ˜Q�3��BØ—J‘Jœs 1›v a�x¨Ô+Ø˜—Fœg b¨°Ó3Õ3•Fò %ô
 "¤&¨£+Ö.�AØ˜Q�3��BØ—J‘J˜q �s 2Ô&Ø˜—Fœg b¨°Ó3Õ3•Fñ /ð �k‰k˜#ÓˆÜ˜C¤¨5Ó!7Ó8Ð8ùó! Ls   Ã:Iz/rlbidi is not installed - RTL/LTR not supportedc                  ó    € \        \        4      hr   )ro   Ú
_rlbidiMsg)ÚargsÚkwdss   *,r!   rI   rI   Æ   s   € ÜœÓ$Ð$r#   c                 ó   € R # )Fr«   r3   s   &r!   r5   r5   È   s   € ¡ur#   c                  ó®   € VP                  R R4      pV'       d   VP                  4       pVR9   d   \        P                  ! \        ^ R7       V ^ ,          # )rK   N)Ú
stacklevelrF   )ÚpoprH   ÚwarningsÚwarnrÁ   )rÂ   rÃ   rK   s   *, r!   rL   rL   Ë   s?   € Ø—H‘H˜[¨Ó.ˆ	ß )§/¡/Ó"3�iØ˜Ô%Ü�MŠMœ*°Õ2Ø�A�wˆr#   c                 ó0   € \        W4      \        WV4      3# r   )rL   rš   )rJ   rK   rE   r›   rœ   r�   s   &&&&&&r!   r¥   r¥   Ñ   s   € Ü˜Ó'Ô)?ÀÈhÓ)WÐWÐWr#   c                   óœ   a € ] tR t^Öt o RtR tRtRR ltRR ltRR lt	RR lt
RR ltRR	 ltRR
 ltRR ltR tR tR tR tR tRtV tR# )Ú_PDFColorSetterzeAbstracts the color setting operations; used in Canvas and Textobject
asseumes we have a _code objectc                ó¬   € \        V\        4      '       d>   V P                  P                  V4      w  r#W P                  9  d   W0P                  V&   V# R # r   )r2   r   Ú_docÚaddColorÚ_colorsUsed)r   ÚcmykÚnameÚsnames   &&  r!   Ú_checkSeparationÚ _PDFColorSetter._checkSeparationÙ   sI   € Ü�dœ<×(Ò(ØŸ™×+Ñ+¨DÓ1‰JˆDØ×+Ñ+Ô+Ø).× Ñ  Ñ&ØˆKñ	 )r#   Nc                ó0   € V P                  WW43VR7       R# )z�set the fill color useing negative color values
(cyan, magenta, yellow and darkness value).
Takes 4 arguments between 0.0 and 1.0©ÚalphaN©ÚsetFillColor©r   Úcr€   Úyrº   rØ   s   &&&&&&r!   ÚsetFillColorCMYKÚ _PDFColorSetter.setFillColorCMYKä   s   € ð 
×	Ñ	˜A ˜9¨5Ð	Ö	1r#   c                ó0   € V P                  WW43VR7       R# )zƒset the stroke color useing negative color values
(cyan, magenta, yellow and darkness value).
Takes 4 arguments between 0.0 and 1.0r×   N©ÚsetStrokeColorrÛ   s   &&&&&&r!   ÚsetStrokeColorCMYKÚ"_PDFColorSetter.setStrokeColorCMYKê   s   € ð 
×	Ñ	˜a !˜Y¨UÐ	Ö	3r#   c                ó0   € V P                  WV3VR7       R# )zlSet the fill color using positive color description
(Red,Green,Blue).  Takes 3 arguments between 0.0 and 1.0r×   NrÙ   ©r   Úrr»   ÚbrØ   s   &&&&&r!   ÚsetFillColorRGBÚ_PDFColorSetter.setFillColorRGBð   s   € ð 	×Ñ˜1˜q˜'¨ÐÖ.r#   c                ó0   € V P                  WV3VR7       R# )znSet the stroke color using positive color description
(Red,Green,Blue).  Takes 3 arguments between 0.0 and 1.0r×   Nrá   ræ   s   &&&&&r!   ÚsetStrokeColorRGBÚ!_PDFColorSetter.setStrokeColorRGBõ   s   € ð 	×Ñ˜Q ˜G¨%ÐÖ0r#   c           	     óH  € V P                   '       d   V P                  V4      p\        V\        4      '       dÒ   VP                  pW1P                  ,          W1P
                  ,          W1P                  ,          W1P                  ,          3w  rErgWn        V P                  V4      pV'       d0   V P                  P                  RV: R\        V4      : R24       EM‚V P                  P                  R\        WEWg4      ,          4       EMT\        V\        4      '       dV   VP                  VP                  VP                   3p	Wn        V P                  P                  R\        V	4      ,          4       Mé\        V\"        \$        34      '       d�   \'        V4      p
V
^8X  d3   Wn        V P                  P                  R\        V4      ,          4       M‰V
^8X  d3   Wn        V P                  P                  R\        V4      ,          4       MP\)        RV,          4      h\+        V4      '       d   V P-                  \/        V4      4       M\)        RV,          4      hVe   V P1                  V4       R# \3        VRR4      e   V P1                  VP4                  4       R# R# )	ú?Takes a color object, allowing colors to be referred to by nameÚ/z cs z scnz%s kz%s rgúUnknown color %rNrØ   )Ú_enforceColorSpacer2   r   ÚdensityÚcyanÚmagentaÚyellowÚblackÚ_fillColorObjrÔ   Ú_coderw   r	   r   ÚredÚgreenÚbluern   rb   r•   ro   r   rÚ   r   ÚsetFillAlphar¶   rØ   ©r   ÚaColorrØ   ÚdrÜ   r€   rÝ   rº   rÒ   ÚrgbÚls   &&&        r!   rÚ   Ú_PDFColorSetter.setFillColorú   sØ  € à×"×"Ð"Ø×,Ñ,¨VÓ4ˆFÜ�fœi×(Ò(Ø—‘ˆAØŸ™•} a¯©Õ&6¸¿-¹-½ÈÏ<É<ÍÐX‰GˆA�Ø!'ÔØ×(Ñ(¨Ó0ˆDßØ—
‘
×!Ò!³T¼&À¾)Ð"DÖEà—
‘
×!Ñ! &¬6°!¸Ó+=Õ"=Ö>Ü˜¤×&Ò&Ø—:‘:˜vŸ|™|¨V¯[©[Ð9ˆCØ!'ÔØ�J‰J×Ñ˜g¬¨s«Õ3Õ5Ü˜¤¤d˜|×,Ò,Ü�F“ˆAØ�!ŒtØ%+Ô"Ø—
‘
×!Ñ! '¬F°6«NÕ":Õ<Ø�A”Ø%+Ô"Ø—
‘
×!Ñ! &¬6°&«>Õ"9Õ:ä Ð!3°fÕ!<Ó=Ð=Ü�6�]Š]Ø×Ñœg f›oÕ.äÐ/°&Õ8Ó9Ð9ØÒØ×Ñ˜eÖ$Ü�V˜W dÓ+Ò7Ø×Ñ˜fŸl™lÖ+ñ 8r#   c           	     óH  € V P                   '       d   V P                  V4      p\        V\        4      '       dÒ   VP                  pW1P                  ,          W1P
                  ,          W1P                  ,          W1P                  ,          3w  rErgWn        V P                  V4      pV'       d0   V P                  P                  RV: R\        V4      : R24       EM‚V P                  P                  R\        WEWg4      ,          4       EMT\        V\        4      '       dV   VP                  VP                  VP                   3p	Wn        V P                  P                  R\        V	4      ,          4       Mé\        V\"        \$        34      '       d�   \'        V4      p
V
^8X  d3   Wn        V P                  P                  R\        V4      ,          4       M‰V
^8X  d3   Wn        V P                  P                  R\        V4      ,          4       MP\)        RV,          4      h\+        V4      '       d   V P-                  \/        V4      4       M\)        RV,          4      hVe   V P1                  V4       R# \3        VRR4      e   V P1                  VP4                  4       R# R# )	rï   rð   z CS z SCNz%s Kz%s RGrñ   NrØ   )rò   r2   r   ró   rô   rõ   rö   r÷   Ú_strokeColorObjrÔ   rù   rw   r	   r   rú   rû   rü   rn   rb   r•   ro   r   râ   r   ÚsetStrokeAlphar¶   rØ   rþ   s   &&&        r!   râ   Ú_PDFColorSetter.setStrokeColor  sØ  € à×"×"Ð"Ø×,Ñ,¨VÓ4ˆFÜ�fœi×(Ò(Ø—‘ˆAØŸ™•} a¯©Õ&6¸¿-¹-½ÈÏ<É<ÍÐX‰GˆA�Ø#)Ô Ø×(Ñ(¨Ó0ˆDßØ—
‘
×!Ò!³T¼&À¾)Ð"DÖEà—
‘
×!Ñ! &¬6°!¸Ó+=Õ"=Ö>Ü˜¤×&Ò&Ø—:‘:˜vŸ|™|¨V¯[©[Ð9ˆCØ#)Ô Ø�J‰J×Ñ˜g¬¨s«Õ3Õ5Ü˜¤¤d˜|×,Ò,Ü�F“ˆAØ�!ŒtØ'-Ô$Ø—
‘
×!Ñ! '¬F°6«NÕ":Õ<Ø�A”Ø'-Ô$Ø—
‘
×!Ñ! &¬6°&«>Õ"9Õ:ä Ð!3°fÕ!<Ó=Ð=Ü�6�]Š]Ø×Ñ¤¨£Õ0äÐ/°&Õ8Ó9Ð9ØÒØ×Ñ Ö&Ü�V˜W dÓ+Ò7Ø×Ñ §¡Ö-ñ 8r#   c                óœ   € WV3V n         V P                  P                  R\        V4      ,          4       Ve   V P	                  V4       R# R# )ú)Sets the gray level; 0.0=black, 1.0=whitez%s gN)rø   rù   rw   r	   rý   ©r   ÚgrayrØ   s   &&&r!   ÚsetFillGrayÚ_PDFColorSetter.setFillGrayB  sC   € à"¨$Ð/ˆÔØ�
‰
×Ñ˜&¤6¨$£<Õ/Ô0ØÒØ×Ñ˜eÖ$ñ r#   c                óœ   € WV3V n         V P                  P                  R\        V4      ,          4       Ve   V P	                  V4       R# R# )r	  z%s GN)r  rù   rw   r	   rý   r
  s   &&&r!   ÚsetStrokeGrayÚ_PDFColorSetter.setStrokeGrayI  sC   € à $¨DÐ1ˆÔØ�
‰
×Ñ˜&¤6¨$£<Õ/Ô0ØÒØ×Ñ˜eÖ$ñ r#   c                ó¬   € \        V\        \        34      '       d   ^ Tu;8:  d   ^8:  g   M \        RV,          4      h\	        V RR 4      ! V4       R# )é    zsetStrokeAlpha invalid value %rÚ_setStrokeAlphac                 ó   € R # r   r«   ©Úxs   &r!   r5   Ú0_PDFColorSetter.setStrokeAlpha.<locals>.<lambda>S  s   € ±r#   N©r2   ÚfloatÚintro   r¶   ©r   Úas   &&r!   r  Ú_PDFColorSetter.setStrokeAlphaP  s@   € Ü˜1œe¤C˜[×)Ò)¨a°®g°A®gÜÐ>ÀÕBÓCÐCÜ�Ð&¡~Ô6°qÖ9r#   c                ó¬   € \        V\        \        34      '       d   ^ Tu;8:  d   ^8:  g   M \        RV,          4      h\	        V RR 4      ! V4       R# )r  zsetFillAlpha invalid value %rÚ_setFillAlphac                 ó   € R # r   r«   r  s   &r!   r5   Ú._PDFColorSetter.setFillAlpha.<locals>.<lambda>X  s   € ©tr#   Nr  r  s   &&r!   rý   Ú_PDFColorSetter.setFillAlphaU  s?   € Ü˜1œe¤C˜[×)Ò)¨a°®g°A®gÜÐ<¸qÕ@ÓAÐAÜ��_¡^Ô4°QÖ7r#   c                ó.   € \        V R R 4      ! V4       R# )Ú_setStrokeOverprintc                 ó   € R # r   r«   r  s   &r!   r5   Ú4_PDFColorSetter.setStrokeOverprint.<locals>.<lambda>[  s   € ±Tr#   N©r¶   r  s   &&r!   ÚsetStrokeOverprintÚ"_PDFColorSetter.setStrokeOverprintZ  s   € Ü�Ð*©>Ô:¸1Ö=r#   c                ó.   € \        V R R 4      ! V4       R# )Ú_setFillOverprintc                 ó   € R # r   r«   r  s   &r!   r5   Ú2_PDFColorSetter.setFillOverprint.<locals>.<lambda>^  ó   € ±4r#   Nr'  r  s   &&r!   ÚsetFillOverprintÚ _PDFColorSetter.setFillOverprint]  ó   € Ü�Ð(©Ô8¸Ö;r#   c                ó.   € \        V R R 4      ! V4       R# )Ú_setOverprintMaskc                 ó   € R # r   r«   r  s   &r!   r5   Ú2_PDFColorSetter.setOverprintMask.<locals>.<lambda>a  r.  r#   Nr'  r  s   &&r!   ÚsetOverprintMaskÚ _PDFColorSetter.setOverprintMask`  r1  r#   )rø   r  r   )r'   r(   r)   r*   r+   rÔ   rò   rÞ   rã   ré   rì   rÚ   râ   r  r  r  rý   r(  r/  r6  r,   r-   rh   s   @r!   rÌ   rÌ   Ö   s_   ø‡ € ñ'òð Ðô2ô4ô/ô
1ô
",ôH".ôH%ô%ò:ò
8ò
>ò<÷<ð <r#   rÌ   c                   óæ   a € ] tR tRt o RtR"R ltR tR tR tR t	R	 t
R
 tR tR tR tR tR#R ltR tR tR tR tR tR tR tR tR$R ltR tR%R ltR&R ltR tR tR tR t R  t!R!t"V t#R# )'ÚPDFTextObjectic  až  PDF logically separates text and graphics drawing; text
operations need to be bracketed between BT (Begin text) and
ET operators. This class ensures text operations are
properly encapusalted. Ask the canvas for a text object
with beginText(x, y).  Do not construct one directly.
Do not use multiple text objects in parallel; PDF is
not multi-threaded!

It keeps track of x and y coordinates relative to its origin.Nc                óä  € R .V n         Wn        V P                  P                  V n        V P                  P                  V n        V P                  P                  V n        V P                  P
                  V n        V P                  P                  V n        \        VRR4      V n        \        V P                  4      pRV n
        W@n        V P                  W#4       ^ V n        ^ V n        ^ V n        R# )ÚBTrò   Nr&   )rù   Ú_canvasÚ	_fontnameÚ	_fontsizeÚ_leadingrÎ   rÐ   r¶   rò   r’   Ú
_curSubsetrK   ÚsetTextOriginÚ_textRenderModeÚ	_clippingÚ_rise)r   Úcanvasr  rÝ   rK   rž   s   &&&&& r!   r9   ÚPDFTextObject.__init__n  s¶   € Ø�VˆŒ
ØŒØŸ™×/Ñ/ˆŒØŸ™×/Ñ/ˆŒØŸ™×-Ñ-ˆŒØ—L‘L×%Ñ%ˆŒ	ØŸ<™<×3Ñ3ˆÔÜ")¨&Ð1EÀdÓ"KˆÔÜ! $§.¡.Ó1ˆØˆŒØ"ŒØ×Ñ˜1Ô Ø ˆÔØˆŒØˆŽ
r#   c                óø   € V P                   P                  R4       V P                  '       d4   V P                   P                  RV P                  ^,          ,          4       RP	                  V P                   4      # )z#pack onto one line; used internallyÚETú%d Trrj   )rù   rw   rC  rB  rp   ©r   s   &r!   ÚgetCodeÚPDFTextObject.getCode  sR   € à�
‰
×Ñ˜$ÔØ�>�>ˆ>Ø�J‰J×Ñ˜g¨×)=Ñ)=¸aÕ)?Õ@ÔAØ�x‰x˜Ÿ
™
Ó#Ð#r#   c                ó$  € V P                   P                  '       d-   V P                  P                  R \	        W4      ,          4       M+V P                  P                  R\	        W4      ,          4       V;V n        V n        V;V n        V n        R# )z1 0 0 1 %s Tmz1 0 0 -1 %s TmN©	r<  Úbottomuprù   rw   r	   Ú_x0Ú_xÚ_y0Ú_y)r   r  rÝ   s   &&&r!   rA  ÚPDFTextObject.setTextOrigin†  sg   € Ø�<‰<× × Ð Ø�J‰J×Ñ˜o´°q³Õ<Õ=à�J‰J×ÑÐ.´¸³Õ=Ô>ð ÐˆŒ�4”7ØÐˆŒ�4–7r#   c                óÜ   € V P                   P                  '       g   V) pV) pV P                  P                  R\	        WW4WV4      ,          4       V;V n        V n        V;V n        V n        R# )z3Like setTextOrigin, but does rotation, scaling etc.z%s TmNrN  )r   r  rè   rÜ   r   Úer³   s   &&&&&&&r!   ÚsetTextTransformÚPDFTextObject.setTextTransform�  s^   € à�|‰|×$×$Ð$Ø�ˆAØ�ˆAØ�
‰
×Ñ˜'¤F¨1°°qÓ$<Õ<Ô=ð ÐˆŒ�4”7ØÐˆŒ�4–7r#   c                ó  € V P                   '       dï   V P                   R,          P                  R4      '       dÇ   V P                   R,          P                  4       p\        V4      ^8X  d   V P                   R M!RP	                  VRR 4      V P                   R&   \        VR,          4      p\        VR,          4      pW,          pW%,          pV ;P                  V,          un        V ;P                  V,          un        V P                   P                  R\        W) 4      ,          4       V ;P                  V,          un        V ;P                  V,          un        V P                  V n
        V P                  V n        R# )	aP  Starts a new line at an offset dx,dy from the start of the
current line. This does not move the cursor relative to the
current position, and it changes the current offset of every
future line drawn (i.e. if you next do a textLine() call, it
will move the cursor to a position one line lower than the
position specificied in this call.  z Tdr§   Nz%s Tdr&   éüÿÿÿéýÿÿÿéþÿÿÿ)rù   ÚendswithÚsplitr•   rp   r  rP  rR  rw   r	   rQ  rS  )r   ÚdxÚdyr:   ÚlastDxÚlastDys   &&&   r!   Ú
moveCursorÚPDFTextObject.moveCursorž  s  € ð �:�:ˆ:˜$Ÿ*™* R�.×1Ñ1°%×8Ò8Ø—
‘
˜2•×$Ñ$Ó&ˆAÜ�1‹v�qŒyØ—J‘J˜r‘Nà!#§¡¨¨3¨B¨£�—
‘
˜2‘ô ˜1˜R�5“\ˆFÜ˜1˜R�5“\ˆFð �LˆBØ�LˆBð
 �HŠH˜Õ�HØ�HŠH˜Õ�Hð 	�
‰
×Ñ˜'¤F¨2¨s£OÕ3Ô4ð 	�Š�B��Ø�Š�B��Ø—(‘(ˆŒØ—(‘(ˆŽr#   c                ó*   € V P                  V^ 4       R# )zˆStarts a new line dx away from the start of the
current line - NOT from the current point! So if
you call it in mid-sentence, watch out.N)rc  )r   r_  s   &&r!   ÚsetXPosÚPDFTextObject.setXPosÆ  s   € ð 	�‰˜˜1Ör#   c                ó2   € V P                   V P                  3# )z:Returns current text position relative to the last origin.)rQ  rS  rJ  s   &r!   Ú	getCursorÚPDFTextObject.getCursorÌ  s   € à—‘˜Ÿ™Ð!Ð!r#   c                ó2   € V P                   V P                  3# )zJReturns a tuple giving the text position of the start of the
current line.)rP  rR  rJ  s   &r!   ÚgetStartOfLineÚPDFTextObject.getStartOfLineÐ  s   € ð —‘˜$Ÿ(™(Ð#Ð#r#   c                ó   € V P                   # )z7Returns current x position relative to the last origin.)rQ  rJ  s   &r!   ÚgetXÚPDFTextObject.getXÕ  ó   € à�w‰wˆr#   c                ó   € V P                   # )z7Returns current y position relative to the last origin.)rS  rJ  s   &r!   ÚgetYÚPDFTextObject.getYÙ  rq  r#   c                ó   € Wn         W n        \        V P                   4      pVP                  '       d
   RV n        R# V P
                  P                  P                  V4      pV P                  P                  V: R\        V4      : R24       R# )z¥Sets the font and fontSize
Raises a readable exception if an illegal font
is supplied.  Font names are case-sensitive! Keeps track
of font anme and size for metrics.rj   z TfNr&   )r=  r>  r’   Ú_dynamicFontr@  r<  rÎ   ÚgetInternalFontNamerù   rw   r	   )r   Ú
psfontnameÚsizerž   Úpdffontnames   &&&  r!   Ú_setFontÚPDFTextObject._setFontÝ  sd   € ð
 $ŒØŒÜ! $§.¡.Ó1ˆà××ÐØ ˆDŽOàŸ,™,×+Ñ+×?Ñ?À
ÓKˆKØ�J‰J×Ñ«K¼À¾ÐFÖGr#   c           	     ó`  € Wn         W n        Vf
   VR,          pW0n        \        V P                   4      pVP                  '       d
   RV n        R# V P                  P                  P                  V4      pV P                  P                  V: R\        V4      : R\        V4      : R24       R# )zÑSets the font.  If leading not specified, defaults to 1.2 x
font size. Raises a readable exception if an illegal font
is supplied.  Font names are case-sensitive! Keeps track
of font anme and size for metrics.Ng333333ó?rj   ú Tf ú TLr&   )r=  r>  r?  r’   rv  r@  r<  rÎ   rw  rù   rw   r	   )r   rx  ry  Úleadingrž   rz  s   &&&&  r!   ÚsetFontÚPDFTextObject.setFontì  s~   € ð
 $ŒØŒØŠ?Ø˜S•jˆGØŒÜ! $§.¡.Ó1ˆØ××ÐØ ˆDŽOàŸ,™,×+Ñ+×?Ñ?À
ÓKˆKØ�J‰J×Ñ³+¼vÀd¾|ÌVÐT[Î_Ð]Ö^r#   c                óh   € Wn         V P                  P                  R\        V4      ,          4       R# )zAdjusts inter-character spacingz%s TcN)Ú
_charSpacerù   rw   r	   )r   Ú	charSpaces   &&r!   ÚsetCharSpaceÚPDFTextObject.setCharSpaceý  s#   € à$ŒØ	�‰×	Ñ	˜7¤V¨IÓ%6Õ6Ö	7r#   c                óh   € Wn         V P                  P                  R\        V4      ,          4       R# )z…Adjust inter-word spacing.  This can be used
to flush-justify text - you get the width of the
words, and add some space between them.z%s TwN)Ú
_wordSpacerù   rw   r	   )r   Ú	wordSpaces   &&r!   ÚsetWordSpaceÚPDFTextObject.setWordSpace  s%   € ð $ŒØ�
‰
×Ñ˜'¤F¨9Ó$5Õ5Ö6r#   c                óx   € ^dV,           V n         V P                  P                  R\        V4      ,          4       R# )zStretches text out horizontallyz%s TzN)Ú_horizScalerù   rw   r	   )r   Ú
horizScales   &&r!   ÚsetHorizScaleÚPDFTextObject.setHorizScale	  s+   € à Õ+ˆÔØ�
‰
×Ñ˜'¤F¨:Ó$6Õ6Ö7r#   c                óh   € Wn         V P                  P                  R\        V4      ,          4       R# )z*How far to move down at the end of a line.z%s TLN)r?  rù   rw   r	   )r   r€  s   &&r!   Ú
setLeadingÚPDFTextObject.setLeading  s"   € àŒØ�
‰
×Ñ˜'¤F¨7£OÕ3Ö4r#   c                óö   € VR9   g   Q R4       hV^,          V P                   8w  d   V^,          pV^,          V n         V P                  V8w  d+   Wn        V P                  P                  RV,          4       R# R# )aB  Set the text rendering mode.

0 = Fill text
1 = Stroke text
2 = Fill then stroke
3 = Invisible
4 = Fill text and add to clipping path
5 = Stroke text and add to clipping path
6 = Fill then stroke and add to clipping path
7 = Add to clipping path

after we start clipping we mustn't change the mode back until after the ET
z!mode must be in (0,1,2,3,4,5,6,7)rI  N)r  r¨   é   é   é   é   é   é   )rC  rB  rù   rw   )r   Úmodes   &&r!   ÚsetTextRenderModeÚPDFTextObject.setTextRenderMode  sl   € ð Ð(Ô(ÐMÐ*MÓMÐ(Ø�1�H�t—~‘~Ô%Ø�A�IˆDØ! A�XˆDŒNØ×Ñ Ô%Ø#'Ô Ø�J‰J×Ñ˜g¨�nÖ-ñ &r#   c                óL  € \        V4       R2pV P                  R,          P                  R4      '       d4   V ;P                  V P                  ,          un        W P                  R&   R# Wn        V ;P                  V,          un        V P                  P                  V4       R# )z=Move text baseline up or down to allow superscript/subscriptsú TsNr&   )r	   rù   r]  rS  rD  rw   )r   Úriser¬   s   && r!   ÚsetRiseÚPDFTextObject.setRise*  sl   € ä�d‹|ˆn˜CÐ ˆØ�:‰:�b�>×"Ñ" 5×)Ò)à�GŠG�t—z‘zÕ!�GØ�J‰J�r‹NàŒJØ�GŠG�t�O�GØ�J‰J×Ñ˜aÖ r#   c                óÒ  a€ V P                   p\        V P                  4      pV P                  V P                  V P
                  3p . V n        V P                  P                  pVP                  '       EdÕ   VP                  oRpV P                  pVP                  '       Edþ   \        V\        4      '       Edç   ^ pV P                  pVP                  p	V P                  p
VP                  WP                   4       EF|  w  r¼RpW°P"                  8w  dY   V'       g%   \%        V
4       R\%        V P&                  4       R2pV! VP)                  W²P                   4       RV 24       W°n        V\+        V4      ,           pW˜V \,        ,           pTp\/        V4       EFÙ  w  ppWzVP0                  ,          R,          ,           pVe$   VP2                  ^ 8  g   VV P                  8w  Ed   Ve×   V3R l\5        \7        RXP8                  4      R 4       4        Uu. uF  pVR8w  g   K  VNK  	  pp\+        V4      ^8X  d2   V^ ,          P;                  R	4      '       d   V! V^ ,           R
24       MV! RRP=                  V4       R24       V P                  V8w  d   V P?                  V4       VP2                  ^ 8  d    EKÆ  VV P                  8w  d   V P?                  V4       VP2                  p. P                  pX! VP@                  ) 4       V! \C        \E        VV,          4      PG                  R4      4      4       V! VPH                  VPJ                  ,
          VP@                  ,           4       EKÜ  	  EK  	  V P                  V8w  d   V P?                  V4       EMmVP                  WP                   4       F‰  w  r¼W°P"                  8w  dc   V'       g/   \%        V P                  4       R\%        V P&                  4       R2pV! VP)                  W²P                   4       RV 24       W°n        V! R	S! V4       R24       K‹  	  EMÃVPL                  '       d~   V! VP                   PO                  VPP                  4      : R\%        V P                  4      : R\%        V P&                  4      : R24       V! RVPS                  V4      ,          4       EM4Tp\U        V4      '       d    VPW                  R4      pVP                  o\_        W.VP`                  ,           4       F~  w  ppVV8w  d`   V! VP                   PO                  VPP                  4      : R\%        V P                  4      : R\%        V P&                  4      : R24       TpV! R	S! V4       R24       K€  	  VV8w  d^   V! VP                   PO                  V P                  4      : R\%        V P                  4      : R\%        V P&                  4      : R24       Vw  V n        V n        V n        RP=                  VP8                  4      # u upi   \X         d   pTPZ                  R,          w  pp\Y        TPZ                  R,          TPZ                  ^,          : RT\]        T^
,
          ^ 4      T : RTTT : RTTT^
,            : 23,           !  hRp?ii ; i  Tw  T n        T n        T n        i ; i)z%Generates PDF text output operator(s)Nr~  r  rj   r�   c              3   óœ   <"  € T FA  w  rV'       d   R S! RP                  V4      4      ,          M\        \        V4      4      x € KC  	  R# 5i)z(%s)r#   N)rp   r	   r™   )r�   rº   r»   Úcanv_escapes   &  €r!   rŽ   Ú,PDFTextObject._formatText.<locals>.<genexpr>Z  sD   øé € ð 5|Ù<z±D°A÷ ^_°vÁÈCÏHÉHÐUVËKÓ@XÖ7XÔdjÔknÐopÓkqÓdrÔ6rÛ<zùs   ƒA	Ac                 ó"   € \        V \        4      # r   )r2   Úbytesr  s   &r!   r5   Ú+PDFTextObject._formatText.<locals>.<lambda>[  s   € ÔfpÐqrÔsxÔfyr#   Ú0r=   z TjÚ[z] TJÚlatin1z) Tjz(%s) TjÚutf8:r–  r˜  N:Nr˜  NÚ
z-->z<--)1r<  r’   r=  rù   rQ  rS  rw   rv  Ú_escaperD  r“   r2   r   rŠ   r>  ÚsplitStringrÎ   r@  r	   r?  ÚgetSubsetInternalNamer•   r   rq   Úy_offsetÚclusterr   Úfilterrx   Ú
startswithrp   r¢  Úx_offsetr©  ÚchrÚencoder¤   rŒ   Ú
_multiByterw  r›   ÚformatForPdfr   ÚdecodeÚUnicodeDecodeErrorrÂ   ÚmaxÚpdfmetrics_unicode2T1ÚsubstitutionFonts)r   rJ   Úcanvrž   ÚstateÚRÚtmplÚr0Úsd0Ú	shapeDataÚfontsizeÚsubsetr�   r´  Úsd1ÚSDr   Úsdrç   ÚAr¬   ÚfcrV  r„   r³   r¦  s   &&                       @r!   Ú_formatTextÚPDFTextObject._formatText6  så  ø€ ð
 �|‰|ˆÜ! $§.¡.Ó1ˆØ—‘˜TŸW™W d§g¡gÐ.ˆð\	1ØˆDŒJØ—
‘
×!Ñ!ˆAØ× × Ñ Ø"Ÿl™l�Ø�Ø—Z‘Z�à—=—=‘=¤Z°´Y×%?Ó%?Ø�CØŸ™�BØ $× 2Ñ 2�IØ#Ÿ~™~�HØ%)×%5Ñ%5°d¿I¹I×%F™	˜Ø"&˜Ø!§?¡?Ô2ß#'Ü*0°Ó*:Ð);¸4ÄÀtÇ}Á}Ó@UÐ?VÐVYÐ'Z Ù ×!;Ñ!;¸FÇIÁIÓ!NÐ OÈqÐQUÐPVÐWÔXØ.4œOØ!¤C¨£F�l˜Ø&¨3Ð/´)Õ;˜Ø!˜Ü%.¨r§]™E˜A˜rØ "¨b¯k©kÕ%9¸$Õ%>Õ >˜AØ&š°"·*±*¸Q´,À!ÀTÇZÁZÅ-Ø#*Ò#6ô5|Ü<CÄFÈ4ÐPQ×PZÑPZÓD[Ñ\yÔ<zô5|ó )Gñ 5|¨qð @Að  CFñ  @F÷ *+¨ñ 5| Að )Gä'*¨1£v¨q¤y°Q°qµT·_±_ÀS×5IÒ5IÙ()¨Q¨q­T¨F°#¨,­á()¨A¨c¯h©h°q«k¨]¸$Ð*?Ô(@à'+§z¡z°2¤~°t·|±|ÀBÔ7GØ')§z¡z°!¤|³Uð $% d§j¡j¤=°$·,±,¸q´/Ø*,¯*©* Ø$&§I¡I ñ ˜rŸ{™{˜lœOÙœe¤C¨¨!­£I×$4Ñ$4°XÓ$>Ó?Ô@ñ ˜bŸh™h¨¯©Õ5¸¿¹ÕC×DôA &3ñ &GðV —z‘z 2”~ t§|¡|°BÔ'7ùà%)×%5Ñ%5°d¿I¹IÖ%F™	˜Ø!§?¡?Ô2ß#'Ü*0°·±Ó*@Ð)AÀÄfÈTÏ]É]ÓF[ÐE\Ð\_Ð'` Ù ×!;Ñ!;¸FÇIÁIÓ!NÐ OÈqÐQUÐPVÐWÔXØ.4œOÙ˜A™k¨!›nÐ-¨TÐ2Ö3ó &Gð ——�áØ—I‘I×1Ñ1°$·-±-Ö@Ü˜4Ÿ>™>Ö*Ü˜4Ÿ=™=Ö)ðô ñ
 �)˜d×/Ñ/°Ó5Õ5Ö6ð �Ü˜4—=’=ðOØ#Ÿ{™{¨6Ó2˜ð
 #Ÿl™l�Ü1°$°v¸d×>TÑ>TÕ7TÖU‘D�A�qØ˜"”uÙ¨d¯i©i×.KÑ.KÈAÏJÉJÖ.WÔY_Ð`d×`nÑ`nÖYoÔqwÐx|÷  yFñ  yFö  rGð  Hô  IØ˜Ù˜™+ a›.Ð)¨Ð.Ö/ñ	 Vð
 ˜”8Ù¨$¯)©)×*GÑ*GÈÏÉÖ*WÔY_Ð`d×`nÑ`nÖYoÔqwÐx|÷  yFñ  yFö  rGð  Hô  Ià+0Ñ(ˆDŒJ˜œ ¤Ø�x‰x˜Ÿ
™
Ó#Ð#ùòC)Gøôf .ô OØŸf™f S�k™˜˜!Ü0°1·6±6¸"µ:ÐUV×U[ÑU[Ð\]×U^ÐU^Ð_cÔdgÐhiÐjlÕhlÐmnÓdoÐpqÓ_rÐswÐxyÐz{Ós|ð  ~Bð  CDð  EFð  GIõ  EIò  ~Jð  @Kð  ?Mõ  4Mñ  Oð  OûðOûð ,1Ñ(ˆDŒJ˜œ ¥úss   Á/[ Á7,[ Â$A7[ ÄC=[ È	X>È'X>È-/[ ÉE;[ ÏB[ ÑB[ Ó.Y Ó?D[ Ø>[ Ù[ÙA9[Û[Û[ Û[&c           
     ó<  € V P                   P                  pV P                  p\        V P                  4      pVP
                  pVP                  WP                  4       EF8  w  r‰W€P                  8w  di   VP                  W…P                  4      p
\        P                  V
: R \        V P                  4      : R\        V P                  4      : R24       W€n        V'       d^   \        V R2RR7       W6P                  P                   ,          V P                  ,          p\        V 4       V! \        V4       R24       V'       d.   V! R\        VP#                  V4      4       RV! V	4       R	24       V'       g   EK#  V! \        V) 4       R24       EK;  	  R
# )rj   r~  r  z -->r§   )rƒ   r   r¬  z (z)] TJN)rù   rw   r<  r’   r=  r°  r±  rÎ   r@  r²  rÃ  r	   r>  r?  ÚprintÚfaceÚ
unitsPerEmÚpdfScale)r   rJ   r_  r`  rY   rÁ  rž   r¦  rÉ  r�   rz  s   &&&&       r!   Ú_shapedTextOutÚPDFTextObject._shapedTextOut�  s*  € Ø�j‰j×ÑˆØ�|‰|ˆÜ! $§.¡.Ó1ˆØ—l‘lˆØ×)Ñ)¨$·	±	×:‰IˆFØ—‘Ô&Ø"×8Ñ8¸ÇÁÓK�Ü—‘«[¼&ÀÇÁÖ:PÔRXÐY]×YfÑYfÖRgÐhÔiØ"(”ßÜ˜˜˜D�k bÕ)ØŸ9™9×/Ñ/Õ/°4·>±>ÕA�Ü˜˜”Ù”v˜b“z�l #Ð&Ô'ßÙ�aœ˜tŸ}™}¨RÓ0Ó1Ð2°"±[À³^Ð4DÀEÐJÔKßŠrÙ”v˜r˜c“{�m 3Ð'×(ó ;r#   c                óŽ   € V P                   P                  V P                  V4      : T;'       d    R;'       g    R: 24       R# )z3prints string at current point, ignores text cursorz T*r§   N)rù   rw   rÏ  )r   rJ   ÚTStars   &&&r!   Ú_textOutÚPDFTextObject._textOut²  s6   € à�
‰
×Ñ D×$4Ñ$4°TÕ$:¸U¿_¸_Àu×=RÐ=RÐPRÑ=RÐTÖUr#   c                óæ   € V P                   V P                  P                  WP                  V P                  4      ,           V n         V P
                  P                  V P                  V4      4       R# )z9prints string at current point, text cursor moves across.N)rQ  r<  r   r=  r>  rù   rw   rÏ  ©r   rJ   s   &&r!   ÚtextOutÚPDFTextObject.textOut¶  sH   € à—'‘'˜DŸL™L×4Ñ4°T¿>¹>È4Ï>É>ÓZÕZˆŒØ�
‰
×Ñ˜$×*Ñ*¨4Ó0Ö1r#   c                ón  € V P                   V n        V P                  P                  '       d$   V P                  V P
                  ,
          V n        M"V P                  V P
                  ,           V n        V P                  V n        V P                  P                  RV P                  V4      ,          4       R# )zqprints string at current point, text cursor moves down.
Can work with no argument to simply move the cursor down.z%s T*N)
rP  rQ  r<  rO  rS  r?  rR  rù   rw   rÏ  rÝ  s   &&r!   ÚtextLineÚPDFTextObject.textLine»  sx   € ð —(‘(ˆŒØ�<‰<× × Ð Ø—g‘g §¡Õ-ˆD�Gà—g‘g §¡Õ-ˆDŒGð —7‘7ˆŒð 	�
‰
×Ñ˜' D×$4Ñ$4°TÓ$:Õ:Ö;r#   c                ó\  € \        V4      '       dO   \        V4      P                  4       P                  R4      pV^8X  d   V Uu. uF  qDP                  4       NK  	  ppM-\	        V\
        \        34      '       d   TpM^^ 8X  g   Q R4       hX F  pV P                  V4       K  	  R# u upi )zúprints multi-line or newlined strings, moving down.  One
comon use is to quote a multi-line block in your Python code;
since this may be indented, by default it trims whitespace
off each line and from the beginning; set trim=0 to preserve
whitespace.r¯  z4argument to textlines must be string,, list or tupleN)r   r   Ústripr^  r2   rn   rb   rá  )r   ÚstuffÚtrimÚlinesr   Úlines   &&&   r!   Ú	textLinesÚPDFTextObject.textLinesÌ  s�   € ô ��<Š<Ü˜eÓ$×*Ñ*Ó,×2Ñ2°5Ó9ˆEØ�QŒwÙ,1Ó2©E qŸ™ž©E�Ð2øÜ˜œu¤T˜l×+Ò+Ø‰Eà�a”4ÐOÐOÓO�4ó ˆDØ�M‰M˜$Öó ùò 3s   ÁB)c                ó"   € V P                   R.8g  # )z=PDFTextObject is true if it has something done after the initr;  )rù   rJ  s   &r!   Ú__nonzero__ÚPDFTextObject.__nonzero__à  s   € à�z‰z˜d˜VÑ#Ð#r#   c                óž   € V P                   P                  P                  R 4       V P                   P                  P	                  V RV4       R# )ÚtransparencyÚcaN)r<  rÎ   ÚensureMinPdfVersionÚ
_extgstateÚset©r   r¬   s   &&r!   r  ÚPDFTextObject._setFillAlphaä  s6   € Ø�‰×Ñ×-Ñ-¨nÔ=Ø�‰×Ñ×#Ñ# D¨¨aÖ0r#   c                óT   € V P                   P                  P                  V R V4       R# )ÚOPN©r<  rò  ró  rô  s   &&r!   r$  Ú!PDFTextObject._setStrokeOverprintè  ó   € Ø�‰×Ñ×#Ñ# D¨¨aÖ0r#   c                óT   € V P                   P                  P                  V R V4       R# )ÚopNrø  rô  s   &&r!   r+  ÚPDFTextObject._setFillOverprintë  rú  r#   c                ó|   € V P                   P                  P                  T R T;'       d    ^;'       g    ^ 4       R# )ÚOPMNrø  rô  s   &&r!   r3  ÚPDFTextObject._setOverprintMaskî  s*   € Ø�‰×Ñ×#Ñ# D¨¨q¯w¨w°Q¯|¨|¸!Ö<r#   )r<  r„  rC  rù   rÐ   r@  rÎ   rò   r=  r>  rŽ  r?  rD  rB  r‰  rQ  rP  rS  rR  rK   )r  r  Nr   )r  )r§   )r¨   )$r'   r(   r)   r*   r+   r9   rK  rA  rW  rc  rf  ri  rl  ro  rs  r{  r�  r†  r‹  r�  r“  r�  r¢  rÏ  rÖ  rÚ  rÞ  rá  ré  rì  r  r$  r+  r3  r,   r-   rh   s   @r!   r9  r9  c  s§   ø‡ € ñEôò"$òòò&òPò"ò$ò
òòHô_ò"8ò
7ò8ò
5ò
.ò.
!òe$òN)ô*Vò2ô
<ô" ò($ò1ò1ò1÷=ð =r#   r9  r%   )rG   TF)rG   TÚ	Helveticaé
   F)Nr&   r&   T):Ú__version__r+   Úreportlab.lib.colorsr   r   r   r   Úreportlab.lib.utilsr   r   r   Úreportlab.lib.rl_accelr	   Úreportlab.pdfbase.pdfmetricsr
   r’   r   rš   r   r¿  Úreportlab.pdfbase.ttfontsr   r   r   r   Ú	itertoolsr   Úoperatorr   ÚrlbidirI   rU   r   Ú	isBidiStrrb   r7   Ú
isBidiListrL   rM   ÚcopyrN   rV   r\   r_   rd   ra   ÚreÚcompileÚMrr   r‡   r¥   r¿   Ú
rtlSupportrÈ   rÁ   rÌ   r9  r«   r#   r!   Ú<module>r     sN  ðð €ð	€÷ IÓ Hß 9Ñ 9Ý )÷ Sñ  Sß OÓ OÝ Ý ðÛØ�n‰n€Gô�#ô ñ 0€Iôh�4ô hñ 2€Jò[õ /ÝÙ‹l€Gô0ò(Aò6÷(#ñ #ó Ø�jŠj˜ "§$¡$Ó'€GØ
ôô> ôB 9ðB €J÷(K<ñ K<ôZL=�Oö L=øðAÛØB€Jò%á,Ð,€I�
Ø€GØ€HòôXà^fÐf€LÐf�;Ðf Ðf°ÐfÐ?OÐR[Ø‚Jús   ÁB
C% Ã%*D