ó
    {ñ:ih› ã                   óR  • S r SSKrSSKJr  SSKJr  SSKJr  SSKJr  SSKJ	r	  SSK
r
SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKJr  SSKrSS	KJrJrJrJrJr  SS
K J!r!  SSK"J#r#J$r$J%r%J&r&J'r'  SSK(J)r)  SSK*J+r+  SSK,J-r-J.r/  SSK0J1r1  SSK2J3r3J4r4J5r5J6r6J7r7  SSK8J9r9J:r:  SSK;J<r<  SSK=J>r>  SSKJ?r?  SSK@JArA  \R„                  " \C5      rDS<S jrES rFS rGS=S jrHS=S jrIS=S jrJ\KR™                  SSSS S!S".5      rMS# rNS$ rO " S% S&5      rP\ " S' S(5      5       rQ " S) S*5      rR " S+ S,\5      rS " S- S.5      rTS/ rU " S0 S15      rV " S2 S3\AR®                  5      rX " S4 S5\&5      rY " S6 S75      rZ " S8 S9\$5      r[\%r\\#Rº                   " S: S;\#5      5       r^g)>uO   
A PDF Matplotlib backend.

Author: Jouni K SeppÃ¤nen <jks@iki.fi> and others.
é    N)Útimezone)Údatetime)ÚEnum)Útotal_ordering)ÚBytesIO)ÚImage)Ú_apiÚ_text_helpersÚ
_type1fontÚcbookÚdviread)ÚGcf)Ú_BackendÚFigureCanvasBaseÚFigureManagerBaseÚGraphicsContextBaseÚRendererBase)ÚMixedModeRenderer)ÚFigure)Úget_fontÚfontManager)ÚAFM)ÚFT2FontÚ	FaceFlagsÚKerningÚ	LoadFlagsÚ
StyleFlags)ÚAffine2DÚBboxBase)ÚPath)ÚUTC)Ú_pathé   )Ú_backend_pdf_psc                 ó   • SnSn/ n[        U 5       HG  u  pV[        U5      nX'-   U:  a	  X'S-   -  nM!  UR                  SR                  XU 5      5        UnUnMI     UR                  SR                  XS 5      5        SR                  U5      $ )z�
Make one string from sequence of strings, with whitespace in between.

The whitespace is chosen to form lines of at most *linelen* characters,
if possible.
r   r#   ó    Nó   
)Ú	enumerateÚlenÚappendÚjoin)ÚstringsÚlinelenÚcurrposÚlastiÚresultÚiÚsÚlengths           Úb/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/matplotlib/backends/backend_pdf.pyÚ_fillr5   _   s’   € ð €GØ€EØ€FÜ˜'Ö"‰ˆÜ�Q“ˆØÑ˜gÓ%Ø ‘zÑ!ŠGà�M‰M˜$Ÿ)™) G°!Ð$4Ó5Ô6ØˆEØŠGñ #ð ‡M�M�$—)‘)˜G F˜OÓ,Ô-Ø�:‰:�fÓÐó    c           
      ó  • [         R                  " S5      nU(       aB  [        R                  " [	        U5      [
        R                  5      nUR                  [        S9nO[        R                  " 5       nS[        R                   S3SU  S[        R                   3US.UEnUR                  5        VVs0 s H  u  pVUc  M
  XV_M     nnnS nS	Ul        S
 nSUl        S n	SU	l        UUUUUUUUU	S.	n
U Ht  nXZ;  a*  [        R                  " SU< S[!        U
5      < S35        M2  X¥   " XE   5      (       a  ME  [        R                  " SU SXE   < SX¥   R                   S35        Mv     SU;   a  [#        US   5      US'   U$ s  snnf )a  
Create a PDF infoDict based on user-supplied metadata.

A default ``Creator``, ``Producer``, and ``CreationDate`` are added, though
the user metadata may override it. The date may be the current time, or a
time set by the ``SOURCE_DATE_EPOCH`` environment variable.

Metadata is verified to have the correct keys and their expected types. Any
unknown keys/types will raise a warning.

Parameters
----------
backend : str
    The name of the backend to use in the Producer value.

metadata : dict[str, Union[str, datetime, Name]]
    A dictionary of metadata supplied by the user with information
    following the PDF specification, also defined in
    `~.backend_pdf.PdfPages` below.

    If any value is *None*, then the key will be removed. This can be used
    to remove any pre-defined values.

Returns
-------
dict[str, Union[str, datetime, Name]]
    A validated dictionary of metadata.
ÚSOURCE_DATE_EPOCH)ÚtzinfozMatplotlib vz, https://matplotlib.orgzMatplotlib z
 backend v)ÚCreatorÚProducerÚCreationDatec                 ó"   • [        U [        5      $ ©N)Ú
isinstanceÚstr©Úxs    r4   Úis_string_likeÚ-_create_pdf_info_dict.<locals>.is_string_like¤   s   € Ü˜!œSÓ!Ð!r6   zan instance of strc                 ó"   • [        U [        5      $ r>   )r?   r   rA   s    r4   Úis_dateÚ&_create_pdf_info_dict.<locals>.is_date¨   s   € Ü˜!œXÓ&Ð&r6   z an instance of datetime.datetimec                 óT   • [        U [        5      (       a  U R                  S;   $ U S;   $ )N)s   Trues   Falses   Unknown)ÚTrueÚFalseÚUnknown©r?   ÚNameÚnamerA   s    r4   Úcheck_trappedÚ,_create_pdf_info_dict.<locals>.check_trapped¬   s+   € Ü�aœ×ÑØ—6‘6Ð<Ñ<Ð<àÐ4Ñ4Ð4r6   z#one of {"True", "False", "Unknown"})	ÚTitleÚAuthorÚSubjectÚKeywordsr:   r;   r<   ÚModDateÚTrappedzUnknown infodict keyword: z. Must be one of Ú.zBad value for infodict keyword z. Got z which is not rV   )ÚosÚgetenvr   ÚfromtimestampÚintr   ÚutcÚreplacer!   ÚtodayÚmplÚ__version__ÚitemsÚtext_for_warningr	   Úwarn_externalÚsetrM   )ÚbackendÚmetadataÚsource_date_epochÚsource_dateÚinfoÚkÚvrC   rF   rO   Úkeywordss              r4   Ú_create_pdf_info_dictrm   u   s³  € ô@ Ÿ	š	Ð"5Ó6ÐÞÜ×,Ò,¬SÐ1BÓ-CÄXÇ\Á\ÓRˆØ!×)Ñ)´Ð)Ð5‰ä—n’nÓ&ˆð "¤#§/¡/Ð!2Ð2JÐKØ! ' ¨*´S·_±_Ð4EÐFØ#ñð ð	€Dð  $Ÿz™zœ|Ô=š|‘V�a¨q‹DˆAŠD™|€DÑ=ò"à&:€NÔ#ò'àA€GÔò5ð
 &K€MÔ"ð  Ø Ø!Ø"Ø!Ø"ØØØ ñ
€Hó ˆØÓÜ×ÒÐ!;¸A¹5ð A1Ü14°X³Ñ0AÀð Dö Eà’˜T™W×%Ó%Ü×ÒÐ!@ÀÀð D&Ø&*¡g¡[°Ø"*¡+×">Ñ">Ð!?¸qð Bö Cñ ð �DÓÜ˜t I™Ó/ˆˆY‰à€KùóO >s   Â6	F	ÃF	c                 óB  • U R                  S5      nU R                  5       nUb  UR                  nO6[        R                  (       a  [        R
                  nO[        R                  nUS:X  a  US-  nU$ US:  a  USU* S-  U* S-  4-  -  nU$ USUS-  US-  4-  -  nU$ )zL
Convert a datetime to a PDF string representing it.

Used for PDF and PGF.
zD:%Y%m%d%H%M%Sr   ÚZz+%02d'%02d'i  z-%02d'%02d')ÚstrftimeÚ	utcoffsetÚsecondsÚtimeÚdaylightÚaltzoner   )ÚdÚrÚzs      r4   Ú_datetime_to_pdfry   Ì   s¯   € ð 	
�
‰
Ð#Ó$€AØ	�‰‹€AØ�}Ø�I‰I‰ä�=�=Ü—‘‰Aä—‘ˆAØˆAƒvØ	ˆS‰ˆð
 €Hð	 
ˆQ‹Ø	ˆ] ˜r d™l¨a¨R°4©KÐ8Ñ8Ñ8ˆð €Hð 	
ˆ]˜a 4™i¨¨T©Ð2Ñ2Ñ2ˆØ€Hr6   c                 ó  • [         R                  " U* 5      n[         R                  " U5      n[         R                  " U5      nXU-  -   nXU-  -   nXU-  -   X5-  -   n	XU-  -
  X6-  -   n
XU-  -   nXU-  -
  nX4X¼4Xš4Xx44$ )zJ
Calculate the coordinates of rectangle when rotated by angle around x, y
)ÚmathÚradiansÚsinÚcos)rB   ÚyÚwidthÚheightÚangleÚ	sin_angleÚ	cos_angleÚaÚbÚcrv   ÚeÚfs                r4   Ú!_calculate_quad_point_coordinatesrŠ   ä   s£   € ô
 �LŠL˜%˜Ó €EÜ—’˜“€IÜ—’˜“€IØ	�YÑÑ€AØ	�YÑÑ€AØ	�IÑÑ Ñ 2Ñ2€AØ	�IÑÑ Ñ 2Ñ2€AØ	�IÑÑ€AØ	�IÑÑ€AØˆF�Q�F˜Q˜F Q FÐ+Ð+r6   c                 ó8  • [        XUX45      nUS-  (       a  SOSn[        S U 5       5      U-
  n[        S U 5       5      U-
  n[        S U 5       5      U-   n	[        S U 5       5      U-   n
[        [        R
                  R                  U5      5      XxXš44$ )z[
Get the coordinates of rotated rectangle and rectangle that covers the
rotated rectangle.
éZ   gñhãˆµøä>r   c              3   ó*   #   • U  H	  oS    v •  M     g7f©r   N© ©Ú.0rk   s     r4   Ú	<genexpr>Ú,_get_coordinates_of_block.<locals>.<genexpr>  ó   é € Ð'šh˜�!–šhùó   ‚c              3   ó*   #   • U  H	  oS    v •  M     g7f©r#   Nr�   r�   s     r4   r’   r“     r”   r•   c              3   ó*   #   • U  H	  oS    v •  M     g7frŽ   r�   r�   s     r4   r’   r“     r”   r•   c              3   ó*   #   • U  H	  oS    v •  M     g7fr—   r�   r�   s     r4   r’   r“     r”   r•   )rŠ   ÚminÚmaxÚtupleÚ	itertoolsÚchainÚfrom_iterable)rB   r   r€   r�   r‚   ÚverticesÚpadÚmin_xÚmin_yÚmax_xÚmax_ys              r4   Ú_get_coordinates_of_blockr¦   õ   s¢   € ô 1°°uØ17ó@€Hð ˜R—Z‰' Q€CÜÑ'™hÓ'Ó'¨#Ñ-€EÜÑ'™hÓ'Ó'¨#Ñ-€EÜÑ'™hÓ'Ó'¨#Ñ-€EÜÑ'™hÓ'Ó'¨#Ñ-€EÜ”)—/‘/×/Ñ/°Ó9Ó:Ø˜5Ð(ð*ð *r6   c                 ó¬   • [        XX4U5      u  pg[        S5      [        S5      U/ SQ[        S5      U R                  5       S.S.nUS-  (       a  XhS'   U$ )	z5
Create a link annotation object for embedding URLs.
ÚAnnotÚLink©r   r   r   ÚURI)ÚSr«   )ÚTypeÚSubtypeÚRectÚBorderÚArŒ   Ú
QuadPoints)r¦   rM   Úget_url)	ÚgcrB   r   r€   r�   r‚   Ú
quadpointsÚrectÚlink_annotations	            r4   Ú_get_link_annotationr¸     s\   € ô 1°°uÀeÓLÑ€Jä�W“Ü˜“<ØÚä�e“Ø—:‘:“<ñ
ñ	€Oð ˆr‡zà(2˜Ñ%ØÐr6   z\\z\(z\)z\nz\r)Ú\Ú(Ú)Ú
Úc                 ó¸  • [        U S5      (       a  U R                  5       $ [        U [        [        R
                  45      (       aK  [        R                  " U 5      (       d  [        S5      eSU -  nUR                  S5      R                  S5      $ [        U [        5      (       a  SS/U    $ [        U [        [        R                  45      (       a  SU -  $ [        U [        5      (       aU  [        U R                  5       (       a  U R                  S	5      5      $ [        R                   U R                  S
5      -   5      $ [        U ["        5      (       a9  SU R%                  S5      R'                  [(        5      R                  S5      -   S-   $ [        U [*        5      (       aY  [-        S/U R/                  5        VVs/ s H-  u  p#[1        U5      R                  5       S-   [        U5      -   PM/     snnQSP5      $ [        U [2        [4        45      (       a*  [-        S/U  Vs/ s H  n[        U5      PM     snQSP5      $ U c  g[        U [6        5      (       a  [        [9        U 5      5      $ [        U [:        5      (       a/  [-        U R<                   Vs/ s H  n[        U5      PM     sn5      $ [?        S[A        U 5       S35      es  snnf s  snf s  snf )z!Map Python objects to PDF syntax.ÚpdfReprz%Can only output finite numbers in PDFs   %.10fó   0ó   .s   falses   trues   %dÚasciizUTF-16BEó   (zlatin-1ó   )s   <<r&   s   >>ó   [ó   ]s   nullz$Don't know a PDF representation for z objects)!Úhasattrr¿   r?   ÚfloatÚnpÚfloatingÚisfiniteÚ
ValueErrorÚrstripÚboolr[   Úintegerr@   ÚisasciiÚencodeÚcodecsÚBOM_UTF16_BEÚbytesÚdecodeÚ	translateÚ_str_escapesÚdictr5   ra   rM   Úlistrœ   r   ry   r   ÚboundsÚ	TypeErrorÚtype)Úobjrw   rj   rk   Úvals        r4   r¿   r¿   +  s„  € ô ˆs�I×ÑØ�{‰{‹}Ðô
 
�Cœ%¤§¡Ð-×	.Ñ	.Ü�{Š{˜3×ÑÜÐDÓEÐEØ�s‰NˆØ�x‰x˜‹~×$Ñ$ TÓ*Ð*ô 
�Cœ×	Ñ	Ø˜'Ð" 3Ñ'Ð'ô 
�Cœ#œrŸz™zÐ*×	+Ñ	+Ø�s‰{Ðô 
�Cœ×	Ñ	Ü¨c¯k©k¯m©m�s—z‘z 'Ó*ó Jð 	JÜ"×/Ñ/°#·*±*¸ZÓ2HÑHóJð 	Jô 
�Cœ×	Ñ	àØ�J‰J�yÓ!×+Ñ+¬LÓ9×@Ñ@ÀÓKñLàñð	ô 
�Cœ×	Ñ	ÜØð
à@CÇ	Á	ÄÔLÂ¹¸Œd�1‹g�o‰oÓ $Ñ&¬°«Ô3ÁÒLð
ð ð
ó ð 	ô 
�Cœ$¤˜×	'Ñ	'Ü�dÐA±cÓ:²c¨sœg cžl±cÑ:ÐA¸DÐAÓBÐBð 
‰Øô 
�Cœ×	"Ñ	"ÜÔ'¨Ó,Ó-Ð-ô 
�Cœ×	"Ñ	"Ü¨c¯jªjÓ9ªj s”g˜c–l©jÑ9Ó:Ð:ô Ð>¼tÀC»y¸kð J"ð "ó #ð 	#ùó+ Mùò ;ùò :s   Æ?4KÈ$K
ÊKc                 óB   • U S:X  a  US:*  $ U S:X  a  US:*  $ [        5       e)zø
Returns True if the font is able to provide codepoint *glyph* in a PDF.

For a Type 3 font, this method returns True only for single-byte
characters. For Type 42 fonts this method return True if the character is
from the Basic Multilingual Plane.
é   éÿ   é*   éÿÿ  )ÚNotImplementedError)ÚfonttypeÚglyphs     r4   Ú_font_supports_glyphrç   t  s/   € ð �1ƒ}Ø˜‰|ÐØ�2ƒ~Ø˜‰~ÐÜ
Ó
Ðr6   c                   ó0   • \ rS rSrSrS rS rS rS rSr	g)	Ú	Referenceiƒ  zJ
PDF reference object.

Use PdfFile.reserveObject() to create References.
c                 ó   • Xl         g r>   ©Úid©Úselfrì   s     r4   Ú__init__ÚReference.__init__Š  s   € Ø�r6   c                 ó    • SU R                   -  $ )Nz<Reference %d>rë   ©rî   s    r4   Ú__repr__ÚReference.__repr__�  s   € Ø $§'¡'Ñ)Ð)r6   c                 ó    • SU R                   -  $ )Ns   %d 0 Rrë   rò   s    r4   r¿   ÚReference.pdfRepr�  s   € Ø˜4Ÿ7™7Ñ"Ð"r6   c                 óx   • UR                   nU" SU R                  -  5        U" [        U5      5        U" S5        g )Nó	   %d 0 obj
s   
endobj
)Úwriterì   r¿   )rî   ÚcontentsÚfilerù   s       r4   rù   ÚReference.write“  s1   € Ø—
‘
ˆÙˆm˜dŸg™gÑ%Ô&ÙŒg�hÓÔ ÙˆmÕr6   rë   N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rï   ró   r¿   rù   Ú__static_attributes__r�   r6   r4   ré   ré   ƒ  s   † ñòò*ò#õr6   ré   c                   óÊ   • \ rS rSrSrSr1 \" S5      k1 \" \" S5      \" S5      S-   5      k-
   V Vs0 s H	  nUSU-  _M     snn rS	 r	S
 r
S rS rS rS rS rSrgs  snn f )rM   iš  zPDF name object.©rN   é   Ú!Ú~r#   z#%02xc                 óü   • [        U[        5      (       a  UR                  U l        g [        U[        5      (       a  UR	                  S5      nUR                  U R                  5      R                  S5      U l        g )NrÂ   )r?   rM   rN   rÔ   rÕ   rÖ   Ú_hexifyrÑ   )rî   rN   s     r4   rï   ÚName.__init__¡  sT   € Ü�dœD×!Ñ!ØŸ	™	ˆD�Iä˜$¤×&Ñ&Ø—{‘{ 7Ó+�ØŸ™ t§|¡|Ó4×;Ñ;¸GÓDˆD�Ir6   c                 ó    • SU R                   -  $ )Nz	<Name %s>r  rò   s    r4   ró   ÚName.__repr__©  s   € Ø˜TŸY™YÑ&Ð&r6   c                 ó>   • SU R                   R                  S5      -   $ )NÚ/rÂ   )rN   rÕ   rò   s    r4   Ú__str__ÚName.__str__¬  s   € Ø�T—Y‘Y×%Ñ% gÓ.Ñ.Ð.r6   c                 ób   • [        U[        5      =(       a    U R                  UR                  :H  $ r>   rL   ©rî   Úothers     r4   Ú__eq__ÚName.__eq__¯  s!   € Ü˜%¤Ó&×B¨4¯9©9¸¿
¹
Ñ+BÐBr6   c                 ób   • [        U[        5      =(       a    U R                  UR                  :  $ r>   rL   r  s     r4   Ú__lt__ÚName.__lt__²  s!   € Ü˜%¤Ó&×A¨4¯9©9°u·z±zÑ+AÐAr6   c                 ó,   • [        U R                  5      $ r>   )ÚhashrN   rò   s    r4   Ú__hash__ÚName.__hash__µ  s   € Ü�D—I‘I‹Ðr6   c                 ó    • SU R                   -   $ )Nó   /r  rò   s    r4   r¿   ÚName.pdfRepr¸  s   € Ø�d—i‘iÑÐr6   N)rý   rþ   rÿ   r   r  Ú	__slots__ÚrangeÚordr	  rï   ró   r  r  r  r  r¿   r  ©r‘   r‡   s   00r4   rM   rM   š  sƒ   † áØ€Ià%™% ›*˜Ð(H©%±°C³¹#¸c»(ÀQ¹,Ó*GÐ(HÒHôJÚH�1ð �'˜A‘+Š~ÙHòJ€GòEò'ò/òCòBòõ ùó5Js   ³ArM   c                   ó$   • \ rS rSrSrS rS rSrg)ÚVerbatimi¼  zEStore verbatim PDF command content for later inclusion in the stream.c                 ó   • Xl         g r>   ©Ú_x)rî   rB   s     r4   rï   ÚVerbatim.__init__¾  s   € Ø�r6   c                 ó   • U R                   $ r>   r'  rò   s    r4   r¿   ÚVerbatim.pdfReprÁ  s   € Ø�w‰wˆr6   r'  N)rý   rþ   rÿ   r   r  rï   r¿   r  r�   r6   r4   r%  r%  ¼  s   † ÙOòõr6   r%  c                   óÂ   • \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!S r"S!r#S"r$S#r%S$r&S%r'S&r(S'r)S( r*\+S) 5       r,S*r-g+),ÚOpiÅ  z'PDF operators (not an exhaustive list).ó   bó   Bó   fó   hó   só   Só   ns   BTs   ETó   cs   reó   ló   ms   cms   Doó   Gó   gs   RGs   rgs   CSs   css   SCNs   scnó   dó   jó   Js   gsó   qó   Qs   Tds   Tfs   Tms   Tjs   TJó   wó   Ws   shc                 ó   • U R                   $ r>   )Úvaluerò   s    r4   r¿   Ú
Op.pdfReprî  s   € Ø�z‰zÐr6   c                 óŒ   • U(       a  U(       a  U R                   $ U R                  $ U(       a  U R                  $ U R                  $ )zº
Return the PDF operator to paint a path.

Parameters
----------
fill : bool
    Fill the path with the fill color.
stroke : bool
    Stroke the outline of the path with the line color.
)Úfill_strokeÚstrokeÚfillÚendpath)ÚclsrG  rF  s      r4   Ú
paint_pathÚOp.paint_pathñ  s4   € ö ÞØ—‘Ð&à—z‘zÐ!æØ—x‘x�à—{‘{Ð"r6   r�   N).rý   rþ   rÿ   r   r  Úclose_fill_strokerE  rG  Ú	closepathÚclose_strokerF  rH  Ú
begin_textÚend_textÚcurvetoÚ	rectangleÚlinetoÚmovetoÚconcat_matrixÚuse_xobjectÚsetgray_strokeÚsetgray_nonstrokeÚsetrgb_strokeÚsetrgb_nonstrokeÚsetcolorspace_strokeÚsetcolorspace_nonstrokeÚsetcolor_strokeÚsetcolor_nonstrokeÚsetdashÚsetlinejoinÚ
setlinecapÚ	setgstateÚgsaveÚgrestoreÚtextposÚ
selectfontÚ
textmatrixÚshowÚshowkernÚsetlinewidthÚclipÚshadingr¿   ÚclassmethodrJ  r  r�   r6   r4   r-  r-  Å  sÝ   † Ù1àÐØ€KØ€DØ€IØ€LØ€FØ€GØ€JØ€HØ€GØ€IØ€FØ€FØ€MØ€KØ€NØÐØ€MØÐØ ÐØ#ÐØ€OØÐØ€GØ€KØ€JØ€IØ€EØ€HØ€GØ€JØ€JØ€DØ€HØ€LØ€DØ€Gòð ñ#ó ó#r6   r-  c                   ó>   • \ rS rSrSrSrSS jrS rS rS r	S	 r
S
rg)ÚStreami	  z›
PDF stream object.

This has no pdfRepr method. Instead, call begin(), then output the
contents of the stream by calling write(), and finally call end().
)rì   r)   ÚpdfFilerû   ÚcompressobjÚextraÚposNc                 ót  • Xl         X l        X0l        UR                  U l        SU l        Uc  [        5       U l        OUR                  5       U l        Ub'  U R                  R                  [        S5      US.5        U R                  R                  U R                   5        [        R                  S   (       a3  U(       d,  [        R
                  " [        R                  S   5      U l        U R                  c  [        5       U l        gU R!                  5         U R                  R#                  5       U l        g)aÐ  
Parameters
----------
id : int
    Object id of the stream.
len : Reference or None
    An unused Reference object for the length of the stream;
    None means to use a memory buffer so the length can be inlined.
file : PdfFile
    The underlying object to write the stream to.
extra : dict from Name to anything, or None
    Extra key-value pairs to include in the stream header.
png : dict or None
    If the data is already png encoded, the decode parameters.
NÚFlateDecode)ÚFilterÚDecodeParmsúpdf.compression)rì   r)   rp  Úfhrû   rq  rØ   rr  ÚcopyÚupdaterM   Ú
recordXrefr_   ÚrcParamsÚzlibr   Ú_writeHeaderÚtellrs  )rî   rì   r)   rû   rr  Úpngs         r4   rï   ÚStream.__init__  sß   € ð  ŒØŒØŒØ—G‘GˆŒ	ØˆÔØ‰=Ü›ˆD�JàŸ™›ˆDŒJØ‰?Ø�J‰J×Ñ¬d°=Ó.AØ.1ñ3ô 4ð 	�‰×Ñ §¡Ô(Ü�<‰<Ð)×*¶3Ü#×/Ò/Ü—‘Ð.Ñ/ó 1ˆDÔà�8‰8ÑÜ›	ˆD�Ià×ÑÔØ—y‘y—~‘~Ó'ˆD�Hr6   c                 ó  • U R                   R                  nU" SU R                  -  5        U R                  nU R                  US'   [
        R                  S   (       a  [        S5      US'   U" [        U5      5        U" S5        g )Nrø   ÚLengthrx  ru  rv  s   
stream
)	rû   rù   rì   rr  r)   r_   r}  rM   r¿   )rî   rù   rØ   s      r4   r  ÚStream._writeHeader9  se   € Ø—	‘	—‘ˆÙˆm˜dŸg™gÑ%Ô&Ø�z‰zˆØŸ™ˆˆX‰Ü�<‰<Ð)×*Ü! -Ó0ˆD�‰NáŒg�d‹mÔÙˆmÕr6   c                 ó&  • U R                  5         U R                  cŒ  U R                  R                  5       n[        U5      U l        U R                  R
                  U l        U R                  5         U R                  R                  U5        U R                  R                  S5        gU R                  R                  5       U R                  -
  nU R                  R                  S5        U R                  R                  U R                  U5        g)zFinalize stream.Ns   
endstream
endobj
)Ú_flushr)   rû   Úgetvaluerp  ry  r  rù   r€  rs  ÚwriteObject)rî   rú   r3   s      r4   ÚendÚ
Stream.endD  s²   € ð 	�‰ŒØ�8‰8ÑØ—y‘y×)Ñ)Ó+ˆHÜ˜8“}ˆDŒHØŸ™Ÿ™ˆDŒIØ×ÑÔØ�I‰I�O‰O˜HÔ%Ø�I‰I�O‰OÐ4Õ5à—Y‘Y—^‘^Ó%¨¯©Ñ0ˆFØ�I‰I�O‰OÐ4Ô5Ø�L‰L×$Ñ$ T§X¡X¨vÕ6r6   c                 óÂ   • U R                   c  U R                  R                  U5        gU R                   R                  U5      nU R                  R                  U5        g)zWrite some data on the stream.N)rq  rû   rù   Úcompress)rî   ÚdataÚ
compresseds      r4   rù   ÚStream.writeT  sF   € ð ×ÑÑ#Ø�I‰I�O‰O˜DÕ!à×)Ñ)×2Ñ2°4Ó8ˆJØ�I‰I�O‰O˜JÕ'r6   c                 ó˜   • U R                   b=  U R                   R                  5       nU R                  R                  U5        SU l         gg)zFlush the compression object.N)rq  Úflushrû   rù   )rî   r�  s     r4   r‡  ÚStream._flush]  sA   € ð ×ÑÑ'Ø×)Ñ)×/Ñ/Ó1ˆJØ�I‰I�O‰O˜JÔ'Ø#ˆDÕð (r6   )rq  rr  rû   rì   r)   rp  rs  ©NN)rý   rþ   rÿ   r   r  r   rï   r  rŠ  rù   r‡  r  r�   r6   r4   ro  ro  	  s)   † ñð P€Iô%(òN	ò7ò (õ$r6   ro  c                 ó>  • [        U SS9nSUR                  -  n0 nU GHú  nUR                  U[        R                  5      n[
        R                  " UR                  S/UR                  Q5      U-  S-   R                  [        5      nUR                  5       u  p‰US-  R                  [        5      n[
        R                  " U	S:H  5      u  n
U
SS S2   n[
        R                  " [        1 Uk1 U
S-
  k-  1 U
S-   k-  5      [        5      nUXŒ   XŒS-
     XŒS-      -   S-  R                  [        5      :H  R                  SS	9   nUR                  U4S
;   a  US S 2S4==   S-  ss'   Xƒ-  S-   R                  [        5      nX�S-
     X�S-      -   S-  R                  [        5      X�'   SR!                  [#        [$        U5      5      R'                  S5      S-   [(        R*                  " [-        X‰5      S S SS S/ SQS5      -   S-   XBR/                  U5      '   GMý     U$ )Nr#   )Úhinting_factoréè  r   g      à?é@   rà   é   ©Úaxis))úDejaVuSerif-ItalicéM   )rœ  é‡   Ú rÂ   s    d1
Féÿÿÿÿ)r7  r6  r6   r5  r1  Tr0  )r   Úunits_per_EMÚ
load_glyphr   ÚNO_SCALErÉ   ÚarrayÚhoriAdvanceÚbboxÚastyper[   Úget_pathÚnonzeroÚsortedÚallÚpostscript_namer+   Úmapr@   rÑ   r"   Úconvert_to_stringr    Úget_glyph_name)Ú	font_pathÚ	glyph_idsÚfontÚconvÚprocsÚglyph_idÚgÚd1rk   r‡   ÚquadsÚquads_onÚquads_mid_onÚimplicits                 r4   Ú_get_pdf_charprocsr¼  f  s  € Ü�I¨aÑ0€DØ�$×#Ñ#Ñ#€DØ€EÜˆØ�O‰O˜H¤i×&8Ñ&8Ó9ˆô �hŠh˜Ÿ™ qÐ2¨1¯6©6Ð2Ó3°dÑ:¸RÑ?×GÑGÌÓLˆØ�}‰}‹‰ˆØ�‰V�O‰OœCÓ ˆô —’˜A ™FÓ#‰ˆØ˜˜˜A˜‘;ˆÜ—x’xÜ�;�X�;  E¨A¡I Ñ/°.°U¸Q±Y°.Ñ@ÓAÄ3óHˆàØ‰_Ø 1Ñ$Ñ%¨¸Ñ*:Ñ(;Ñ;¸qÑ@×HÑHÌÓMñNç‰S�aˆSˆ[ñˆð × Ñ  (Ð+ð 0
ó 
ð Ša�ˆd‹G�q‰L‹GØ‰X˜‰]×"Ñ"¤3Ó'ˆà˜!‰|‰_˜q¨A¡™Ñ.°!Ñ3·V±V¼C³[ð 	
‰ð �H‰H”Sœ˜b“\Ó"×)Ñ)¨'Ó2°XÑ=Ü×%Ò%Ü�Q“
˜D $¨¨t°Râ-¨tó5ñ5ð
 ñð 	×!Ñ! (Ó+Ô,ñA ðN €Lr6   c                   óª  ^ • \ rS rSrSrS7U 4S jjrS r/ SQ4S jrS rS	 r	S
 r
S rS rS8S jrS rSS.S jrS rS rS rS rS rS rS rS rSrS rS rS rS rS rS r\R@                  " S 5      " \!" S! 5      5      r"S" r#S# r$S$ r%S% r&S& r'S' r(S7S( jr)S) r*S* r+S+ r,S, r-S- r.\/S9S. j5       r0S:S/ jr1S;S0 jr2S1 r3S2 r4S3 r5S4 r6S5 r7S6r8U =r9$ )<ÚPdfFilei”  zPDF file object.Nc                 ó  >• [         T	U ]  5         [        R                  " S5      U l        / SQ/U l        SU l        SU l        SU l        [        R                  " USSS9u  p4U(       d   UR                  5       U l        UnSU l        X0l        SU l        UR!                  S	5        UR!                  S
5        U R#                  S5      U l        U R#                  S5      U l        / U l        U R#                  S5      U l        U R#                  S5      U l        U R#                  S5      U l        U R#                  S5      U l        U R#                  S5      U l        U R#                  S5      U l        [7        S5      U R&                  S.nU R9                  U R$                  U5        [;        SU=(       d    0 5      U l        0 U l        S [        R                  " S5       5       U l         0 U l!        0 U l"        [F        RH                  " 5       U l%        0 U l&        S [        R                  " S5       5       U l'        0 U l(        S [        R                  " S5       5       U l)        / U l*        0 U l+        S [        R                  " S5       5       U l,        / U l-        0 U l.        S [        R                  " S5       5       U l/        0 U l0        0 U l1        / U l2        / U l3        / U l4        SRk                  5        Vs/ s H  n[7        U5      PM     nnU R*                  U R2                  U R,                  U R.                  U R0                  US.nU R9                  U R4                  U5        g! [         a    [        5       nXl         GNøf = fs  snf )a{  
Parameters
----------
filename : str or path-like or file-like
    Output target; if a string, a file will be opened for writing.

metadata : dict from strings to strings and dates
    Information dictionary object (see PDF reference section 10.2.1
    'Document Information Dictionary'), e.g.:
    ``{'Creator': 'My software', 'Author': 'Me', 'Title': 'Awesome'}``.

    The standard keys are 'Title', 'Author', 'Subject', 'Keywords',
    'Creator', 'Producer', 'CreationDate', 'ModDate', and
    'Trapped'. Values have been predefined for 'Creator', 'Producer'
    and 'CreationDate'. They can be removed by setting them to `None`.
r#   )r   rã   úthe zero objectFNr   ÚwbT)Úreturn_openeds	   %PDF-1.4
s   %¬Ü «º
ÚrootÚpagesÚfontszextended graphics statesztiling patternszGouraud triangleszexternal objectsÚ	resourcesÚCatalog)r­   ÚPagesÚpdfc              3   ó>   #   • U  H  n[        S U 35      v •  M     g7f)ÚFN©rM   ©r‘   r1   s     r4   r’   Ú#PdfFile.__init__.<locals>.<genexpr>Ó  ó   é € Ð"MÒ:L°Q¤4¨!¨A¨3¨§= =Ò:Lùó   ‚c              3   ó>   #   • U  H  n[        S U 35      v •  M     g7f)r±   NrÌ  rÍ  s     r4   r’   rÎ  Ú  s   é € Ð KÒ8J°1¤¨¨!¨ g§ Ò8JùrÐ  c              3   ó>   #   • U  H  n[        S U 35      v •  M     g7f)ÚSMNrÌ  rÍ  s     r4   r’   rÎ  Ü  s   é € ÐJÒ7I°!œt b¨¨ HŸ~˜~Ò7IùrÐ  c              3   ó>   #   • U  H  n[        S U 35      v •  M     g7f)ÚHNrÌ  rÍ  s     r4   r’   rÎ  ß  rÏ  rÐ  c              3   ó>   #   • U  H  n[        S U 35      v •  M     g7f)ÚINrÌ  rÍ  s     r4   r’   rÎ  ã  s   é € ÐEÒ2D¨Qœ4 ! A 3 Ÿ=˜=Ò2DùrÐ  úPDF Text ImageB ImageC ImageI)ÚFontÚXObjectÚ	ExtGStateÚPatternÚShadingÚProcSet)6Úsuperrï   r�   ÚcountÚ_object_seqÚ	xrefTableÚpassed_in_file_objectÚoriginal_file_likeÚ	tell_baser   Úto_filehandler€  ÚOSErrorr   ry  Úcurrentstreamrù   ÚreserveObjectÚ
rootObjectÚpagesObjectÚpageListÚ
fontObjectÚ_extGStateObjectÚhatchObjectÚgouraudObjectÚXObjectObjectÚresourceObjectrM   r‰  rm   ÚinfoDictÚ	fontNamesÚ_internal_font_seqÚdviFontInfoÚtype1Descriptorsr$   ÚCharacterTrackerÚ_character_trackerÚalphaStatesÚ_alpha_state_seqÚ_soft_mask_statesÚ_soft_mask_seqÚ_soft_mask_groupsÚ_hatch_patternsÚ_hatch_pattern_seqÚgouraudTrianglesÚ_imagesÚ
_image_seqÚmarkersÚmulti_byte_charprocsÚpathsÚ_annotationsÚpageAnnotationsÚsplit)
rî   Úfilenamerf   ry  ÚopenedrÃ  rB   ÚprocsetsrÆ  Ú	__class__s
            €r4   rï   ÚPdfFile.__init__—  s
  ø€ ô" 	‰ÑÔä$Ÿ?š?¨1Ó-ˆÔÚ7Ð8ˆŒØ%*ˆÔ"Ø"&ˆÔØˆŒÜ×(Ò(¨°4ÀtÑL‰
ˆÞð2Ø!)§¡£�”ð
 �Ø-1�Ô*àŒØ!ˆÔØ
�‰�Ôð 	�‰Ð(Ô)à×,Ñ,¨VÓ4ˆŒØ×-Ñ-¨gÓ6ˆÔØˆŒØ×,Ñ,¨WÓ5ˆŒØ $× 2Ñ 2Ð3MÓ NˆÔØ×-Ñ-Ð.?Ó@ˆÔØ!×/Ñ/Ð0CÓDˆÔØ!×/Ñ/Ð0BÓCˆÔØ"×0Ñ0°Ó=ˆÔä˜Y›Ø×)Ñ)ñ+ˆà×Ñ˜Ÿ™¨$Ô/ä-¨e°X·^ÀÓDˆŒàˆŒÙ"M¼)¿/º/È!Ô:LÓ"MˆÔØˆÔà "ˆÔÜ"1×"BÒ"BÓ"DˆÔàˆÔÙ K¼	¿ºÈÔ8JÓ KˆÔØ!#ˆÔÙJ´y·²ÀqÔ7IÓJˆÔØ!#ˆÔØ!ˆÔÙ"M¼)¿/º/È!Ô:LÓ"MˆÔØ "ˆÔàˆŒÙE´)·/²/À!Ô2DÓEˆŒàˆŒØ$&ˆÔ!àˆŒ
ð
 ˆÔð  "ˆÔð &E×%JÑ%JÔ%LÓMÒ%L ”D˜–GÑ%LˆÐMð
 "Ÿ_™_Ø $× 2Ñ 2Ø"&×"7Ñ"7Ø $× 0Ñ 0Ø $× 2Ñ 2Ø (ñ*ˆ	ð 	×Ñ˜×,Ñ,¨iÕ8øôW ó 3Ü“Y�Ø*2×'ð3üò@ Ns   Á*M# Ë4NÍ#NÎ Nc                 ó  • U R                  5         XsU l        U l        U R                  S5      nU R                  S5      n[	        S5      U R
                  U R                  SSSU-  SU-  /UUS.nU R                  S5      nU R                  Xe5        U R                  R                  U5        U R                  R                  X@R                  45        U R                  UR                  U R                  S5      5        U R                  [	        S	5      [        R                   5        U R                  [	        S	5      [        R"                  5        U R                  [$        R&                  S
   [        R(                  5        / U l        g )Nzpage contentsÚannotationsÚPager   éH   )r­   ÚParentÚ	ResourcesÚMediaBoxÚContentsÚAnnotsÚpagezlength of content streamÚ	DeviceRGBÚround)Ú	endStreamr€   r�   ré  rM   rë  rò  r‰  rì  r*   r  r  ÚbeginStreamrì   Úoutputr-  r[  r\  ÚGraphicsContextPdfÚ
joinstylesr`  )rî   r€   r�   ÚcontentObjectÚannotsObjectÚthePageÚ
pageObjects          r4   ÚnewPageÚPdfFile.newPage   sE  € Ø�‰Ôà"'ÐˆŒ
�D”KØ×*Ñ*¨?Ó;ˆØ×)Ñ)¨-Ó8ˆÜ ›<Ø!×-Ñ-Ø $× 3Ñ 3Ø ! 1 b¨5¡j°"°v±+Ð>Ø,Ø)ñˆð ×'Ñ'¨Ó/ˆ
Ø×Ñ˜Ô-Ø�‰×Ñ˜ZÔ(Ø×Ñ× Ñ  ,×0DÑ0DÐ!EÔFà×Ñ˜×)Ñ)Ø×+Ñ+Ð,FÓGô	Ið 	�‰”D˜Ó%¤r×'>Ñ'>Ô?Ø�‰”D˜Ó%¤r×'AÑ'AÔBØ�‰Ô&×1Ñ1°'Ñ:¼B¿N¹NÔKð  "ˆÕr6   ©éœÿÿÿr'  r   r   c                 ól   • [        S5      [        S5      UUS.nU R                  R                  U5        g )Nr¨   ÚText)r­   r®   r  r¯   )rM   r  r*   )rî   ÚtextÚpositionRectÚtheNotes       r4   ÚnewTextnoteÚPdfFile.newTextnote  s3   € ä ›=Ü" 6›lØ#Ø'ñˆð
 	×Ñ×#Ñ# GÕ,r6   c                 óª   ^• U4S jm[        [        UR                  5       5      5      [        R                  S-   S-  -  nT" US5      nUS S S-   U-   $ )Nc                 óv   >• X:  a  [         R                  U    $ T" X-  U5      [         R                  X-     -   $ r>   )ÚstringÚascii_uppercase)ÚnÚbaseÚtoStrs     €r4   r5  Ú,PdfFile._get_subsetted_psname.<locals>.toStr'  s>   ø€ Ø‹xÜ×-Ñ-¨aÑ0Ð0ñ ˜!™) TÓ*¬V×-CÑ-CÀAÁHÑ-MÑMðr6   r#   r™  é   é   Ú+)r  Ú	frozensetÚkeysÚsysÚmaxsize)rî   Úps_nameÚcharmapÚhashedÚprefixr5  s        @r4   Ú_get_subsetted_psnameÚPdfFile._get_subsetted_psname&  sU   ø€ õ	ô ”i §¡£Ó/Ó0´S·[±[À1±_ÈÑ4IÑJˆÙ�v˜rÓ"ˆð �b�qˆz˜CÑ 'Ñ)Ð)r6   c           
      ó¶  • U R                  5         U R                  5         U R                  5         U R                  5         U R	                  5         U R                  5         U R                  5         U R                  R                  5        VVVs0 s H  u  po2U_M
     nnnnU R                  R                  5        H  nUS   XES   '   M     U R                  R                  5        H	  u  p&XdU'   M     U R                   H  u	  p'pƒpšp¼nX4U'   M     U R                  U R                  U5        U R                  5         U R!                  5         U R#                  5         U R                  U R$                  ['        S5      U R(                  [+        U R(                  5      S.5        U R-                  5         U R/                  5         U R1                  5         gs  snnnf )z>Write out the various deferred objects and the pdf end matter.r#   r   rÈ  )r­   ÚKidsÚCountN)r  Ú_write_annotationsÚ
writeFontsÚwriteExtGSTatesÚ_write_soft_mask_groupsÚwriteHatchesÚwriteGouraudTrianglesr  Úvaluesr  r  ra   r  r‰  rñ  ÚwriteImagesÚwriteMarkersÚwritePathCollectionTemplatesrë  rM   rì  r)   ÚwriteInfoDictÚ	writeXrefÚwriteTrailer)rî   ÚimagerN   ÚobÚxobjectsÚtuprB  ÚpathÚtransr+   ÚcapÚpaddingÚfilledÚstrokeds                 r4   ÚfinalizeÚPdfFile.finalize6  s�  € ð 	�‰ÔØ×ÑÔ!Ø�‰ÔØ×ÑÔØ×$Ñ$Ô&Ø×ÑÔØ×"Ñ"Ô$à,0¯L©L×,?Ñ,?Ô,AõCÚ,A™˜ b�"ŠHÑ,Að 	ò Cà—<‘<×&Ñ&Ö(ˆCØ" 1™vˆH˜‘VÓñ )à×4Ñ4×:Ñ:Ö<‰KˆDØ"�T‹Nñ =ð —:”:ñ GˆD˜ 4¨g¸wà�T‹Nñ à×Ñ˜×+Ñ+¨XÔ6Ø×ÑÔØ×ÑÔØ×)Ñ)Ô+Ø×Ñ˜×)Ñ)Ü"& w£-Ø"&§-¡-Ü#& t§}¡}Ó#5ñ7ô	8ð 	×ÑÔð 	�‰ÔØ×ÑÕùô+Cs   ÂGc                 ó0  • U R                  5         U R                  (       a  U R                  R                  5         gU R                  b3  U R                  R                  U R                  R                  5       5        U R                  R                  5         g)z)Flush all buffers and free all resources.N)r  rã  ry  r’  rä  rù   rˆ  Úcloserò   s    r4   ra  ÚPdfFile.closeW  s^   € ð 	�‰ÔØ×%×%Ø�G‰G�M‰M�Oà×&Ñ&Ñ2Ø×'Ñ'×-Ñ-¨d¯g©g×.>Ñ.>Ó.@ÔAØ�G‰G�M‰M�Or6   c                 óŒ   • U R                   c  U R                  R                  U5        g U R                   R                  U5        g r>   )rè  ry  rù   )rî   rŽ  s     r4   rù   ÚPdfFile.writeb  s2   € Ø×ÑÑ%Ø�G‰G�M‰M˜$Õà×Ñ×$Ñ$ TÕ*r6   c           
      ó˜   • U R                  [        U Vs/ s H  n[        U5      PM     sn5      5        U R                  S5        g s  snf )Nr'   )rù   r5   r¿   )rî   rŽ  rB   s      r4   r  ÚPdfFile.outputh  s7   € Ø�
‰
”5©dÓ3ªd¨œ' !ž*©dÑ3Ó4Ô5Ø�
‰
�5Õùò 4s   •Ac                 óF   • U R                   b   e[        XXU5      U l         g r>   )rè  ro  )rî   rì   r)   rr  r�  s        r4   r  ÚPdfFile.beginStreaml  s%   € Ø×!Ñ!Ñ)Ð)Ð)Ü# B¨T¸#Ó>ˆÕr6   c                 ób   • U R                   b"  U R                   R                  5         S U l         g g r>   )rè  rŠ  rò   s    r4   r  ÚPdfFile.endStreamp  s-   € Ø×ÑÑ)Ø×Ñ×"Ñ"Ô$Ø!%ˆDÕð *r6   ©rr  c                ó”   • U R                  UR                  S U5        U R                  R                  U5        U R	                  5         g r>   )r  rì   rè  rù   r  )rî   ÚrefrŽ  rr  s       r4   ÚoutputStreamÚPdfFile.outputStreamu  s6   € Ø×Ñ˜Ÿ™  uÔ-Ø×Ñ× Ñ  Ô&Ø�‰Õr6   c                 óP   • U R                    H  u  pU R                  X5        M     g r>   )r  r‰  )rî   r!  r  s      r4   rG  ÚPdfFile._write_annotationsz  s#   € Ø)-×):Ô):Ñ%ˆLØ×Ñ˜\Ö7ò *;r6   c                 óÎ  • [        U[        5      (       a  U/nOS[        R                  S   (       a%  [        R
                  " US[        R                  S9nO[        R
                  " U5      nSnU Hp  nU R                  R                  U5      nU(       d  UnUb  M,  [        U R                  5      nXPR                  U'   [        R                  SXT5        U(       a  Mn  UnMr     U$ )zœ
Select a font based on fontprop and return a name suitable for
Op.selectfont. If fontprop is a string, it will be interpreted
as the filename of the font.
úpdf.use14corefontsÚafm)ÚfontextÚ	directoryNzAssigning font %s = %r)r?   r@   r_   r}  Ú_fontManagerÚ_find_fonts_by_propsÚRendererPdfÚ_afm_font_dirrô  ÚgetÚnextrõ  Ú_logÚdebug)rî   ÚfontpropÚ	filenamesÚfirst_FxÚfnameÚFxs         r4   ÚfontNameÚPdfFile.fontName~  sÀ   € ô �h¤×$Ñ$Ø!˜
‰IÜ�\‰\Ð.×/Ü$×9Ò9Ø %´;×3LÑ3Lñ‰Iô %×9Ò9¸(ÓCˆIØˆÛˆEØ—‘×#Ñ# EÓ*ˆBÞØ�Ø‹zÜ˜$×1Ñ1Ó2�Ø(*—‘˜uÑ%Ü—
‘
Ð3°RÔ?ß�xØ!’Hñ ð ˆr6   c           	      óp  • U R                   R                  UR                  5      nUb  UR                  $ [        R
                  " [        R                  " S5      5      nX1R                     nUR                  c/  [        SR                  UR                  UR                  5      5      e[        U R                  5      n[        R                  SXQR                  5        [        R                   " UUUR                  UR                  UR"                  UR$                  S9U R                   UR                  '   U$ )z—
Given a dvi font object, return a name suitable for Op.selectfont.
This registers the font information in ``self.dviFontInfo`` if not yet
registered.
z
pdftex.mapzNNo usable font file found for {} (TeX: {}); the font may lack a Type-1 versionzAssigning font %s = %s (dvi))ÚdvifontÚpdfnameÚfontfileÚbasefontÚencodingfileÚeffects)rö  r{  Útexnamerˆ  r   Ú
PsfontsMapÚfind_tex_filer
  rÌ   ÚformatÚpsnamer|  rõ  r}  r~  ÚtypesÚSimpleNamespaceÚencodingrŒ  )rî   r‡  Údvi_infoÚtex_font_mapÚpsfontrˆ  s         r4   ÚdviFontNameÚPdfFile.dviFontName�  sô   € ð ×#Ñ#×'Ñ'¨¯©Ó8ˆØÑØ×#Ñ#Ð#ä×)Ò)¬'×*?Ò*?ÀÓ*MÓNˆØŸo™oÑ.ˆØ�?‰?Ñ"Üð5ç‘˜Ÿ™ w§¡Ó7ó9ð 9ô
 �t×.Ñ.Ó/ˆÜ�
‰
Ð1°7¿O¹OÔLÜ,1×,AÒ,AØØØ—_‘_Ø—]‘]ØŸ™Ø—N‘Nñ-$ˆ×Ñ˜Ÿ™Ñ)ð ˆr6   c                 ó°  • 0 n[        U R                  R                  5       5       H:  u  p#UR                  n[        R                  SU5        U R                  U5      X'   M<     [        U R                  5       H¾  nU R                  U   n[        R                  SU5        UR                  S5      (       a*  [        R                  S5        U R                  U5      X'   Mh  [        R                  S5        U R                  R                  R                  U5      nU(       d  M«  U R                  XV5      X'   MÀ     U R                  U R                  U5        g )Nz"Embedding Type-1 font %s from dvi.zEmbedding font %s.z.afmzWriting AFM font.zWriting TrueType font.)rª  rö  ra   rˆ  r}  r~  Ú_embedTeXFontrô  ÚendswithÚ_write_afm_fontrù  Úusedr{  ÚembedTTFr‰  rí  )rî   rÅ  Údvinameri   rƒ  r
  Úcharss          r4   rH  ÚPdfFile.writeFonts»  s	  € ØˆÜ# D×$4Ñ$4×$:Ñ$:Ó$<Ö=‰MˆGØ—‘ˆBÜ�J‰JÐ;¸WÔEØ×*Ñ*¨4Ó0ˆE‹Iñ >ô ˜tŸ~™~Ö.ˆHØ—‘ Ñ)ˆBÜ�J‰JÐ+¨XÔ6Ø× Ñ  ×(Ñ(ä—
‘
Ð.Ô/Ø ×0Ñ0°Ó:�“	ô —
‘
Ð3Ô4Ø×/Ñ/×4Ñ4×8Ñ8¸ÓB�ß�5Ø $§¡¨hÓ >�E“Iñ /ð 	×Ñ˜Ÿ™¨%Õ0r6   c                 ó"  • [        US5       n[        U5      nS S S 5        WR                  5       n[        S5      [        S5      [        U5      [        S5      S.nU R	                  S5      nU R                  Xe5        U$ ! , (       d  f       Nm= f)NÚrbrÙ  ÚType1ÚWinAnsiEncoding)r­   r®   ÚBaseFontÚEncodingúfont dictionary)Úopenr   Úget_fontnamerM   ré  r‰  )rî   r
  ry  r²  ÚfontnameÚfontdictÚfontdictObjects          r4   r�  ÚPdfFile._write_afm_fontÐ  s   € Ü�(˜DÔ! RÜ�r“7ˆD÷ "à×$Ñ$Ó&ˆÜ  ›LÜ# G›}Ü $ X£Ü $Ð%6Ó 7ñ9ˆð ×+Ñ+Ð,=Ó>ˆØ×Ñ˜Ô2ØÐ÷ "Õ!ús   �B Â 
Bc                 óâ  • [         R                  SUR                  R                  UR                  5        U R                  S5      nU R                  X!R                  R                  5        U R                  S5      n[        S5      [        S5      S[        UR                  R                  5      S-
  US.nUR                  b@  [        S	5      S/[        [        [        R                  " UR                  5      5      QS
.US	'   UR                  cK  [         R                  SUR                   5        [        UR                   5      US'   U R                  X45        U$ ["        R$                  " UR                  5      nUR&                  (       a  UR)                  UR&                  5      n[        UR*                  S   5      US'   UR&                  R-                  SS5      UR&                  R-                  SS5      4nU R.                  R-                  UR                  U45      nUc5  U R1                  XQR                  5      nXpR.                  UR                  U4'   XtS'   U R                  X45        U$ )Nz#Embedding TeX font %s - fontinfo=%súfont widthsr©  rÙ  r¥  r   r#   )r­   r®   Ú	FirstCharÚLastCharÚWidthsr¨  ©r­   ÚDifferenceszâBecause of TeX configuration (pdftex.map, see updmap option pdftexDownloadBase14) the font %s is not embedded. This is deprecated as of PDF 1.5 and it may cause the consumer application to show something that was not intended.r§  ÚFontNameÚslantç        Úextendç      ð?ÚFontDescriptor)r}  r~  r‡  r�  Ú__dict__ré  r‰  ÚwidthsrM   r)   r‹  r­  r   Ú
_parse_encr‰  ÚwarningrŠ  r   Ú	Type1FontrŒ  Ú	transformÚpropr{  r÷  ÚcreateType1Descriptor)rî   ÚfontinfoÚwidthsObjectr®  r­  Út1fontrŒ  Úfontdescs           r4   r›  ÚPdfFile._embedTeXFontÜ  s5  € Ü�
‰
Ð8Ø×#Ñ#×+Ñ+¨X×->Ñ->ô	@ð ×)Ñ)¨-Ó8ˆØ×Ñ˜×'7Ñ'7×'>Ñ'>Ô?ð ×+Ñ+Ð,=Ó>ˆä˜f›Ü˜g›ØÜ˜X×-Ñ-×4Ñ4Ó5¸Ñ9Ø%ñˆð × Ñ Ñ,ä˜ZÓ(àð NÜœD¤'×"4Ò"4°X×5JÑ5JÓ"KÓLð Nñ$ˆH�ZÑ ð ×ÑÑ$Ü�L‰LðGð ×!Ñ!ô#ô $(¨×(9Ñ(9Ó#:ˆH�ZÑ Ø×Ñ˜^Ô6Ø!Ð!ô ×%Ò% h×&7Ñ&7Ó8ˆØ××Ø×%Ñ% h×&6Ñ&6Ó7ˆFÜ# F§K¡K°
Ñ$;Ó<ˆ�Ñð
 ×#Ñ#×'Ñ'¨°Ó5Ø×#Ñ#×'Ñ'¨°#Ó6ð8ˆà×(Ñ(×,Ñ,¨h×.?Ñ.?ÀÐ-IÓJˆØÑØ×1Ñ1°&×:KÑ:KÓLˆHØBJ×!Ñ! 8×#4Ñ#4°gÐ">Ñ?Ø%-Ð!Ñ"à×Ñ˜Ô2ØÐr6   c                 ór  • U R                  S5      nU R                  S5      nUR                  S   nUR                  S   nSnU(       a  US-  n  US-  nU(       a  US	-  n   [        U5      n[        S
5      [        UR                  S   5      UUR                  UUR
                  UR                  SSUUR                  S   SS.n	U R                  X95        U R                  USR                  UR                  S S 5      [        UR                  S   5      [        UR                  S   5      SS.S9  U$ )Núfont descriptorz	font fileÚItalicAngleÚisFixedPitchr   r#   r™  é   r˜  r¼  r·  r—  iô  Ú
FamilyNameé2   )r­   r·  ÚFlagsÚFontBBoxrÌ  ÚAscentÚDescentÚ	CapHeightÚXHeightÚFontFileÚ
FontFamilyÚStemVr6   )ÚLength1ÚLength2ÚLength3rk  )ré  rÃ  r   rM   r¦  ÚascenderÚ	descenderr‰  rn  r+   Úpartsr)   )
rî   rÇ  r‰  ÚfontdescObjectÚfontfileObjectÚitalic_angleÚfixed_pitchÚflagsÚft2fontÚ
descriptors
             r4   rÄ  ÚPdfFile.createType1Descriptor  sO  € ð ×+Ñ+Ð,=Ó>ˆØ×+Ñ+¨KÓ8ˆà—{‘{ =Ñ1ˆØ—k‘k .Ñ1ˆàˆæØ�V‰OˆEàð Ø�V‰OˆEö
 Ø�V‰OˆEàð ð ô ˜8Ó$ˆô  Ð 0Ó1Ü §¡¨JÑ 7Ó8Ø Ø"Ÿ<™<Ø'Ø"×+Ñ+Ø"×,Ñ,ØØØ)Ø!Ÿ;™; |Ñ4Øñˆ
ð" 	×Ñ˜Ô4à×Ñ˜.¨#¯(©(°6·<±<ÀÀÐ3CÓ*DÜ,/°·±¸Q±Ó,@Ü,/°·±¸Q±Ó,@Ø,-ñ!/ð 	ñ 	0ð
 Ðr6   c                 óö   • U R                  U5      nSR                  UR                  R                  5       [        R
                  R                  [        R
                  R                  U5      5      S   U/5      $ )NÚ-r   )r„  r+   rN   rÕ   rX   rX  ÚsplitextÚbasename)rî   r
  Ú
glyph_namerƒ  s       r4   Ú_get_xobject_glyph_nameÚPdfFile._get_xobject_glyph_nameU  s]   € Ø�]‰]˜8Ó$ˆØ�x‰xØ�G‰G�N‰NÓÜ�G‰G×ÑœRŸW™W×-Ñ-¨hÓ7Ó8¸Ñ;Øðó ð 	r6   sO  /CIDInit /ProcSet findresource begin
12 dict begin
begincmap
/CIDSystemInfo
<< /Registry (Adobe)
   /Ordering (UCS)
   /Supplement 0
>> def
/CMapName /Adobe-Identity-UCS def
/CMapType 2 def
1 begincodespacerange
<0000> <ffff>
endcodespacerange
%d beginbfrange
%s
endbfrange
endcmap
CMapName currentdict /CMap defineresource pop
end
endc                 óv  ^ ^^^^• [        T5      n[        R                  S   mUR                  S4S jmUUUU 4S jnUUUUU 4S jnT R	                  UR
                  UR                  5       5      mTR                  SS5      m[        T5      mUR                  S5      =(       d    S	S	S
.nUR                  S5      =(       d    SS0nUR                  nUR                  n	S	n
Sn[        R                  U;   a  U
S-  n
 U(       a  U
S-  n
OU
S-  n
[        R                  U	;   a  U
S-  n
   [        S5      TU
UR                    Vs/ s H
  nT" USS9PM     snT" UR"                  SS9T" UR$                  SS9T" US   SS9T" US   5      US   S   S	S.
nTS:X  a	  U" X2U5      $ TS:X  a	  U" X2U5      $ gs  snf )z9Embed the TTF font from the named file into the document.úpdf.fonttypeTc                 ó˜   • X-  S-  nU(       a  [        U5      $ US:  a  [        R                  " U5      $ [        R                  " U5      $ )z2Convert font coordinates to PDF glyph coordinates.r—  r   )r  r{   ÚfloorÚceil)r3   ÚupeÚnearestrB  s       r4   ÚcvtÚPdfFile.embedTTF.<locals>.cvtw  s@   € à‘L 4Ñ'ˆEÞÜ˜U“|Ð#à�q‹yÜ—z’z %Ó(Ð(ä—y’y Ó'Ð'r6   c                 óà  >^ ^• T#R                  S5      nT#R                  S5      nT#R                  S5      nT#R                  S5      n/ nSu  p‰T R                   V
s/ s H
  n
T " U
SS9PM     nn
[        S5      T"UU	U[        S	5      US
   U/ SQU[        S5      US.US.nSSKJm  UU U 4S jn[
        R                  " 5          [
        R                  " S5        [        X‰S-   5       Vs/ s H  nU" U5      PM     nnSSS5        [        W5      US'   / n/ n[        5       nU Hd  nUnT R                  U5      nUR                  U5        T R                  U5      nUS::  a  UR                  UU45        MS  UR                  U5        Mf     UR                  5         SnU H<  u  nnUUS-   :w  a  UR                  U5        UR                  [        U5      5        UnM>     [!        T!U5      n0 n[#        U5       H�  nUU   n0 nUU;   a/  [        S5      [        S5      US.nUUR%                  S5      S-   S nT#R                  S5      nT#R'                  UUUS9  UU;   a#  T#R)                  T!U5      nUT#R*                  U'   MŠ  UUU'   M‘     T#R-                  X\5        T#R-                  XB5        T#R-                  X?5        T#R-                  UU5        U$ s  sn
f s  snf ! , (       d  f       GNæ= f)z5The Type 3-specific part of embedding a Truetype fontr±  rË  r©  zcharacter procs)r   rá   F©rõ  rÙ  ÚType3r·  )çü©ñÒMbP?r   r   rû  r   r   r¨  rµ  )r­   r§  r²  r³  r¼  r®   rM   rÒ  Ú
FontMatrixÚ	CharProcsr¨  r´  r   )Úcp1252c                 ó¶   >• [        TR                  U    5      nTR                  U[        R                  [        R
                  -  S9R                  nT" U5      $ )N©rä  )r"  Údecoding_tableÚ	load_charr   r£  Ú
NO_HINTINGr¥  )Úcharcoder2   r€   rþ  rö  r²  s      €€€r4   Úget_char_widthÚ?PdfFile.embedTTF.<locals>.embedTTFType3.<locals>.get_char_width   sT   ø€ Ü˜×-Ñ-¨hÑ7Ó8�ØŸ™ØœY×/Ñ/´)×2FÑ2FÑFð 'ð HßHSÉð á˜5“zÐ!r6   Úignorer#   NÚMaxWidthrá   éþÿÿÿrÚ  ÚForm©r­   r®   ÚBBoxó   d1r™  ÚcharProcrk  )ré  r¦  rM   Ú	encodingsrþ  ÚwarningsÚcatch_warningsÚfilterwarningsr!  r›   rd   Úget_char_indexr*   r¯  ÚaddÚsortr¼  rª  Úfindrn  rí  r  r‰  )$r²  Ú
charactersræ  rÆ  rà  r®  ÚcharprocsObjectÚdifferencesArrayÚ	firstcharÚlastcharrB   r¦  r­  r  r  r¾  r±  ÚdifferencesÚmulti_byte_charsr‡   ÚccodeÚgindrì  Úlast_crN   ÚrawcharprocsÚ	charprocsÚcharnameÚstreamÚcharprocDictÚcharprocObjectrþ  rö  r
  r>  rî   s$   `                              @€€€€r4   ÚembedTTFType3Ú'PdfFile.embedTTF.<locals>.embedTTFType3‚  s  ú€ à×-Ñ-¨mÓ<ˆLØ!×/Ñ/Ð0AÓBˆNØ!×/Ñ/Ð0AÓBˆNØ"×0Ñ0Ð1BÓCˆOØ!ÐØ"(ÑˆIØ37·9²9Ó=²9¨a‘C˜ 5Ô)±9ˆDÐ=ô ˜V›Ø#Ø&Ø$Ø"0Ü ›=Ø" :Ñ.Ø Ú6Ø,ä  Ó,Ø#3ñ5ð 'ñˆHõ" )÷"ô
 ×(Ò(Õ*ô ×'Ò'¨Ô1ä*/°	ÀA¹:Ô*FóHÚ*F˜hñ )¨Ö2Ù*Fð ð H÷ +ô &)¨£[ˆJ�zÑ"ð
 ˆIØˆKÜ"›uÐÛ�Ø�Ø×*Ñ*¨5Ó1�Ø× Ñ  Ô&Ø!×0Ñ0°Ó6�
Ø˜C“<Ø×&Ñ&¨¨zÐ':Ö;à$×(Ñ(¨Ö4ñ  ð ×ÑÔàˆFÛ&‘��4Ø˜ ™
“?Ø$×+Ñ+¨AÔ.Ø ×'Ñ'¬¨T«
Ô3Ø’ñ	 'ô .¨h¸	ÓBˆLØˆIÜ" <Ö0�Ø% hÑ/�Ø!�ð Ð/Ó/Ü,0°«OÜ/3°F«|Ø,0ñ$2�Lð $ F§K¡K°Ó$6¸Ñ$:Ð$;Ð<�FØ!%×!3Ñ!3°JÓ!?�Ø×!Ñ! .°&ÀÐ!ÑMð Ð/Ó/Ø×7Ñ7¸À(ÓK�DØ6D�D×-Ñ-¨dÓ3à*8�I˜hÓ'ñ3 1ð8 ×Ñ˜^Ô6Ø×Ñ˜^Ô8Ø×Ñ˜\Ô2Ø×Ñ˜_¨iÔ8à!Ð!ùòA >ùò@H÷ +Ö*ús$   ÁKÃ'KÃ+KÃ=KËKË
K-c                 ó
  >• T-R                  S5      nT-R                  S5      nT-R                  S5      nT-R                  S5      nT-R                  S5      nT-R                  S5      nT-R                  S5      n	SR                  S	 U 5       5      n
[        R                  S
T*U
5        [        R
                  " T*U
5       n[        R                  " U5      nSSS5        [        R                  ST*[        R                  " T*5      R                  WR                  5       R                  5        U n[        U5      n [        S5      [        S5      T,SSSS.UUUS.n[        S5      [        S5      T,[        S5      U/U	S.nXrS'   T-R                  X|R                  5       SUR                  5       R                  0S9  S/S-  n/ nSnU Hˆ  nUnU R!                  U5      nU R#                  U[$        R&                  [$        R(                  -  S9nUR+                  UT)" UR,                  5      45        US:  a  [/        U5      UU'   [1        UU5      nMŠ     UR3                  5         USUS-    nSn/ nSn/ nU Hp  u  nnUUS-   :w  a7  UR+                  U5        UR+                  U/5        UR+                  UU/5        OUS   R+                  U5        UUS   S'   [1        UU5      nUnMr     / nU HT  u  nnUS :”  a  M  [5        S U5      nUR+                  S!UUS"R                  S# [7        UUS-   5       5       5      4-  5        MV     T-R8                  [;        U5      S$R                  U5      4-  n/ n U H8  n[=        T+U5      (       a  M  UR!                  U5      nU R+                  U5        M:     UR>                   V!s/ s H
  n!T)" U!S%S&9PM     n"n![A        T*U 5      n#[C        U#5       Hz  n$U#U$   n%[        S'5      [        S(5      U"S).n&U%U%RE                  S*5      S+-   S n%T-R                  S,5      n'T-R                  U'U%U&S9  T-RG                  T*U$5      n(U'T-RH                  U('   M|     SR                  U5      RK                  S-5      nT-R                  UU5        T-R                  U	U5        UUS.'   T-RM                  XN5        T-RM                  X_5        T-RM                  X25        T-RM                  UU5        U$ ! , (       d  f       GN$= fs  sn!f )/z6The Type 42-specific part of embedding a Truetype fontrË  zCID font dictionaryzType 0 font dictionaryzCIDToGIDMap streamzfont file streamzType 0 widthszToUnicode mapÚ c              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr>   )Úchrr#  s     r4   r’   Ú;PdfFile.embedTTF.<locals>.embedTTFType42.<locals>.<genexpr>ö  s   é € Ð <²¨A¤ Q§ ²ùs   ‚zSUBSET %s characters: %sNzSUBSET %s %d -> %drÙ  ÚCIDFontType2ÚAdobeÚIdentityr   )ÚRegistryÚOrderingÚ
Supplement)r­   r®   r§  ÚCIDSystemInfor¼  ÚWÚCIDToGIDMapÚType0z
Identity-H)r­   r®   r§  r¨  ÚDescendantFontsÚ	ToUnicodeÚ	FontFile2rÚ  rk  Ú i   r   r#   r	  r   rã   s   <%04x> <%04x> [%s]r&   c              3   ó,   #   • U  H
  nS U-  v •  M     g7f)s   <%04x>Nr�   )r‘   rB   s     r4   r’   r-  M  s   é € ÐJÒ6I°˜y¨1ž}Ò6Iùs   ‚r'   Frù  rÚ  r
  r  r  r™  r  úutf-16ber  )'ré  r+   r}  r~  r$   Úget_glyphs_subsetÚfont_as_filerX   ÚstatÚst_sizeÚ	getbufferÚnbytesr   rM   rn  rˆ  r  r  r   r£  r  r*   r¥  r,  r›   r  rš   r!  Ú_identityToUnicodeCMapr)   rç   r¦  r¼  rª  r  rí  r  rÑ   r‰  ).r²  r  ræ  rà  ÚcidFontDictObjectÚtype0FontDictObjectÚcidToGidMapObjectrá  ÚwObjectÚtoUnicodeMapObjectÚ
subset_strÚsubsetÚfontdataÚ	full_fontÚcidFontDictÚtype0FontDictÚcid_to_gid_mapr¾  Ú	max_ccoder‡   r  r  ræ   Ú
last_ccodeÚwÚ	max_widthÚunicode_groupsr€   Úunicode_bfrangeÚstartrŠ  Úunicode_cmapr±  rB   r¦  r!  r#  r$  r%  r&  rN   rö  r
  rå   r>  rî   s.                                            €€€€€r4   ÚembedTTFType42Ú(PdfFile.embedTTF.<locals>.embedTTFType42ì  s   ø€ à!×/Ñ/Ð0AÓBˆNØ $× 2Ñ 2Ð3HÓ IÐØ"&×"4Ñ"4Ð5MÓ"NÐØ $× 2Ñ 2Ð3GÓ HÐØ!×/Ñ/Ð0BÓCˆNØ×(Ñ(¨Ó9ˆGØ!%×!3Ñ!3°OÓ!DÐàŸ™Ñ <±Ó <Ó<ˆJÜ�J‰JÐ1°8¸ZÔHÜ ×2Ò2°8¸ZÔHÈFÜ*×7Ò7¸Ó?�÷ Iä�J‰JØ$ hÜ—’˜Ó!×)Ñ)¨8×+=Ñ+=Ó+?×+FÑ+Fôð ˆIô
 ˜8Ó$ˆDô ˜V›Ü Ó/Ø#à 'Ø *Ø"#ñ"%ð #1ØØ0ñˆKô ˜V›Ü ›=Ø#Ü  Ó.Ø$5Ð#6Ø/ñˆMð '5�{Ñ#Ø×ÑØ× 1Ñ 1Ó 3Ø  (×"4Ñ"4Ó"6×"=Ñ"=Ð>ð ñ @ð #˜V e™^ˆNØˆFØˆIÛ�Ø�Ø×*Ñ*¨5Ó1�ØŸ™ uÜ-6×-?Ñ-?Ä)×BVÑBVÑ-Vð 'ð X�à—‘˜u¡c¨%×*;Ñ*;Ó&<Ð=Ô>Ø˜5“=Ü,/°«I�N 5Ñ)Ü  yÓ1’	ñ  ð �K‰KŒMØ+¨N¨Y¸©]Ð;ˆNàˆJØˆAØˆIØˆNÛ &‘��uØ˜J¨™NÓ*Ø—H‘H˜U”OØ—H‘H˜e˜WÔ%Ø"×)Ñ)¨5°%¨.Õ9à�b‘E—L‘L Ô'Ø,1�N 2Ñ& qÑ)Ü 	¨5Ó1�	Ø"’
ñ !'ð !ˆOÛ,‘
��sà˜5“=ÙÜ˜% “o�à×&Ñ&Ø)Ø˜CØ—Y‘YÑJ´e¸EÀ3ÀqÁ5Ô6IÓJÓJðLñLöMñ -ð !×7Ñ7Ü  Ó0°%·*±*¸_Ó2MÐNñOˆLð ˆIÛ#�Ü+¨H°e×<Ó<Ø$×3Ñ3°EÓ:�DØ×$Ñ$ TÖ*ñ $ð
 4=·>²>ÓB²>¨a‘C˜ 5Ô)±>ˆDÐBÜ-¨h¸	ÓBˆLÜ" <Ö0�Ø% hÑ/�Ü(,¨Y«Ü+/°«<Ø(,ñ .�ð   §¡¨EÓ 2°QÑ 6Ð 7Ð8�Ø!%×!3Ñ!3°JÓ!?�Ø×!Ñ! .°&ÀÐ!ÑMà×3Ñ3°H¸hÓG�Ø2@�×)Ñ)¨$Ó/ñ! 1ð&  ŸW™W ^Ó4×;Ñ;¸JÓGˆNØ×ÑÐ/°Ô@ð ×ÑÐ0°,Ô?à%.ˆJ�zÑ"ð ×ÑÐ.Ô<Ø×ÑÐ0Ô@Ø×Ñ˜^Ô8Ø×Ñ˜W aÔ(à&Ð&÷G IÖHüò@ Cs   Â?S3Î;TÓ3
TrÂ   r]   Úpcltr   )Ú	capHeightÚxHeightÚpostÚitalicAngle©r   r   Fr#   rÎ  é    r˜  r¼  rù  r\  r]  )
r­   r·  rÑ  rÒ  rÓ  rÔ  rÕ  rÖ  rÌ  rÙ  rà   râ   N)r   r_   r}  r¡  rB  r¬  Úget_charmaprÑ   rM   Úget_sfnt_tableÚ
face_flagsÚstyle_flagsr   ÚFIXED_WIDTHr   ÚITALICr¦  rÝ  rÞ  )rî   r
  r  r²  r'  rY  r[  r^  ÚffÚsfrä  ÚsymbolicrB   ræ  rö  rå   r>  s   ``            @@@r4   rŸ  ÚPdfFile.embedTTFq  sÛ  ü€ ô ˜Ó!ˆÜ—<‘< Ñ/ˆà ×-Ñ-°tô 		(÷h	"ð h	"÷TO	'ñ O	'ðf ×,Ñ,Ø× Ñ Ø×ÑÓó
ˆð —.‘. ¨)Ó4ˆÜ�w“-ˆØ×"Ñ" 6Ó*×L¸AÈ!Ñ.LˆØ×"Ñ" 6Ó*×E¨}¸fÐ.EˆØ�_‰_ˆØ×ÑˆàˆØˆÜ× Ñ  BÓ&Ø�V‰OˆEØæØ�V‰O‰Eà�V‰OˆEÜ×Ñ Ó"Ø�V‰OˆEØààô Ð)Ó*ØØØ8<¿	º	ÓBº	°1™˜Q¨Ô.¹	ÑBÙ˜$Ÿ-™-°Ñ7Ù˜4Ÿ>™>°5Ñ9Ù˜T +Ñ.¸Ñ>Ù˜4 	™?Ó+Ø Ñ.¨qÑ1Øñˆ
ð �q‹=Ù  °:Ó>Ð>Ø˜‹^Ù! $°JÓ?Ð?ð ùò Cs   ÅF6
c                 óÀ   • U R                   R                  US5      nUb  US   $ [        U R                  5      nU[	        S5      US   US   S.4U R                   U'   U$ )z?Return name of an ExtGState that sets alpha to the given value.Nr   rÛ  r#   )r­   ÚCAÚca)rú  r{  r|  rû  rM   )rî   ÚalphaÚstaterN   s       r4   Ú
alphaStateÚPdfFile.alphaState¯  ss   € ð × Ñ ×$Ñ$ U¨DÓ1ˆØÑØ˜‘8ˆOä�D×)Ñ)Ó*ˆàœD Ó-Ø ™(¨%°©(ñ4ð 5ð 	×Ñ˜Ñð ˆr6   c                 óâ  • U R                   R                  US5      nUb  US   $ [        U R                  5      nU R	                  S5      nU[        S5      S[        S5      [        S5      S/US	.S
.4U R                   U'   U R                  R                  U[        S5      [        S5      S[        S5      [        S5      S./ SQSSU00/ SQS.[        S5      [        R                  /45        U$ )zñ
Return an ExtGState that sets the soft mask to the given shading.

Parameters
----------
smask : Reference
    Reference to a shading in DeviceGray color space, whose luminosity
    is to be used as the alpha channel.

Returns
-------
Name
Nr   z transparency group for soft maskrÛ  FÚMaskÚ
Luminosityr#   )r­   r¬   ÚBCÚG)r­   ÚAISÚSMaskrÚ  r
  ÚTransparencyÚ
DeviceGray)r¬   ÚCS)r#   r   r   r#   r   r   rÝ  r¬   )r   r   r#   r#   )r­   r®   ÚFormTypeÚGroupÚMatrixr  r  )
rü  r{  r|  rý  ré  rM   rþ  r*   r-  rl  )rî   Úsmaskrp  rN   ÚgroupObs        r4   Ú_soft_mask_stateÚPdfFile._soft_mask_state¼  s  € ð ×&Ñ&×*Ñ*¨5°$Ó7ˆØÑØ˜‘8ˆOä�D×'Ñ'Ó(ˆØ×$Ñ$Ð%GÓHˆàä˜[Ó)Øä  ›LÜ˜lÓ+Ø˜#Ø ñ	ñ	ð)
ˆ×Ñ˜uÑ%ð 	×Ñ×%Ñ%Øä˜Y›Ü ›<Øä˜nÓ-Ü˜|Ó,ñò -Ø'¨#¨u¨Ð6Ú$ñô �#‹YœŸ
™
Ð#ð'
ô 	ð  ˆr6   c                 ó¶   • U R                  U R                  [        / U R                  R	                  5       QU R
                  R	                  5       Q5      5        g r>   )r‰  rî  rØ   rú  rM  rü  rò   s    r4   rI  ÚPdfFile.writeExtGSTatesð  sT   € Ø×ÑØ×!Ñ!Üð Ø×!Ñ!×(Ñ(Ó*ðà×'Ñ'×.Ñ.Ó0ðó õ	
r6   c                 ó¨   • U R                    HB  u  pnU R                  UR                  S U5        U R                  " U6   U R	                  5         MD     g r>   )rþ  r  rì   r  r  )rî   rU  Ú
attributesÚcontents       r4   rJ  ÚPdfFile._write_soft_mask_groupsù  sC   € Ø'+×'=Ô'=Ñ#ˆB˜GØ×Ñ˜RŸU™U D¨*Ô5Ø�KŠK˜Ñ!Ø�N‰NÖò (>r6   c                 óØ   • Uu  p#pEUb  [        U5      nUb  [        U5      nX#XE4nU R                  R                  US 5      nUb  U$ [        U R                  5      nXpR                  U'   U$ r>   )rœ   rÿ  r{  r|  r   )rî   Úhatch_styleÚedgeÚfaceÚhatchÚlwÚpatternrN   s           r4   ÚhatchPatternÚPdfFile.hatchPatternÿ  sz   € à +Ñˆ�EØÑÜ˜“;ˆDØÑÜ˜“;ˆDØ 5Ð-ˆà×&Ñ&×*Ñ*¨;¸Ó=ˆØÑØˆNä�D×+Ñ+Ó,ˆØ,0×Ñ˜[Ñ)Øˆr6   ú3.10c                 óŠ   • U R                   R                  5        VVVVVs0 s H  u  nu  p#pEXX44_M     snnnnn$ s  snnnnnf r>   )rÿ  ra   )rî   rj   rˆ   r‰   ÚhÚls         r4   Ú<lambda>ÚPdfFile.<lambda>  s?   € Ø,0×,@Ñ,@×,FÑ,FÔ,H÷CÚ,H™˜™L˜Q 1ˆˆqˆ9ŠÑ,HöCùö Cs   ¡<c                 óâ  • [        5       nSnU R                  R                  5        GH£  u  p4U R                  S5      nXQU'   SSR	                  5        Vs/ s H  n[        U5      PM     sn0nU R                  UR                  S [        S5      SSSSSX"/X"USSSSSU R                  S-  /S	.	5        Uu  p‰p«U R                  US   US   US
   [        R                  5        U	bL  U R                  U	S   U	S   U	S
   [        R                  SSX"[        R                  [        R                  5
        U R                  U[        R                  5        U R                  " U R!                  ["        R$                  " U
5      ['        5       R)                  U5      SS96   U R                  [        R*                  5        U R-                  5         GM¦     U R/                  U R0                  U5        g s  snf )Nç      R@zhatch patternÚProcsetsrØ  rÜ  r#   r   r  )	r­   ÚPatternTypeÚ	PaintTypeÚ
TilingTyper  ÚXStepÚYStepr  r  r™  F©Úsimplify)rØ   rÿ  ra   ré  r	  rM   r  rì   r�   r  r-  rY  rZ  rR  rG  rj  ÚpathOperationsr    rŽ  r   ÚscalerE  r  r‰  rï  )rî   Ú	hatchDictÚsidelenr‹  rN   rU  rB   ÚresÚ
stroke_rgbÚfill_rgbrŽ  r�  s               r4   rK  ÚPdfFile.writeHatches  sÁ  € Ü“Fˆ	ØˆØ!%×!5Ñ!5×!;Ñ!;×!=ÑˆKØ×#Ñ# OÓ4ˆBØ �d‰OØØ%D×%JÑ%JÔ%LÓMÒ%L ”D˜–GÑ%LÑMðOˆCà×ÑØ—‘�tÜ˜i›Ø !°ÀØ˜Q Ð1Ø!Ø!à˜q ! Q¨¨4¯;©;¸Ñ+;Ð<ñ>ô?ð /:Ñ+ˆJ %Ø�K‰K˜
 1™ z°!¡}°jÀ±mÜ×(Ñ(ô*àÑ#Ø—‘˜H Q™K¨°!©°h¸q±kÜ×/Ñ/Ø˜q '´B·L±LÜŸG™Gô%ð
 �K‰K˜œBŸO™OÔ,à�KŠK˜×,Ñ,Ü—
’
˜5Ó!Ü“
× Ñ  Ó)Øð -ð  ñ !ð �K‰KœŸ™Ô'à�N‰N×ñA ">ðB 	×Ñ˜×)Ñ)¨9Õ5ùò; Ns   ÁG,c                 ó¬   • [        S[        U R                  5      -  5      nU R                  SU 35      nU R                  R	                  X4X45        X44$ )ae  
Add a Gouraud triangle shading.

Parameters
----------
points : np.ndarray
    Triangle vertices, shape (n, 3, 2)
    where n = number of triangles, 3 = vertices, 2 = x, y.
colors : np.ndarray
    Vertex colors, shape (n, 3, 1) or (n, 3, 4)
    as with points, but last dimension is either (gray,)
    or (r, g, b, alpha).

Returns
-------
Name, Reference
zGT%dzGouraud triangle )rM   r)   r  ré  r*   )rî   ÚpointsÚcolorsrN   rU  s        r4   ÚaddGouraudTrianglesÚPdfFile.addGouraudTriangles:  sV   € ô$ �FœS ×!6Ñ!6Ó7Ñ7Ó8ˆØ×ÑÐ"3°D°6Ð :Ó;ˆØ×Ñ×$Ñ$ d°Ð%?Ô@Øˆxˆr6   c                 óB  • [        5       nU R                   GHh  u  p#pEX1U'   UR                  nUR                  US   US   -  S45      nUR                  S   nUS;   d   eUR                  US   US   -  U45      n	US:X  a  Sn[        R
                  " USS9S-
  n
[        R                  " USS9S-   nS	Xº-
  -  nU R                  UR                  S SS
SS[        US:X  a  SOS5      SU
S   US   U
S   US   /SS/U-  -   S.5        [        R                  " US   US   -  4SSSSU44/S9nSUS'   Xz-
  U-  US'   U	S S 2S U24   S-  US'   U R                  UR                  5       5        U R                  5         GMk     U R                  U R                  U5        g )Nr   r#   r™  ©r#   rÎ  rÎ  rà   rš  r  l   ÿÿ ra  é   r  r{  F)ÚShadingTypeÚBitsPerCoordinateÚBitsPerComponentÚBitsPerFlagÚ
ColorSpaceÚ	AntiAliasÚDecode)rä  Úu1)r¬  z>u4)r™  r­  rº  ©Údtyperä  r¬  g     ào@)rØ   r  ÚshapeÚreshaperÉ   rš   r›   r  rì   rM   Úemptyrù   Útobytesr  r‰  rð  )rî   ÚgouraudDictrN   rU  r¬  r­  r½  Úflat_pointsÚcolordimÚflat_colorsÚ
points_minÚ
points_maxÚfactorÚ	streamarrs                 r4   rL  ÚPdfFile.writeGouraudTrianglesQ  sê  € Ü“fˆØ(,×(=Õ(=Ñ$ˆD�fØ "˜ÑØ—L‘LˆEØ Ÿ.™.¨%°©(°U¸1±XÑ*=¸qÐ)AÓBˆKØ—|‘| A‘ˆHØ˜vÓ%Ð%Ð%Ø Ÿ.™.¨%°©(°U¸1±XÑ*=¸xÐ)HÓIˆKØ˜1‹}à�ÜŸš °!Ñ4¸Ñ?ˆJÜŸš °!Ñ4¸Ñ?ˆJØ :Ñ#:Ñ;ˆFà×ÑØ—‘�tØ !Ø&(Ø%&Ø !Ü#Ø$,°£M‘[°|ó ð $Ø'¨™]¨J°q©MØ'¨™]¨J°q©Mð;à  !˜f xÑ/ñ0ñôô ŸšØ�q‘˜E !™HÑ$Ð&Ø&Ø.Ø  $¨¨Ð4ð6ñ7ˆIð
 "#ˆI�gÑØ#.Ñ#;¸vÑ"EˆI�hÑØ"-ªa°°(°¨lÑ";¸eÑ"CˆI�hÑà�J‰J�y×(Ñ(Ó*Ô+Ø�N‰N×ñO )>ðP 	×Ñ˜×+Ñ+¨[Õ9r6   c                 óæ   • U R                   R                  [        U5      S5      nUb  US   $ [        U R                  5      nU R                  SU 35      nXU4U R                   [        U5      '   U$ )z=Return name of an image XObject representing the given image.Nr#   zimage )r  r{  rì   r|  r  ré  )rî   rT  ÚentryrN   rU  s        r4   ÚimageObjectÚPdfFile.imageObject}  sm   € ð —‘× Ñ ¤ E£¨DÓ1ˆØÑØ˜‘8ˆOä�D—O‘OÓ$ˆØ×Ñ &¨¨ Ó0ˆØ#(°Ð"3ˆ�‰”R˜“YÑØˆr6   c                 óF  • USSS2   nUR                   S:X  a  US4$ USS2SS2SS24   n[        R                  " USS9nUR                  S   S:X  aK  USS2SS2S4   S   n[        R                  " US	:H  5      (       a  SnX#4$ [        R                  " USS9n X#4$ SnX#4$ )
zÇ
Unpack image array *im* into ``(data, alpha)``, which have shape
``(height, width, 3)`` (RGB) or ``(height, width, 1)`` (grayscale or
alpha), except that alpha is None if the image is fully opaque.
Nr   r™  rà   ÚC)ÚorderrÎ  ).Nrá   )ÚndimrÉ   r¤  r½  r«  )rî   ÚimÚrgbro  s       r4   Ú_unpackÚPdfFile._unpack‰  s¹   € ð ‘�"�‰XˆØ�7‰7�a‹<Ø�t�8ˆOà’Qš˜2˜A˜2�X‘,ˆCÜ—(’(˜3 cÑ*ˆCà�x‰x˜‰{˜aÓØš1ša ˜7™ IÑ.�Ü—6’6˜% 3™,×'Ñ'Ø �Eð
 �:Ðô ŸHšH U°#Ñ6‘Eð �:Ðð �Ø�:Ðr6   c                 óÊ  • [        5       nUR                  USS9  UR                  S5        SnS=pE [        R                  " SUR                  S5      5      u  pgUS;   aT  UR                  U5      n[        U5      U:w  a  [        S5      eUS	:X  a  [        US   5      nO-US
:X  a  UnO$US:X  a  X8-  nOUS:X  a  O&UR                  US5        UR                  SS5        M¯  X4U4$ )zV
Write the image *img* into the pdf file using png
predictors with Flate compression.
r�  )r�  r²  r6   Ns   !L4s)ó   IHDRó   PLTEó   IDATztruncated datar×  rØ  rÙ  s   IENDr#   rÎ  )	r   ÚsaveÚseekÚstructÚunpackÚreadr)   ÚRuntimeErrorr[   )	rî   ÚimgÚbufferÚpng_dataÚ	bit_depthÚpaletter3   rÜ   rŽ  s	            r4   Ú	_writePngÚPdfFile._writePng   sç   € ô
 “ˆØ�‰� ˆÑ&Ø�‰�AŒØˆØ"Ð"ˆ	ØÜ!Ÿ=š=¨°&·+±+¸a³.ÓA‰LˆFØÐ2Ó2Ø—{‘{ 6Ó*�Ü�t“9 Ó&Ü&Ð'7Ó8Ð8Ø˜7“?Ü # D¨¡G£‘IØ˜W“_Ø"‘GØ˜W“_ØÑ$�HøØ˜“Øà—‘˜F AÔ&Ø�K‰K˜˜1Ôñ! ð"  GÐ+Ð+r6   c           	      ó|  • UR                   u  pEn[        S5      [        S5      UU[        SSS.U   5      SS.nU(       a  X7S'   [        R                  S	   (       GaY  UR                   S
   S:X  a  UR	                  S
S9nSXeS.n[
        R                  " U5      n	U	R                  SS9n
US:X  Gað  U
Gbì  [        U
5      n[        R                  " U
 VVVs/ s H  u  pÍU  H  oîPM     M     snnn[        R                  S9nUSSS2   R                  [        R                  5      S-  USSS2   R                  [        R                  5      S-  -  USSS2   -  nUSS2SS2S4   R                  [        R                  5      S-  USS2SS2S4   R                  [        R                  5      S-  -  USS2SS2S4   -  n[        R                  " U5      R                  [        R                  5      nU[        R                  " UUUS9   n[
        R                  " U5      R!                  S5      n	U	R#                  U5        U R%                  U	5      u  nnnUb  Uc  ['        S5      eUSUS-   n[        S5      [        S5      US-
  U/US'   UUS'   SUS'   UUS'   OU R%                  U	5      u  n  nOSnU R)                  UU R+                  S5      UUS9  U(       a  U R,                  R/                  W5        O)U R,                  R/                  UR1                  5       5        U R3                  5         gs  snnnf ) zè
Write the image *data*, of shape ``(height, width, 1)`` (grayscale) or
``(height, width, 3)`` (RGB), as pdf object *id* and with the soft mask
(alpha channel) *smask*, which should be either None or a ``(height,
width, 1)`` array.
rÚ  r   r{  r  ©r#   rà   r²  )r­   r®   ÚWidthÚHeightr·  rµ  ry  rx  r   r#   rš  é
   )Ú	PredictorÚColorsÚColumnsr  )Ú	maxcolorsrà   Nr»  r   é   r™  )ÚsorterÚPzinvalid PNG headerÚIndexedr·  rµ  rí  zlength of image stream)r�  )r½  rM   r_   r}  Úsqueezer   Ú	fromarrayÚ	getcolorsr)   rÉ   r¤  Úuint8r§  Úuint32ÚargsortÚsearchsortedÚconvertÚ
putpaletterå  rß  r  ré  rè  rù   rÀ  r  )rî   rŽ  rì   r€  r�   r€   Úcolor_channelsrÝ   r�  rà  Ú
img_colorsÚ
num_colorsÚ_ÚcolorÚcomprä  Ú	palette24Úrgb24ÚindicesÚrgb8râ  rã  s                         r4   Ú	_writeImgÚPdfFile._writeImg½  s
  € ð )-¯
©
Ñ%ˆ�~Ü˜I“Ü˜w›-ØØÜ! l°{Ñ"CÀNÑ"SÓTØ#$ñ&ˆö Ø �‰LÜ�<‰<Ð)×*Ð*Ø�z‰z˜"‰~ Ó"Ø—|‘|¨�|Ð,�Ø "¨nÑOˆCÜ—/’/ $Ó'ˆCØŸ™°˜Ð5ˆJØ Ô" zÒ'=ô ! ›_�
ÜŸ(š(¹Õ#Vº©X¨QÔPUÈ¢DÑPU¡D¹Ó#VÜ)+¯©ñ3�à% a d¨ d™m×2Ñ2´2·9±9Ó=ÀÑCØ% a d¨ d™m×2Ñ2´2·9±9Ó=ÀÑBñDà$ Q T¨ T™]ñ+�	ð šq¢! Q˜w™-×.Ñ.¬r¯y©yÓ9¸RÑ?Øšq¢! Q˜w™-×.Ñ.¬r¯y©yÓ9¸QÑ>ñ@àša¢ A˜g™ñ'�ô Ÿ*š* YÓ/×6Ñ6´r·x±xÓ@�ØœrŸš¨y¸%ÈÑPÑQ�Ü—o’o dÓ+×3Ñ3°CÓ8�Ø—‘˜wÔ'Ø/3¯~©~¸cÓ/BÑ,�˜) WØÑ$¨©Ü&Ð';Ó<Ð<Ø! / :°¡>Ð2�Ü%)¨)£_´d¸;Ó6GØ%/°!¡^°Wð%>��LÑ!à*3�Ð&Ñ'Ø !��H‘Ø*3�Ð&Ò'à!%§¡°Ó!4‘�˜!™QàˆCØ×ÑØØ×ÑÐ7Ó8ØØð	 	ñ 	ö Ø×Ñ×$Ñ$ XÕ.à×Ñ×$Ñ$ T§\¡\£^Ô4Ø�‰ÕùôG $Ws   ÃL7c                 ó  • U R                   R                  5        Hg  u  pnU R                  U5      u  pEUb-  U R                  S5      nU R	                  XVR
                  5        OS nU R	                  XCR
                  U5        Mi     g )Nr€  )r  rM  rÔ  ré  r  rì   )rî   rà  rN   rU  rŽ  ÚadataÚsmaskObjects          r4   rN  ÚPdfFile.writeImagesü  sj   € Ø!Ÿ\™\×0Ñ0Ö2‰MˆC�rØŸ,™, sÓ+‰KˆDØÑ Ø"×0Ñ0°Ó9�Ø—‘˜u§n¡nÕ5à"�Ø�N‰N˜4§¡¨Ö4ò 3r6   c                 ó   • U R                  XSS9n[        U5      [        U5      [        U5      Xg4n	U R                  R	                  U	5      n
U
cl  [        S[        U R                  5      -  5      nU R                  S[        U R                  5      -  5      nUR                  U5      nX¼XÕ/U R                  U	'   U$ U
S   U:  a  XZS'   U
S   nU$ )z<Return name of a marker XObject representing the given path.Fr¡  zM%dz	marker %dr   r   )	r£  rœ   rÎ   r  r{  rM   r)   ré  Úget_extents)rî   rX  rY  rG  rF  r�  Ú	joinstyleÚcapstyleÚpathopsÚkeyr0   rN   rU  r¦  s                 r4   ÚmarkerObjectÚPdfFile.markerObject  sÎ   € ð ×%Ñ% d¸EÐ%ÐBˆÜ�W‹~œt D›z¬4°«<¸ÐMˆØ—‘×!Ñ! #Ó&ˆØ‰>Ü˜¤ D§L¡LÓ 1Ñ1Ó2ˆDØ×#Ñ# K´#°d·l±lÓ2CÑ$CÓDˆBØ×#Ñ# EÓ*ˆDØ!%¨4Ð 4ˆD�L‰L˜Ñð
 ˆð �b‰z˜B‹Ø�r‘
Ø˜!‘9ˆDØˆr6   c           
      ó\  • U R                   R                  5        GH  u  u  pp4nu  pgp‰UR                  U	S-  5      nU R                  UR                  S [        S5      [        S5      [        UR                  5      S.5        U R                  [        R                  U   [        R                  5        U R                  [        R                  U   [        R                  5        U R                  " U6   U R                  [        R                  X#5      5        U R!                  5         GM     g )Né   rÚ  r
  r  )r  ra   Úpaddedr  rì   rM   rÙ   Úextentsr  r  r  r-  r`  Ú	capstylesra  rJ  r  )
rî   r  rG  rF  r  r  rN   rU  r¦  r�  s
             r4   rO  ÚPdfFile.writeMarkers#  sá   € à&*§l¡l×&8Ñ&8×&:ñ#Ñ9ˆg˜V°Ù!ˆd˜ð —;‘;˜r A™vÓ&ˆDØ×ÑØ—‘�tÜ˜i›´T¸&³\Ü˜dŸl™lÓ+ñ-ô.ð �K‰KÔ*×5Ñ5°iÑ@ÜŸ™ô(à�K‰KÔ*×4Ñ4°XÑ>ÄÇÁÔNØ�KŠK˜Ñ!Ø�K‰KœŸ™ dÓ3Ô4Ø�N‰N×ò% ';r6   c                 ó  • [        S[        U R                  5      -  5      nU R                  S[        U R                  5      -  5      nU R                  R	                  XrX8UR                  5       UR                  5       XEU4	5        U$ )NzP%dzpath %d)rM   r)   r  ré  r*   Úget_joinstyleÚget_capstyle)	rî   r´   rX  rY  r[  r\  r]  rN   rU  s	            r4   ÚpathCollectionObjectÚPdfFile.pathCollectionObject9  sr   € Ü�EœC §
¡
›OÑ+Ó,ˆØ×Ñ 	¬C°·
±
«OÑ ;Ó<ˆØ�
‰
×ÑØ˜ B×$4Ñ$4Ó$6¸¿¹Ó8IØ˜gð'ô	(ð ˆr6   c           
      óô  • U R                    GHg  u	  pp4pVpxn	U R                  X#SS9n
UR                  U5      n[        R                  " [        R
                  " UR                  5      5      (       d  / SQnO&UR                  U5      n[        UR                  5      nU R                  UR                  S [        S5      [        S5      US.5        U R                  [        R                  U   [        R                   5        U R                  [        R"                  U   [        R$                  5        U R                  " U
6   U R                  [        R'                  X‰5      5        U R)                  5         GMj     g )NFr¡  ©r   r   r   r   rÚ  r
  r  )r  r£  r  rÉ   r«  rË   r  r  rÙ   r  rì   rM   r  r  r  r-  r`  r  ra  rJ  r  )rî   rN   rX  rY  rU  r  r  r[  r\  r]  r  r¦  r  s                r4   rP  Ú$PdfFile.writePathCollectionTemplatesA  s  € àŸ�ñˆT˜ I¸ØØ×)Ñ)¨$ÀÐ)ÐFˆGØ×#Ñ# EÓ*ˆDÜ—6’6œ"Ÿ+š+ d§l¡lÓ3×4Ñ4Ú&‘à—{‘{ 7Ó+�Ü˜tŸ|™|Ó,�Ø×ÑØ—‘�tÜ˜i›´T¸&³\Ø ñ"ô#ð �K‰KÔ*×5Ñ5°iÑ@ÜŸ™ô(à�K‰KÔ*×4Ñ4°XÑ>ÄÇÁÔNØ�KŠK˜Ñ!Ø�K‰KœŸ™ fÓ6Ô7Ø�N‰N×ò# $r6   c                 ó  • [        [        R                  " XX#US[        R                  R
                  [        R                  R
                  S[        R                  R
                  [        R                  R
                  /S5      5      /$ )Nr8  r6   T)	r%  r"   r®  r-  rT  rB  rS  rQ  rM  )rX  rÂ  rk  r¢  Úsketchs        r4   r£  ÚPdfFile.pathOperationsV  sc   € äœ×0Ò0Ø˜T¨VØÜ�Y‰Y�_‰_œbŸi™iŸo™o¨s´B·J±J×4DÑ4DÜ�\‰\×Ñð!àóó ð ð 	r6   c                 ó´   • U(       a-  SSU R                   S-  U R                  S-  4nUR                  nOS nSnU R                  XX5US9nU R                  " U6   g )Nr¹  r  F)r¢  r$  )r€   r�   Úshould_simplifyr£  r  )rî   rX  rÂ  rk  r$  r¢  Úcmdss          r4   Ú	writePathÚPdfFile.writePath_  sa   € ÞØ˜˜dŸj™j¨2™o¨t¯{©{¸RÑ/?Ð@ˆDØ×+Ñ+‰HàˆDØˆHØ×"Ñ" 4°DØ*0ð #ð 2ˆà�Š�TÒr6   c                 ó~   • [        U R                  5      nU R                  R                  SSU/5        [	        U5      $ )zƒ
Reserve an ID for an indirect object.

The name is used for debugging in case we forget to print out
the object with writeObject.
Nr   )r|  rá  râ  r*   ré   )rî   rN   rì   s      r4   ré  ÚPdfFile.reserveObjectj  s6   € ô �$×"Ñ"Ó#ˆØ�‰×Ñ˜t Q¨˜oÔ.Ü˜‹}Ðr6   c                 ór   • U R                   R                  5       U R                  -
  U R                  U   S'   g ©Nr   )ry  r€  rå  râ  rí   s     r4   r|  ÚPdfFile.recordXrefu  s(   € Ø $§¡§¡£°·±Ñ ?ˆ�‰�rÑ˜1Òr6   c                 ó\   • U R                  UR                  5        UR                  X 5        g r>   )r|  rì   rù   )rî   Úobjectrú   s      r4   r‰  ÚPdfFile.writeObjectx  s   € Ø�‰˜Ÿ	™	Ô"Ø�‰�XÕ$r6   c                 óV  • U R                   R                  5       U R                  -
  U l        U R	                  S[        U R                  5      -  5        [        U R                  5       H=  u  nu  p#nUc  [        SX4-  5      eUS:X  a  SOSnSX#U4-  nU R	                  U5        M?     g)zWrite out the xref table.s
   xref
0 %d
NzNo offset for object %d (%s)rÀ  r0  r4  s   %010d %05d %b 
)	ry  r€  rå  Ú	startxrefrù   r)   râ  r(   ÚAssertionError)rî   r1   ÚoffsetÚ
generationrN   r  r*  s          r4   rR  ÚPdfFile.writeXref|  sž   € àŸ™Ÿ™›¨$¯.©.Ñ8ˆŒØ�
‰
�?¤S¨¯©Ó%8Ñ8Ô9Ü-6°t·~±~Ö-FÑ)ˆAÑ)� DØ‰~Ü$Ø2°a°YÑ>ó@ð @ð #Ð&7Ó7‘d¸T�Ø*¨fÀ#Ð-FÑF�Ø—
‘
˜4Ö ò .Gr6   c                 ó|   • U R                  S5      U l        U R                  U R                  U R                  5        g)z8Write out the info dictionary, checking it for good formri   N)ré  Ú
infoObjectr‰  ró  rò   s    r4   rQ  ÚPdfFile.writeInfoDict‰  s.   € ð ×,Ñ,¨VÓ4ˆŒØ×Ñ˜Ÿ™¨$¯-©-Õ8r6   c                 óì   • U R                  S5        U R                  [        [        U R                  5      U R                  U R
                  S.5      5        U R                  SU R                  -  5        g)zWrite out the PDF trailer.s   trailer
)ÚSizeÚRootÚInfos   
startxref
%d
%%%%EOF
N)rù   r¿   r)   râ  rê  r:  r4  rò   s    r4   rS  ÚPdfFile.writeTrailer�  sZ   € ð 	�
‰
�<Ô Ø�
‰
”7Ü˜Ÿ™Ó(Ø—_‘_Ø—_‘_ñ&ó'ô 	(ð
 	�
‰
Ð0°4·>±>ÑAÕBr6   ))rñ  rû  r  rù  rî  r   rÿ  r  r  rõ  rá  rþ  rý  rü  rú  rè  rö  ry  rô  rí  rð  r  rï  r�   ró  r:  r  r  rä  r  rì  rë  rã  r  rò  rê  r4  rå  r÷  r€   râ  r>   r”  )NNN©FN)r*  ):rý   rþ   rÿ   r   r  rï   r$  r-  rB  r^  ra  rù   r  r  r  rn  rG  r„  r˜  rH  r�  r›  rÄ  rí  rD  rŸ  rq  r‚  rI  rJ  r‘  r	   Ú
deprecatedÚpropertyÚhatchPatternsrK  r®  rL  rÌ  rÔ  rå  r  rN  r  rO  r  rP  Ústaticmethodr£  r)  ré  r|  r‰  rR  rQ  rS  r  Ú__classcell__©r  s   @r4   r¾  r¾  ”  s>  ø† Ù÷g9òR"ò: .@ô -ò*ò òB	ò+òô?ò&ð
 04õ ò
8òò>ò<1ò*
ò8òt=ò~ðÐò*|@ò|	ò2òh
òòð" —O’O FÔ+©Hñ 6ó -ó €Mò$6òLò.*:òX
òò.,ô:=ò~5òò:ò,òð* óó ðô	ô	ò@ò%ò!ò9÷	Cð 	Cr6   r¾  c                   óÌ   ^ • \ rS rSr\R
                  " S5      rSrU 4S jrS r	SS jr
S rSS	 jrSS
 jrS r SS jrS rSS jrS rSS.S jrS rSS jrS rS rSrU =r$ )ry  i›  zfonts/pdfcorefontsrs  c                 óf   >• [         TU ]  XC5        Xl        U R                  5       U l        X l        g r>   )rß  rï   rû   Únew_gcr´   Ú	image_dpi)rî   rû   rK  r�   r€   r  s        €r4   rï   ÚRendererPdf.__init__   s'   ø€ Ü‰Ñ˜Ô'ØŒ	Ø—+‘+“-ˆŒØ"�r6   c                 óf   • U R                   R                  " U R                  R                  5       6   g r>   )rû   r  r´   r^  rò   s    r4   r^  ÚRendererPdf.finalize¦  s!   € Ø�	‰	×Ò˜$Ÿ'™'×*Ñ*Ó,Ò-r6   Nc                 óö  • [        USS5      nX!l        [        USS5      nUR                  5       c  UR                  SSS9  UR                  (       a  UR
                  UR
                  4Ul        OBUb  [        U5      S:  a  UR                  S	   S
4Ul        OUR                  S	   US	   4Ul        U R                  R                  U5      nU(       a  U R                  R                  " U6   X1l        XAl        g )NÚ
_fillcolor©r¹  r¹  r¹  Ú_effective_alphas©r»  r»  r!  T)ÚisRGBArÎ  rà   r»  )ÚgetattrrP  Úget_rgbÚset_foregroundÚ_forced_alphaÚ_alpharR  r)   Ú_rgbr´   Údeltarû   r  )rî   r´   Ú	fillcolorÚ	orig_fillÚorig_alphasr[  s         r4   Úcheck_gcÚRendererPdf.check_gc©  sÖ   € Ü˜B ¨lÓ;ˆ	Ø!Œä˜bÐ"5°zÓBˆà�:‰:‹<Ñð ×Ñ˜l°4ÐÑ8à××Ø$&§I¡I¨r¯y©yÐ#9ˆBÕ ØÑ¤# i£.°1Ó"4Ø$&§G¡G¨A¡J°Ð#4ˆBÕ à$&§G¡G¨A¡J°	¸!±Ð#=ˆBÔ à—‘—‘˜bÓ!ˆÞØ�I‰I×Ò˜eÑ$ð "ŒØ*Õr6   c                 ó    • U R                   S-  $ )Nrš  )rK  rò   s    r4   Úget_image_magnificationÚ#RendererPdf.get_image_magnificationÄ  s   € Ø�~‰~˜dÑ"Ð"r6   c                 óè  • UR                   S S u  pgUS:X  d  US:X  a  g Uc  UR                  S5        U R                  U5        SU-  U R                  -  nSU-  U R                  -  nU R                  R                  U5      nUc]  U R                  R                  [        R                  USSXbU[        R                  U[        R                  [        R                  5        g UR                  5       R                  5       u  pšp¼pÞU R                  R                  [        R                  SSSSX#[        R                  XšX¼XÞ[        R                  U[        R                  [        R                  5        g )Nr™  r   r»  rš  r#   )r½  Ú	set_alphar_  rK  rû   rÌ  r  r-  rc  rU  rV  rd  ÚfrozenÚ	to_values)rî   r´   rB   r   rÒ  rÂ  r•  rS  ÚimobÚtr1Útr2Útr3Útr4Útr5Útr6s                  r4   Ú
draw_imageÚRendererPdf.draw_imageÇ  s&  € ð �x‰x˜˜ˆ|‰ˆØ�‹6�Q˜!“VØàÑà�L‰L˜Ôà�‰�bÔà�1‰H�t—~‘~Ñ%ˆØ�1‰H�t—~‘~Ñ%ˆà�y‰y×$Ñ$ RÓ(ˆàÑØ�I‰I×ÑœRŸX™XØ  1 a¨A¬r×/?Ñ/?Ø!¤2§>¡>´2·;±;õ@ð ,5×+;Ñ+;Ó+=×+GÑ+GÓ+IÑ(ˆC�c à�I‰I×ÑœRŸX™XØ  1 a¨¬r×/?Ñ/?Ø  s°¼2×;KÑ;KØ!¤2§>¡>´2·;±;õ@r6   c                 ó  • U R                  X5        U R                  R                  X#US L =(       a    UR                  5       S L UR	                  5       5        U R                  R                  U R                  R                  5       5        g r>   )r_  rû   r)  Úget_hatch_pathÚget_sketch_paramsr  r´   Úpaint)rî   r´   rX  rÂ  ÚrgbFaces        r4   Ú	draw_pathÚRendererPdf.draw_pathå  sg   € à�‰�bÔ"Ø�	‰	×ÑØØ�tˆO×; × 1Ñ 1Ó 3°tÐ ;Ø× Ñ Ó"ô	$ð 	�	‰	×Ñ˜Ÿ™Ÿ™›Õ)r6   c                 ób  • Sn[         R                  " U5      n[         R                  " U5      n[        U5      (       d  SnUR                  5       (       + nO3[         R                  " US S 2S4   US   :H  5      (       a	  US   S:g  nOSn[        U5      (       d  SnOh[         R                  " [         R                  " U	5      S:H  5      (       a  SnO3[         R                  " US S 2S4   US   :H  5      (       a	  US   S:g  nOSn[        U5      S:”  a  [        US   R
                  5      OSnU R                  X4XWU5      nUU-   S-   UU-  :  nU(       a  U(       d  [        R                  " XX#UXVXxXšX¼U5      $ [         R                  " U	5      n/ n[        U R                  X#U5      5       H:  u  nu  nnU R                  R                  UUUUWW5      nUR                  U5        M<     U R                  R                  nU" U R                   R#                  5       6   Su  nnU R%                  UUXVXxXšX¼U5       HU  u  nnnn n!U R'                  U U!5        UU-
  UU-
  n#n"U" S	SSS	U"U#[(        R*                  U[(        R,                  5	        UUnnMW     U" U R                   R/                  5       6   g )
NTFrà   )r   rà   r¹  r   r  r`  r#   )rÉ   Úasarrayr)   Ú	get_hatchr«  r    Ú_iter_collection_uses_per_pathr   Údraw_path_collectionr›   r(   Ú_iter_collection_raw_pathsrû   r  r*   r  r´   ÚpushÚ_iter_collectionr_  r-  rU  rV  Úpop)$rî   r´   Úmaster_transformr  Úall_transformsÚoffsetsÚoffset_transÚ
facecolorsÚ
edgecolorsÚ
linewidthsÚ
linestylesÚantialiasedsÚurlsÚoffset_positionÚcan_do_optimizationr\  r]  Úlen_pathÚuses_per_pathÚshould_do_optimizationr[  Ú
path_codesr1   rX  rÂ  rN   r  ÚlastxÚlastyÚxoÚyoÚpath_idÚgc0ru  ÚdxÚdys$                                       r4   r|  Ú RendererPdf.draw_path_collectionî  sš  € ð #ÐÜ—Z’Z 
Ó+ˆ
Ü—Z’Z 
Ó+ˆ
ä�:�‰ØˆFØ&(§l¡l£nÔ"4Ñä�vŠv�j¢ A Ñ&¨*°TÑ*:Ñ:×;Ñ;Ø# DÑ)¨SÑ0‘à&+Ð#ä�:�‰Ø‰Gä�vŠv”b—j’j Ó,°Ñ3×4Ñ4Ø‘Ü—’˜
¢1 a 4Ñ(¨J°tÑ,<Ñ<×=Ñ=Ø$ TÑ*¨cÑ1‘à&+Ð#ô .1°«Z¸!«^”3�u˜Q‘x×(Ñ(Ô)ÀˆØ×;Ñ;Ø 7¸
óDˆð �}Ñ$ qÑ(¨8°mÑ+CÑCð 	ö $Ö-CÜ×4Ò4ØÐ*°>Ø zØ¨Øó	!ð !ô —&’&˜Ó$ˆØˆ
Ü$-¨d×.MÑ.MØ ¨ó/9ö %:Ñ ˆAÑ ��ià—9‘9×1Ñ1Ø�D˜) W¨f°gó?ˆDà×Ñ˜dÖ#ñ	%:ð —‘×!Ñ!ˆÙ�—‘—‘“ÑØ‰ˆˆuØ-1×-BÑ-BØ�J Ø¨
Ø Oö.5Ñ)ˆB��G˜S 'ð
 �M‰M˜#˜wÔ'Ø˜%‘Z  e¡�ˆBÙ�1�a˜˜A˜r 2¤r×'7Ñ'7¸Ü—>‘>ô#à˜r�5ˆE‘5ñ.5ñ 	�—‘—‘“Òr6   c                 óê  • [        U5      n[        U5      nXx-  Xx-   S-   :  a  [        R                  " XX#XEU5        g U R                  X5        UR	                  U5      n	UR                  5       n
U R                  R                  nU R                  R                  X#XšU R                  R                  UR                  5       UR                  5       5      nU" [        R                  5        Su  pÞUR                  USSU R                  R                   S-  U R                  R"                  S-  4SS9 H¨  u  nn[        U5      (       d  M  USS  u  nnSUs=::  a  U R                  R                   S-  ::  a)  O  O&SUs=::  a  U R                  R"                  S-  ::  d  O  Mo  UU-
  UU-
  nnU" SSSSUU[        R$                  U[        R&                  5	        UUpíMª     U" [        R(                  5        g )	Nr  r`  r   r  F)rk  r¢  r	  r#   )r)   r   Údraw_markersr_  rG  rF  rû   r  r  r´   Ú
_linewidthr  r  r-  rc  Úiter_segmentsr€   r�   rU  rV  rd  )rî   r´   Úmarker_pathÚmarker_transrX  rY  ru  Úlen_marker_pathÚusesrG  rF  r  Úmarkerr‘  r’  r    ÚcoderB   r   r—  r˜  s                        r4   r›  ÚRendererPdf.draw_markers4  s±  € ô
 ˜kÓ*ˆÜ�4‹yˆØÑ! OÑ$:¸QÑ$>Ó>Ü×%Ò% d°Ø&*°7ô<àà�‰�bÔ"Ø�w‰w�wÓˆØ—‘“ˆà—‘×!Ñ!ˆØ—‘×'Ñ'Ø t°T·W±W×5GÑ5GØ×ÑÓ §¡Ó 1ó3ˆñ 	Œr�x‰xÔØ‰ˆØ"×0Ñ0ØØ˜˜DŸI™IŸO™O¨BÑ.°·	±	×0@Ñ0@ÀÑ0CÐDØð 1ó  ‰NˆH�dô �8�}‹}Ø  �}‘��1Ø˜QÕ6 $§)¡)§/¡/°BÑ"6Ö6Ø Õ; d§i¡i×&6Ñ&6¸Ñ&;Õ;ÙØ˜U™ A¨¡I�B�Ù�q˜!˜Q  2 r¬2×+;Ñ+;ØœrŸ~™~ô/à  !’uñ ñ 	Œr�{‰{Õr6   c                 óÊ  • [        U5      [        U5      :X  d   e[        U5      S:X  a  g UR                  S:X  d   eUR                  S   S:X  d   eUR                  S   S:X  d   eUR                  S:X  d   eUR                  S   S:X  d   eUR                  S   S;   d   eUR                  nUR                  US   US   -  S45      nUR	                  U5      nUR                  U5      nU R
                  R                  Xc5      u  pxU R
                  R                  n	UR                  S   S:X  a:  UR                  S5        U R                  U5        U	" U[        R                  5        g US   n
[        R                  " X£S S 2S S 2S4   5      (       a:  UR                  U
5        U R                  U5        U	" U[        R                  5        g US S 2S S 2S4   S S 2S S 2S 4   n
U R
                  R                  Xj5      u  p‹U R
                  R                  U5      nU	" [        R                  U[        R                   U[        R                  [        R"                  5        g )Nr   rà   r#   r™  r±  r»  )r   r   rà   )r)   rÑ  r½  r¾  rÂ  rû   r®  r  re  r_  r-  rl  rÉ   Úallcloser‚  rc  rb  rd  )rî   r´   r¬  r­  rY  r½  ÚtpointsrN   r   r  ro  Úsmask_obÚgstates                r4   Údraw_gouraud_trianglesÚ"RendererPdf.draw_gouraud_trianglesZ  sú  € Ü�6‹{œc &›kÓ)Ð)Ð)Üˆv‹;˜!ÓØØ�{‰{˜aÓÐÐØ�|‰|˜A‰ !Ó#Ð#Ð#Ø�|‰|˜A‰ !Ó#Ð#Ð#Ø�{‰{˜aÓÐÐØ�|‰|˜A‰ !Ó#Ð#Ð#Ø�|‰|˜A‰ &Ó(Ð(Ð(à—‘ˆØ—‘  q¡¨E°!©HÑ!4°aÐ 8Ó9ˆØ—/‘/ &Ó)ˆØ—/‘/ %Ó(ˆØ—)‘)×/Ñ/°Ó@‰ˆØ—‘×!Ñ!ˆà�<‰<˜‰?˜aÓà�L‰L˜ÔØ�M‰M˜"ÔÙ�4œŸ™Ô$Øà�w‘ˆÜ�;Š;�u¢Qª¨1 W™o×.Ñ.à�L‰L˜ÔØ�M‰M˜"ÔÙ�4œŸ™Õ$ð š1ša ˜7‘O¢A¢q¨$ JÑ/ˆEØŸ)™)×7Ñ7¸ÓG‰KˆAØ—Y‘Y×/Ñ/°Ó9ˆFÙ”2—8‘8˜V¤R§\¡\ØœŸ™Ü—;‘;õ r6   c           	      ó  • X6s=:X  a  S:X  a3  O  O0U R                   R                  X-
  X%-
  [        R                  5        g [        R
                  " U5      nU R                   R                  [        R                  " U5      [        R                  " U5      [        R                  " U5      * [        R                  " U5      X[        R                  5        U R                   R                  SS[        R                  5        g r.  )	rû   r  r-  re  r{   r|   r~   r}   rg  )rî   rB   r   r‚   ÚoldxÚoldyÚoldangles          r4   Ú_setup_textposÚRendererPdf._setup_textpos‚  sœ   € ØÕ! Ö!Ø�I‰I×Ñ˜Q™X q¡x´·±Õ<ä—L’L Ó'ˆEØ�I‰I×ÑœTŸXšX e›_¬d¯hªh°u«oÜ"Ÿhšh u›oÐ-¬t¯xªx¸«Ø¤2§=¡=ô2ð �I‰I×Ñ˜Q ¤2§:¡:Õ.r6   c                 ó*  • U R                   R                  R                  USU5      u  pxpšnUR                  5       b6  U R                  R
                  S   S   R                  [        XX7X†5      5        [        R                  S   n[        R                  " U5      nU R                  R                  [        R                  5        U R                  R                  [        R                  " U5      [        R                   " U5      [        R                   " U5      * [        R                  " U5      X#[        R"                  5        U R%                  XR&                  5        SnSu  nn/ nU R                  R                  [        R(                  5        U
 GH  u  nnnnnU R                  R*                  R-                  UU5        UR.                  n[1        UU5      (       d  UR                  UUUUU45        Me  U R3                  UUSUU5        UUnnUU4U:w  aH  U R                  R                  U R                  R5                  U5      U[        R6                  5        UU4nU R                  R                  U R9                  [;        U5      U5      [        R<                  5        GM     U R                  R                  [        R>                  5        U H-  u  nnnnnU RA                  UUURC                  U5      UU5        M/     U H`  u  nnpxU R                  R                  [        R                  UUXx[        RD                  [        RF                  [        RH                  5        Mb     U R                  R                  [        RH                  5        g )Nr  r   r#   rð  r”  r`  r   )%Ú
_text2pathÚmathtext_parserÚparser³   rû   r  r*   r¸   r_   r}  r{   r|   r  r-  rc  r~   r}   rU  r_  rZ  rO  rù  Útrack_glyphr‚  rç   r°  r„  rf  Úencode_stringr,  rh  rP  Ú_draw_xobject_glyphr  rR  rG  rd  )rî   r´   rB   r   r2   rÃ  r‚   r€   r�   ÚdescentÚglyphsÚrectsrå   r…   Ú	prev_fontr­  r®  Úunsupported_charsr²  ÚfontsizeÚnumÚoxÚoyr¬  s                           r4   Údraw_mathtextÚRendererPdf.draw_mathtextŒ  sÁ  € ð �O‰O×+Ñ+×1Ñ1°!°R¸Ó>ñ 	.ˆ�w¨ð �:‰:‹<Ñ#Ø�I‰I×"Ñ" 2Ñ& qÑ)×0Ñ0Ô1EØ�q ó20ô 1ô —<‘< Ñ/ˆô �LŠL˜ÓˆØ�	‰	×ÑœŸ™Ô"Ø�	‰	×ÑœŸš !›¤d§h¢h¨q£kÜŸ(š( 1›+˜¤t§x¢x°£{Øœr×/Ñ/ô	1ð 	�‰�bŸ'™'Ô"Øˆ	Ø‰
ˆˆdØÐà�	‰	×ÑœŸ™Ô'Ü+1Ñ'ˆD�(˜C  RØ�I‰I×(Ñ(×4Ñ4°T¸3Ô?Ø—z‘zˆHÜ'¨°#×6Ñ6ð "×(Ñ(¨$°¸"¸bÀ#Ð)FÖGà×#Ñ# B¨¨A¨t°TÔ:Ø �d�Ø˜hÐ'¨9Ó4Ø—I‘I×$Ñ$ T§Y¡Y×%7Ñ%7¸Ó%AÀ8Ü%'§]¡]ô4à (¨(Ð 2�IØ—	‘	× Ñ  ×!3Ñ!3´C¸³H¸hÓ!GÜ!#§¡÷*ñ ,2ð  	�	‰	×ÑœŸ™Ô%ã+<Ñ'ˆD�(˜B  CØ×$Ñ$Ø�h × 3Ñ 3°CÓ 8¸"¸böBñ ,=ó
 &+Ñ!ˆB��EØ�I‰I×ÑœRŸX™X r¨2¨uÜŸ\™\¬2¯7©7´B·K±KöAñ &+ð
 	�	‰	×ÑœŸ™Õ%r6   )Úmtextc          
      óü  • U R                  5       nUR                  5       n	UR                  XI5      n
[        R                  " U
S5       nUu  nS S S 5        UR                  5       bL  U R                  R                  S   S   R                  [        XUWR                  UR                  U5      5        S / píWR                   HX  u  nnnnnUU:w  a0  U R                  R                  U5      nUSUUR                  //-  nUnUSUU[        U/5      /UU-   //-  nMZ     Su  nnn	U[!        U5      S-
  :  aÇ  UUUS-    u  nnUS   S:X  a  US   n	O”US   US   s=:X  a  S:X  a�  O  O~US   US   :X  ar  US	   US   -
  n[#        U5      S
:  a-  US   S==   US   S   -  ss'   US	==   US	   US   -
  -  ss'   O#US==   US-  U	-  US   S   /-  ss'   US	   US	'   UUS-   	 MÀ  US-  nU[!        U5      S-
  :  a  MÇ  [%        5       R'                  U5      R)                  X#5      nU R+                  XR,                  5        U R                  R/                  [0        R2                  5        Su  nnnnU Hð  nUS   S:X  a3  U R                  R/                  US   US   [0        R4                  5        M?  US   S:X  a¨  UR7                  US   US   45      u  nnU R9                  UUUUU5        UUnn[!        US   5      S:X  a2  U R                  R/                  US   S   [0        R:                  5        MÁ  U R                  R/                  US   [0        R<                  5        Mð   e   U R                  R/                  [0        R>                  5        U RA                  5       nURC                  U5        URE                  S5        [F        RH                  [F        RJ                  [F        RJ                  [F        RJ                  [F        RL                  /nURN                   HM  u  nnn n![G        UU/UU!-   U/UU!-   UU -   /UUU -   /SS//U5      n"U RQ                  UU"UUR,                  5        MO     g ! , (       d  f       GN%= f)Nr  r   r#   r²  r*  )r   r   Nr™  r   rÎ  gš™™™™™¹?rà   g     @�@r!  ))Úget_texmanagerÚget_size_in_pointsÚmake_dvir   ÚDvir³   rû   r  r*   r¸   r€   r�   r*  r˜  ÚsizerÔ   r)   Úabsr   Ú
rotate_degrÖ   r_  rZ  r  r-  rO  rf  rÂ  r°  rh  ri  rP  rJ  Úcopy_propertiesÚset_linewidthr    ÚMOVETOÚLINETOÚ	CLOSEPOLYÚboxesrv  )#rî   r´   rB   r   r2   rÃ  r‚   rÄ  Ú
texmanagerr¾  ÚdvifileÚdvir  ÚoldfontÚseqÚx1Úy1r‡  ræ   r€   rˆ  r1   ÚcurxÚeltÚnxtr6  ÚmytransÚcuryr­  r®  Úboxgcr  r•  rS  rX  s#                                      r4   Údraw_texÚRendererPdf.draw_texÂ  s1  € à×(Ñ(Ó*ˆ
Ø×*Ñ*Ó,ˆØ×%Ñ% aÓ2ˆÜ�[Š[˜ "Ô%¨Ø‰EˆD÷ &ð �:‰:‹<Ñ#Ø�I‰I×"Ñ" 2Ñ& qÑ)×0Ñ0Ô1EØ�q˜$Ÿ*™* d§k¡k°5ó2:ô ;ð ˜R�Ø-1¯Y¬YÑ)ˆB��G˜U EØ˜'Ó!ØŸ)™)×/Ñ/°Ó8�Ø˜ ¨'¯,©,Ð7Ð8Ñ8�Ø!�Ø�V˜R ¤e¨U¨G£nÐ%5°r¸%±xÐ@ÐAÑAŠCñ .7ð 'Ñˆˆ4�Ø”#�c“(˜1‘*‹nØ˜1˜Q˜q™S�z‰HˆC�Ø�1‰v˜ÓØ˜q™6‘Ø�Q‘˜3˜q™6Õ+ VÖ+°°A±¸#¸a¹&Ó0@Ø˜Q™ # a¡&™�Ü�v“; Ó$Ø˜‘F˜2“J # a¡&¨¡)Ñ+“JØ˜“F˜c !™f S¨¡V™mÑ+”Fà˜“F˜v f™}¨XÑ5°s¸1±v¸a±yÐAÑA“FØ  ™V�C˜‘FØ˜˜!™�HÙØ�‰FˆAð ”#�c“(˜1‘*�nô" “*×'Ñ'¨Ó.×8Ñ8¸Ó>ˆð 	�‰�bŸ'™'Ô"Ø�	‰	×ÑœŸ™Ô'Ø!+Ñˆˆd�D˜$ÛˆCØ�1‰v˜ÓØ—	‘	× Ñ   Q¡¨¨Q©´·±Ö?Ø�Q‘˜6Ó!Ø$×.Ñ.°°A±¸¸A¹Ð/?Ó@‘
��dØ×#Ñ# D¨$°°t¸TÔBØ! 4�d�Ü�s˜1‘v“; !Ó#Ø—I‘I×$Ñ$ S¨¡V¨A¡Y´·±Ö8à—I‘I×$Ñ$ S¨¡V¬R¯[©[Ö9à�uñ ð 	�	‰	×ÑœŸ™Ô%ð —‘“ˆØ×Ñ˜bÔ!Ø×Ñ˜AÔÜ—;‘;¤§¡¬T¯[©[¼$¿+¹+Ü—>‘>ð#ˆà ŸJœJ‰LˆB��A�qÜ˜"˜b˜ B q¡D¨" :°°1±°b¸±d¨|¸bÀ"ÀQÁ$¸ZØ˜Q˜ð!Ø")ó+ˆDà�N‰N˜5 $¨°·±Ö9ò '÷S &Ö%ús   Á	Q,Ñ,
Q;c                 óV   • US;   a  UR                  SS5      $ UR                  SS5      $ )Nrè  rþ  r]   r=  )rÑ   )rî   r2   rå   s      r4   r·  ÚRendererPdf.encode_string	  s,   € Ø�vÓØ—8‘8˜H iÓ0Ð0Ø�x‰x˜
 IÓ.Ð.r6   c	                 óô
  • U R                  XR                  5        U(       a  U R                  XX4XV5      $ UR                  5       n	[        R
                  S   (       a  U R                  U5      n
SnOIU R                  U5      n
U R                  R                  R                  X¤5        [        R
                  S   nUR                  5       b`  U
R                  U5        U
R                  5       u  pÍU R                  R                  S   S   R                  [!        XX<S-  US-  U5      5        US;  a®  U R                  R#                  [$        R&                  U R                  R)                  U5      U	[$        R*                  5        U R-                  X#U5        U R                  R#                  U R/                  XK5      [$        R0                  [$        R2                  5        g / n/ nSnU
n[4        R6                  " XJ[8        R:                  S9 Hý  n[=        U[?        UR@                  5      5      (       a¢  U(       d  URB                  U:w  a4  UR                  URB                  URD                  / 45        URB                  nURF                  (       a!  US   S	   R                  URF                  5        US   S	   R                  UR@                  5        S
nMÉ  UR                  URB                  URD                  URH                  45        SnMÿ     U R                  R#                  [$        RJ                  5        [L        RN                  " U5      nU R                  R#                  [L        RP                  " U5      [L        RR                  " U5      [L        RR                  " U5      * [L        RP                  " U5      X#[$        RT                  5        U R                  R#                  [$        R&                  5        SnU GH  u  nnnU R                  R)                  URV                  5      nU R                  R#                  UU	[$        R*                  5        U R-                  USSUSS5        U R                  R#                  [X        RZ                  " U[\        5       VVs/ s HB  u  nnU[^        :X  a  S[a        U5      -  U	-  O U R/                  SRc                  U5      U5      PMD     snn[$        Rd                  5        UnGM     U R                  R#                  [$        R2                  5        U H  u  nnnU Rg                  UU	UUS5        M     U R                  R#                  [$        Rh                  5        g s  snnf )Nrs  r#   rð  r   r˜  )rà   râ   T)Ú	kern_moder™  Fr   iüÿÿr*  )5r_  rZ  rÂ  rÇ  r_   r}  Ú_get_font_afmÚ_get_font_ttfrû   rù  Útrackr³   Úset_textÚget_width_heightr  r*   r¸   r  r-  rO  r„  rf  r°  r·  rh  rP  r
   Úlayoutr   ÚUNFITTEDrç   r"  ÚcharÚ	ft_objectrB   Ú	prev_kernÚ	glyph_idxrc  r{   r|   r~   r}   rU  r‚  r�   ÚgroupbyrÜ   rÈ   r|  r+   ri  r¸  rd  )rî   r´   rB   r   r2   rÃ  r‚   ÚismathrÄ  r¾  r²  rå   r€   r�   Úsinglebyte_chunksÚmultibyte_glyphsÚprev_was_multibyter¼  Úitemr…   Úprev_start_xrî  Ústart_xÚkerns_or_charsÚft_nameÚtpÚgrouprð  s                               r4   Ú	draw_textÚRendererPdf.draw_text	  s&  € ð
 	�‰�bŸ'™'Ô"ÞØ×%Ñ% b¨Q°4Ó?Ð?à×*Ñ*Ó,ˆä�<‰<Ð,×-Ø×%Ñ% dÓ+ˆDØ‰Hà×%Ñ% dÓ+ˆDØ�I‰I×(Ñ(×.Ñ.¨tÔ7Ü—|‘| NÑ3ˆHà�:‰:‹<Ñ#Ø�M‰M˜!ÔØ ×1Ñ1Ó3‰MˆEØ�I‰I×"Ñ" 2Ñ& qÑ)×0Ñ0Ô1EØ�q "™* f¨r¡k°5ó2:ô ;ð
 ˜7Ó"Ø�I‰I×ÑœRŸ]™]Ø!ŸY™Y×/Ñ/°Ó5°xÄÇÁôPà×Ñ  eÔ,Ø�I‰I×Ñ˜T×/Ñ/°Ó<ÜŸW™W¤b§k¡kõ3ð$ !#Ðà!ÐØ!%ÐØˆIÜ%×,Ò,¨QÄ×@PÑ@PÔQ�Ü'¨´#°d·i±i³.×AÑAÞ)¨T¯^©^¸yÓ-HØ)×0Ñ0°$·.±.À$Ç&Á&È"Ð1MÔNØ$(§N¡N˜	Ø—~—~Ø)¨"Ñ-¨aÑ0×7Ñ7¸¿¹ÔGØ% bÑ)¨!Ñ,×3Ñ3°D·I±IÔ>Ø).Ò&à$×+Ñ+¨T¯^©^¸T¿V¹VÀTÇ^Á^Ð,TÔUØ)-Ò&ñ Rð �I‰I×ÑœRŸX™XÔ&Ü—’˜UÓ#ˆAØ�I‰I×ÑœTŸXšX a›[¬$¯(ª(°1«+Ü"Ÿhšh q›k˜\¬4¯8ª8°A«;Ø¤2×#3Ñ#3ô5ð
 �I‰I×ÑœRŸ]™]Ô+ØˆLÜ6GÑ2�	˜7 NØŸ)™)×,Ñ,¨Y¯_©_Ó=�Ø—	‘	× Ñ  ¨(´B·M±MÔBØ×#Ñ# G¨Q°°<ÀÀAÔFØ—	‘	× Ñ ô
 '0×&7Ò&7¸ÌÔ&MôOâ&M™˜˜Uð 8:¼U³{�UœT %›[Ñ(¨8Ò3Ø×,Ñ,¨R¯W©W°U«^¸XÓFòGá&MòOô —K‘Kô!ð  '“ñ 7Hð �I‰I×ÑœRŸ[™[Ô)ã1AÑ-�	˜7 IØ×(Ñ(Ø˜x¨°G¸Qöñ 2Bð �I‰I×ÑœRŸ[™[Õ)ùóOs   ÒA	U4c                 óH  • UR                  U5      nU R                  R                  UR                  U5      nU R                  R	                  [
        R                  SU-  SSSU-  XE[
        R                  [        U5      [
        R                  [
        R                  5        g)z<Draw a multibyte character from a Type 3 font as an XObject.rû  r   N)r¯  rû   rí  r‚  r  r-  rc  rU  rM   rV  rd  )rî   r²  r¾  rð  rB   r   rì  rN   s           r4   r¸  ÚRendererPdf._draw_xobject_glyph{	  sv   € à×(Ñ(¨Ó3ˆ
Ø�y‰y×0Ñ0°·±¸ZÓHˆØ�	‰	×ÑÜ�H‰HØ�HÑ˜a  E¨HÑ$4°a¼B×<LÑ<LÜ�‹JœŸ™Ü�K‰Kõ		
r6   c                 ó,   • [        U R                  5      $ r>   )r  rû   rò   s    r4   rJ  ÚRendererPdf.new_gc†	  s   € ä! $§)¡)Ó,Ð,r6   )rû   r´   rK  r>   rª   rA  )rý   rþ   rÿ   r   r   Ú_get_data_pathrz  Ú_use_afm_rc_namerï   r^  r_  rb  ro  rv  r|  r›  rª  r°  rÂ  rà  r·  rý  r¸  rJ  r  rF  rG  s   @r4   ry  ry  ›  sƒ   ø† à×(Ò(Ð)=Ó>€MØ+Ðõ#ò.ô+ò6#ô@ô<*òDðN "ô$òL& ôP/ò4&ðl ;?õ Q:òf/ô
_*òB	
÷-ð -r6   ry  c            
       óì   ^ • \ rS rSrU 4S jrS rS rS rS rSSS	S
.r	SSS	S.r
S rS rS rS rS rS rS rS rS rS rS rS\4S\4S\4S\4S\4S\4S\4S\4S\44	rS  rU 4S! jrS" rS#rU =r$ )$r  i‹	  c                 óX   >• [         TU ]  5         SU l        SU l        Xl        S U l        g )NrQ  rS  )rß  rï   rP  rR  rû   Úparent)rî   rû   r  s     €r4   rï   ÚGraphicsContextPdf.__init__�	  s)   ø€ Ü‰ÑÔØ)ˆŒØ!+ˆÔØŒ	Øˆ�r6   c                 óN   • [        U R                  5      nUS	 US	 [        U5      $ )Nrû   r  )rØ   r½  Úrepr)rî   rv   s     r4   ró   ÚGraphicsContextPdf.__repr__”	  s'   € Ü�—‘ÓˆØˆfˆIØˆhˆKÜ�A‹wˆr6   c                 ó¼   • U R                   S:„  =(       aG    U R                  S:„  =(       a1    [        U R                  5      S:*  =(       d    U R                  S   S:g  $ )zµ
Predicate: does the path need to be stroked (its outline drawn)?
This tests for the various conditions that disable stroking
the path, in which case it would presumably be filled.
r   rà   r¹  )rœ  rY  r)   rZ  rò   s    r4   rF  ÚGraphicsContextPdf.strokeš	  sK   € ð —‘ !Ñ#÷ =¨¯©°a©÷ =Ü�T—Y‘Y“ 1Ñ$×;¨¯	©	°!©¸Ñ(;ð	>r6   c                 ó¼   • [        U5      (       a  US   nOU R                  nU R                  =(       d(    USL=(       a    [        U5      S:*  =(       d    US   S:g  $ )zœ
Predicate: does the path need to be filled?

An optional argument can be used to specify an alternative
_fillcolor, as needed by RendererPdf.draw_markers.
r   Nrà   r¹  )r)   rP  Ú_hatch)rî   ÚargsrP  s      r4   rG  ÚGraphicsContextPdf.fill¥	  sZ   € ô ˆt�9‰9Ø˜a™‰JàŸ™ˆJØ—‘÷ AØ 4Ð'÷ @Ü�j“/ QÑ&×>¨*°Q©-¸3Ñ*>ð	Br6   c                 óf   • [         R                  U R                  5       U R                  5       5      $ )zW
Return the appropriate pdf operator to cause the path to be
stroked, filled, or both.
)r-  rJ  rG  rF  rò   s    r4   rt  ÚGraphicsContextPdf.paint´	  s!   € ô
 �}‰}˜TŸY™Y›[¨$¯+©+«-Ó8Ð8r6   r   r#   r™  )Úbuttr  Ú
projecting)Úmiterr  Úbevelc                 ó@   • U R                   U   [        R                  /$ r>   )r  r-  ra  ©rî   Ústyles     r4   Úcapstyle_cmdÚGraphicsContextPdf.capstyle_cmd¾	  s   € Ø—‘˜uÑ%¤r§}¡}Ð5Ð5r6   c                 ó@   • U R                   U   [        R                  /$ r>   )r  r-  r`  r  s     r4   Újoinstyle_cmdÚ GraphicsContextPdf.joinstyle_cmdÁ	  s   € Ø—‘ Ñ&¬¯©Ð7Ð7r6   c                 ó&   • U[         R                  /$ r>   )r-  rj  )rî   r€   s     r4   Úlinewidth_cmdÚ GraphicsContextPdf.linewidth_cmdÄ	  s   € Ø”r—‘Ð'Ð'r6   c                 óP   • Uu  p#Uc  / nSn[        U5      U[        R                  /$ r.  )rÙ   r-  r_  )rî   Údashesr6  Údashs       r4   Údash_cmdÚGraphicsContextPdf.dash_cmdÇ	  s-   € Ø‰ˆØ‰<ØˆDØˆFÜ�T“
˜F¤B§J¡JÐ/Ð/r6   c                 ó\   • U R                   R                  U5      nU[        R                  /$ r>   )rû   rq  r-  rb  )rî   ro  ÚforcedÚeffective_alphasrN   s        r4   Ú	alpha_cmdÚGraphicsContextPdf.alpha_cmdÎ	  s&   € Ø�y‰y×#Ñ#Ð$4Ó5ˆØ”b—l‘lÐ#Ð#r6   c                 ó>  • U(       dC  U R                   b  U R                  U R                   5      $ [        S5      [        R                  /$ X R                   X4nU R
                  R                  U5      n[        S5      [        R                  U[        R                  /$ )Nr  rÜ  )rP  Úfillcolor_cmdrM   r-  r\  rû   r‘  r^  )rî   rŽ  Úhatch_colorÚhatch_linewidthr‹  rN   s         r4   Ú	hatch_cmdÚGraphicsContextPdf.hatch_cmdÒ	  s€   € ÞØ�‰Ñ*Ø×)Ñ)¨$¯/©/Ó:Ð:ä˜[Ó)¬2×+EÑ+EÐFÐFà&¯©¸ÐPˆKØ—9‘9×)Ñ)¨+Ó6ˆDÜ˜“O¤R×%?Ñ%?Øœ"×/Ñ/ð1ð 1r6   c                 óÀ   • [         R                  S   (       a  / $ US   US   s=:X  a	  US   :X  a  O  OUS   [        R                  /$ / US S Q[        R                  P$ ©Nzpdf.inheritcolorr   r#   r™  rà   )r_   r}  r-  rW  rY  ©rî   rÓ  s     r4   Úrgb_cmdÚGraphicsContextPdf.rgb_cmdÞ	  s^   € Ü�<‰<Ð*×+ØˆIØˆq‰6�S˜‘VÕ%˜s 1™vÖ%Ø˜‘FœB×-Ñ-Ð.Ð.à/�S˜˜!�WÐ/œb×.Ñ.Ð/Ð/r6   c                 óÆ   • Ub  [         R                  S   (       a  / $ US   US   s=:X  a	  US   :X  a  O  OUS   [        R                  /$ / US S Q[        R                  P$ r4  )r_   r}  r-  rX  rZ  r5  s     r4   r.  Ú GraphicsContextPdf.fillcolor_cmdæ	  sb   € Ø‰;œ#Ÿ,™,Ð'9×:ØˆIØ�‰V�s˜1‘vÕ'  Q¡Ö'Ø˜‘FœB×0Ñ0Ð1Ð1à2�S˜˜!�WÐ2œb×1Ñ1Ð2Ð2r6   c                 óž   • [        U R                  5      nUR                  U 5        U R                  Ul        Xl        [        R
                  /$ r>   )r  rû   rÍ  r  r-  rc  )rî   r  s     r4   r~  ÚGraphicsContextPdf.pushî	  s:   € Ü# D§I¡IÓ.ˆØ×Ñ˜tÔ$ØŸ™ˆŒØŒÜ—‘ˆzÐr6   c                 ó®   • U R                   c   eU R                  U R                   5        U R                   R                   U l         [        R                  /$ r>   )r  rÍ  r-  rd  rò   s    r4   r€  ÚGraphicsContextPdf.popõ	  sA   € Ø�{‰{Ñ&Ð&Ð&Ø×Ñ˜TŸ[™[Ô)Ø—k‘k×(Ñ(ˆŒÜ—‘ˆ}Ðr6   c                 óð  • / nU R                   U R                  4X4:w  aX  U R                  bK  UR                  U R	                  5       5        U R                   U R                  4X4:w  a  U R                  b  MK  U R                   U R                  4X4:w  d  U R                  cÔ  UR                  U R                  5       5        U R                   U:w  a?  UR                  U[        R                  [        R                  [        R                  /5        U R                  U:w  aV  UR                  5       u  pEUR                  [        R                  XESS9[        R                  [        R                  /-   5        U$ )z1Set clip rectangle. Calls `.pop()` and `.push()`.Fr¡  )Ú	_cliprectÚ	_clippathr  rº  r€  r~  r-  rR  rk  rH  Úget_transformed_path_and_affiner¾  r£  )rî   ÚcliprectÚclippathr(  rX  Úaffines         r4   Úclip_cmdÚGraphicsContextPdf.clip_cmdû	  s  € àˆà—‘ §¡Ð/°HÐ3GÓGØ—K‘KÑ+Ø�K‰K˜Ÿ™›
Ô#ð —‘ §¡Ð/°HÐ3GÓGØ—K‘KÓ+ð �^‰^˜TŸ^™^Ð,°Ð0DÓDØ—‘Ñ#Ø�K‰K˜Ÿ	™	›Ô$Ø�~‰~ Ó)Ø—‘˜X¤r§|¡|´R·W±W¼b¿j¹jÐIÔJØ�~‰~ Ó)Ø'×GÑGÓI‘�Ø—‘Ü×*Ñ*¨4À%Ð*ÐHÜ—W‘WœbŸj™jÐ)ñ*ô+ð ˆr6   )r?  r@  )rY  rX  rR  )Ú	_capstyle)rP  )Ú
_joinstyle)rœ  )Ú_dashes)rZ  )r  Ú_hatch_colorÚ_hatch_linewidthc           
      ó¼  • / nSnU R                    HÍ  u  pESnU H;  n[        X5      n[        X5      n	 Ub  U	c  X‰LnO[        X‰:g  5      n U(       d  M;    O   UR                  S:X  a	  U(       a  SnU(       d  Mj  UR                  S:X  a  SnU Vs/ s H  n[        X5      PM     n	nUR                  U" U /U	Q76 5        U H  n[        X[        X5      5        M     MÏ     U$ ! [         ah    [        R
                  " U5      n[        R
                  " U	5      n	UR                  U	R                  :g  =(       d    [        R                  " X‰:g  5      n GN	f = fs  snf )ze
Copy properties of other into self and return PDF commands
needed to transform *self* into *other*.
Fr1  Tr.  )ÚcommandsrU  rÎ   rÌ   rÉ   ry  r½  Úanyrý   rº  Úsetattr)
rî   r  r(  Úfill_performedÚparamsÚcmdÚ	differentÚpÚoursÚtheirss
             r4   r[  ÚGraphicsContextPdf.delta
  s@  € ð
 ˆØˆØŸ=œ=‰KˆFØˆIÛ�Ü˜tÓ'�Ü  Ó*�ð	9Ø‘| v¡~Ø$(Ð$6™	ä$(¨©Ó$8™	÷ �9Ùñ ð" �|‰|˜{Ó*®~Ø �	çˆyØ—<‘< ?Ó2Ø%)�NÙ5;Ó<²V°œ' %Ö+±V�Ð<Ø—‘™C Ð. vÒ.Ô/Û�AÜ˜D¤W¨UÓ%6Ö7ó  ñ7 )ð: ˆøô' "ó 9ÜŸ:š: dÓ+�DÜŸZšZ¨Ó/�FØ!%§¡¨v¯|©|Ñ!;÷ "8Ü!#§¢¨©Ó!7ó ð9üò =s   ´	C$¾C$ÂEÃ$A.EÅEc                 ó˜   >• [         TU ]  U5        [        USU R                  5      n[        USU R                  5      nX l        X0l        g)z%
Copy properties of other into self.
rP  rR  N)rß  rÍ  rU  rP  rR  )rî   r  r\  r*  r  s       €r4   rÍ  Ú"GraphicsContextPdf.copy_propertiesC
  sH   ø€ ô 	‰Ñ Ô&Ü˜E <°·±ÓAˆ	Ü" 5Ð*=Ø#'×#9Ñ#9ó;Ðà#ŒØ!1Õr6   c                 ó€   • / nU R                   b.  UR                  U R                  5       5        U R                   b  M.  U$ )z2
Make sure every pushed graphics state is popped.
)r  rº  r€  )rî   r(  s     r4   r^  ÚGraphicsContextPdf.finalizeN
  s6   € ð ˆØ�k‰kÑ%Ø�K‰K˜Ÿ™›
Ô#ð �k‰kÓ%àˆr6   )rR  rP  rû   r  )rý   rþ   rÿ   r   rï   ró   rF  rG  rt  r  r  r  r  r!  r&  r+  r1  r6  r.  r~  r€  rE  rM  r[  rÍ  r^  r  rF  rG  s   @r4   r  r  ‹	  sÔ   ø† õòò	>òBò9ð  Q°aÑ8€IØ q°1Ñ5€Jò6ò8ò(ò0ò$ò
1ò0ò3òòòð, 
$ XÐ.Ø	9¸9ÐEØ	˜Ð&Ø	˜-Ð(Ø	˜-Ð(Ø	˜-Ð(Ø	�xÐ Ø	�GÐà	7¸ÐCð€Hò$õL	2÷ð r6   r  c                   óŠ   • \ rS rSrSr\R                  " SSSS9SS j5       rS	 rS
 r	S r
S rS rSS jrS r/ SQ4S jrSrg)ÚPdfPagesiX
  aý  
A multi-page PDF file.

Examples
--------
>>> import matplotlib.pyplot as plt
>>> # Initialize:
>>> with PdfPages('foo.pdf') as pdf:
...     # As many times as you like, create a figure fig and save it:
...     fig = plt.figure()
...     pdf.savefig(fig)
...     # When no figure is specified the current figure is saved
...     pdf.savefig()

Notes
-----
In reality `PdfPages` is a thin wrapper around `PdfFile`, in order to avoid
confusion when using `~.pyplot.savefig` and forgetting the format argument.
r“  Ú
keep_emptyzThis parameter does nothing.)ÚaddendumNc                 ó*   • Xl         X0l        SU l        g)a  
Create a new PdfPages object.

Parameters
----------
filename : str or path-like or file-like
    Plots using `PdfPages.savefig` will be written to a file at this location.
    The file is opened when a figure is saved for the first time (overwriting
    any older file with the same name).

metadata : dict, optional
    Information dictionary object (see PDF reference section 10.2.1
    'Document Information Dictionary'), e.g.:
    ``{'Creator': 'My software', 'Author': 'Me', 'Title': 'Awesome'}``.

    The standard keys are 'Title', 'Author', 'Subject', 'Keywords',
    'Creator', 'Producer', 'CreationDate', 'ModDate', and
    'Trapped'. Values have been predefined for 'Creator', 'Producer'
    and 'CreationDate'. They can be removed by setting them to `None`.
N)Ú	_filenameÚ	_metadataÚ_file)rî   r
  r^  rf   s       r4   rï   ÚPdfPages.__init__m
  s   € ð. "ŒØ!ŒØˆ�
r6   c                 ó   • U $ r>   r�   rò   s    r4   Ú	__enter__ÚPdfPages.__enter__ˆ
  s   € Øˆr6   c                 ó$   • U R                  5         g r>   )ra  )rî   Úexc_typeÚexc_valÚexc_tbs       r4   Ú__exit__ÚPdfPages.__exit__‹
  s   € Ø�
‰
�r6   c                 óz   • U R                   c#  [        U R                  U R                  S9U l         U R                   $ )N©rf   )rc  r¾  ra  rb  rò   s    r4   Ú_ensure_fileÚPdfPages._ensure_fileŽ
  s,   € Ø�:‰:ÑÜ  §¡¸$¿.¹.ÑIˆDŒJØ�z‰zÐr6   c                 ó–   • U R                   b<  U R                   R                  5         U R                   R                  5         SU l         gg)zG
Finalize this object, making the underlying file a complete
PDF file.
N)rc  r^  ra  rò   s    r4   ra  ÚPdfPages.close“
  s:   € ð
 �:‰:Ñ!Ø�J‰J×ÑÔ!Ø�J‰J×ÑÔØˆD�Jð "r6   c                 ó6   • U R                  5       R                  $ )zy
Return a modifiable information dictionary object
(see PDF reference section 10.2.1 'Document Information
Dictionary').
)rp  ró  rò   s    r4   ÚinfodictÚPdfPages.infodict�
  s   € ð × Ñ Ó"×+Ñ+Ð+r6   c                 ó  • [        U[        5      (       dV  Uc  [        R                  " 5       nO[        R                  " U5      nUc  [        SU 35      eUR                  R                  nUR                  " U 4SSS.UD6  g)zý
Save a `.Figure` to this file as a new page.

Any other keyword arguments are passed to `~.Figure.savefig`.

Parameters
----------
figure : `.Figure` or int, default: the active figure
    The figure, or index of the figure, that is saved to the file.
Nz
No figure rÉ  )r�  re   )	r?   r   r   Ú
get_activeÚget_fig_managerrÌ   ÚcanvasÚfigureÚsavefig)rî   r{  ÚkwargsÚmanagers       r4   r|  ÚPdfPages.savefig¥
  sp   € ô ˜&¤&×)Ñ)Ø‰~ÜŸ.š.Ó*‘ä×-Ò-¨fÓ5�Ø‰Ü  :¨f¨XÐ!6Ó7Ð7Ø—^‘^×*Ñ*ˆFà�Š�tÐC E°5ÑC¸FÓCr6   c                 óH   • [        U R                  5       R                  5      $ )z=Return the current number of pages in the multipage pdf file.)r)   rp  rì  rò   s    r4   Úget_pagecountÚPdfPages.get_pagecount»
  s   € ä�4×$Ñ$Ó&×/Ñ/Ó0Ð0r6   r&  c                 óB   • U R                  5       R                  X5        g)zÏ
Add a new text note to the page to be saved next. The optional
positionRect specifies the position of the new note on the
page. It is outside the page per default to make sure it is
invisible on printouts.
N)rp  r-  )rî   r*  r+  s      r4   Úattach_noteÚPdfPages.attach_note¿
  s   € ð 	×ÑÓ×'Ñ'¨Õ;r6   )rc  ra  rb  r”  r>   )rý   rþ   rÿ   r   r  r	   Údelete_parameterrï   rf  rl  rp  ra  ru  r|  r�  r„  r  r�   r6   r4   r]  r]  X
  s^   † ñð( 
×Ò˜6 <Ø$BñDóóDðò2òòò
ò,ôDò,1ò .@÷ <r6   r]  c                   óJ   ^ • \ rS rSrSrSS0rS rSSS.S jrU 4S	 jrS
r	U =r
$ )ÚFigureCanvasPdfiÉ
  r  rÉ  zPortable Document Formatc                 ó   • g)NrÉ  r�   rò   s    r4   Úget_default_filetypeÚ$FigureCanvasPdf.get_default_filetypeÏ
  s   € Ør6   N)Úbbox_inches_restorerf   c                óÐ  • U R                   R                  nSU R                   l        U R                   R                  5       u  pV[        U[        5      (       a  UR                  5       nO	[        XS9n UR                  XV5        [        U R                   XVU[        XtXe5      US9nU R                   R                  U5        UR                  5         [        U[        5      (       d  UR                  5         [        U[        5      (       a  UR                  5         g UR                  5         g ! [        U[        5      (       a  UR                  5         f UR                  5         f = f)Nr  ro  )rŒ  )r{  ÚdpiÚget_size_inchesr?   r]  rp  r¾  r$  r   ry  Údrawr^  r  ra  )	rî   r
  rŒ  rf   rŽ  r€   r�   rû   Úrenderers	            r4   Ú	print_pdfÚFigureCanvasPdf.print_pdfÒ
  s  € ð �k‰k�o‰oˆØˆ�‰ŒØŸ™×3Ñ3Ó5‰ˆÜ�h¤×)Ñ)Ø×(Ñ(Ó*‰Dä˜8Ñ7ˆDð	Ø�L‰L˜Ô'Ü(Ø—‘˜U¨CÜ˜D vÓ5Ø$7ñ9ˆHð �K‰K×Ñ˜XÔ&Ø×ÑÔÜ˜h¬×1Ñ1Ø—‘”ä˜(¤H×-Ñ-Ø—‘Õ à—
‘
•øô ˜(¤H×-Ñ-Ø—‘Õ à—
‘
•ús   Á4BD- Ä-8E%c                 óT   >• U R                   R                  5         [        TU ]  5       $ r>   )r{  Údraw_without_renderingrß  r�  )rî   r  s    €r4   r�  ÚFigureCanvasPdf.drawì
  s   ø€ Ø�‰×*Ñ*Ô,Ü‰w‰|‹~Ðr6   r�   )rý   rþ   rÿ   r   Ú	fixed_dpiÚ	filetypesrŠ  r’  r�  r  rF  rG  s   @r4   rˆ  rˆ  É
  s0   ø† ð €IØÐ2Ð3€Iòð '+°Tõ÷4ó r6   rˆ  c                   ó   • \ rS rSr\rSrg)Ú_BackendPdfiô
  r�   N)rý   rþ   rÿ   r   rˆ  ÚFigureCanvasr  r�   r6   r4   rš  rš  ô
  s   † à"ƒLr6   rš  )éK   )r   )_r  rÒ   r   r   Úenumr   Ú	functoolsr   Úior   r�   Úloggingr{   rX   r1  rÜ  r<  rs   r’  r  r~  ÚnumpyrÉ   ÚPILr   Ú
matplotlibr_   r	   r
   r   r   r   Úmatplotlib._pylab_helpersr   Úmatplotlib.backend_basesr   r   r   r   r   Ú!matplotlib.backends.backend_mixedr   Úmatplotlib.figurer   Úmatplotlib.font_managerr   r   rw  Úmatplotlib._afmr   Úmatplotlib.ft2fontr   r   r   r   r   Úmatplotlib.transformsr   r   Úmatplotlib.pathr    Úmatplotlib.datesr!   r"   r*  r$   Ú	getLoggerrý   r}  r5   rm   ry   rŠ   r¦   r¸   r@   Ú	maketransr×   r¿   rç   ré   rM   r%  r-  ro  r¼  r¾  ÚRendererPDFPSBasery  r  r]  rˆ  ÚFigureManagerPdfÚexportrš  r�   r6   r4   Ú<module>r³     s¤  ðñó Ý Ý Ý Ý $Ý Û Û Û Û 	Û Û Û 
Û Û Û Û ã Ý ã ß FÕ FÝ )÷õ õ @Ý $ß IÝ ß QÕ Qß 4Ý  Ý  Ý Ý à×Ò˜Ó"€ôdò,Tònô0,ô"*ô0ð4 �}‰}Ø
�u 5°¸UñDó E€òF#òR ÷ñ ð. ÷ ð  ó ð ÷Bñ ôA#ˆô A#÷HZ$ñ Z$òz+÷\DCñ DCôN(m-�/×3Ñ3ô m-ô`JÐ,ô J÷Zn<ñ n<ôb%Ð&ô %ðP %Ð ð 
‡�ô#�(ó #ó ñ#r6   