Ë
    µ2Úi$D  ã                   ó¸  — d Z ddlZddlZddlZddlZ	 ddlZej                  dk  r edej                  › d�«      ‚	 ddlmZmZmZ dd	lmZmZmZmZmZ dd
lmZ ddlmZ ddlmZ dd„Zd„ Z G d„ de«      Z G d„ de«      Z G d„ d«      Z G d„ de«      Z ejB                   G d„ de«      «       Z"y# e$ r 	 ddl	Zn# e$ rZ
 ed«      e
‚dZ
[
ww xY wY Œšw xY w)z�
A Cairo backend for Matplotlib
==============================
:Author: Steve Chaplin and others

This backend depends on cairocffi or pycairo.
é    N)é   é   r   z/Cairo backend requires cairo>=1.14.0, but only z is availablezEcairo backend requires that pycairo>=1.14.0 or cairocffi is installedé   )Ú_apiÚcbookÚfont_manager)Ú_BackendÚFigureCanvasBaseÚFigureManagerBaseÚGraphicsContextBaseÚRendererBase)ÚttfFontProperty)ÚPath)ÚAffine2Dc                 ó8  — |j                  |d|¬«      D �]  \  }}|t        j                  k(  r | j                  |Ž  Œ*|t        j                  k(  r| j                  «        ŒN|t        j                  k(  r | j                  |Ž  Œq|t        j                  k(  r\t        j                  | j                  «       «      }|d d }|dd  } | j                  g |dz  |dz  dz  z   ¢|dz  dz  |dz  z   ¢|¢­Ž  Œà|t        j                  k(  sŒô | j                  |Ž  �Œ y )NT)Úremove_nansÚclipr   éþÿÿÿé   )Úiter_segmentsr   ÚMOVETOÚmove_toÚ	CLOSEPOLYÚ
close_pathÚLINETOÚline_toÚCURVE3ÚnpÚasarrayÚget_current_pointÚcurve_toÚCURVE4)	ÚctxÚpathÚ	transformr   ÚpointsÚcodeÚcurÚaÚbs	            úX/var/www/html/acx/venv/lib/python3.12/site-packages/matplotlib/backends/backend_cairo.pyÚ_append_pathr,   %   s  € Ø×*Ñ*Ø 4¨dð +ó 4ó "‰ˆ�à”4—;‘;ÒØˆC�K‰K˜Ò Ø”T—^‘^Ò#Ø�N‰NÕØ”T—[‘[Ò ØˆC�K‰K˜Ò Ø”T—[‘[Ò Ü—*‘*˜S×2Ñ2Ó4Ó5ˆCØ�r˜�
ˆAØ�r�s�ˆAØˆC�L‰LÐJ˜3 ™7 Q¨¡U¨Q¡YÑ.ÐJ°1°q±5¸1±9¸qÀ1¹uÑ3DÐJÈÔJØ”T—[‘[Ó ØˆC�L‰L˜&Ó!ñ"ó    c                 ó  ‡ — ˆ fd„} |d«      }t        t        d |d«      j                  «       › �«      } |d«      }t        j                  j                  ||«      dk  rt        j                  nt        j                  }|||fS )z{
    Convert a `.FontProperties` or a `.FontEntry` to arguments that can be
    passed to `.Context.select_font_face`.
    c                 ód   •— 	  t        ‰d| › �«      «       S # t        $ r t        ‰| «      cY S w xY w)NÚget_)ÚgetattrÚAttributeError)ÚfieldÚprops    €r+   Úattrz-_cairo_font_args_from_font_prop.<locals>.attr<   s<   ø€ ð	(Ø0”7˜4 4¨ w Ó0Ó2Ð2øÜò 	(Ü˜4 Ó'Ò'ð	(ús   ƒ —/®/ÚnameÚFONT_SLANT_ÚstyleÚweighti&  )r1   ÚcairoÚupperr   Úweight_dictÚgetÚFONT_WEIGHT_NORMALÚFONT_WEIGHT_BOLD)r4   r5   r6   Úslantr9   s   `    r+   Ú_cairo_font_args_from_font_proprA   7   s€   ø€ ô
(ñ �‹<€DÜ”E˜[©¨g«×)<Ñ)<Ó)>Ð(?Ð@ÓA€EÙ�(‹^€Fä×)Ñ)×-Ñ-¨f°fÓ=ÀÒCô ×&Ò&ä×)Ñ)ð ð �˜ÐÐr-   c                   ól   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zdd„Z	 dd„Zd„ Zdd„Z	d„ Z
d	„ Zˆ fd
„Zd„ Zd„ Zˆ xZS )ÚRendererCairoc                 óè   •— || _         t        | ¬«      | _        d | _        d | _        t        j                  t        j                  t
        j                  dd«      «      | _	        t        ‰| �-  «        y )N)Úrendererr   )ÚdpiÚGraphicsContextCairoÚgcÚwidthÚheightr:   ÚContextÚImageSurfaceÚFORMAT_ARGB32Útext_ctxÚsuperÚ__init__)ÚselfrF   Ú	__class__s     €r+   rP   zRendererCairo.__init__L   sW   ø€ ØˆŒÜ&°Ô5ˆŒØˆŒ
ØˆŒÜŸ™Ü×Ñœe×1Ñ1°1°aÓ8ó:ˆŒä‰ÑÕr-   c                 óè  — |j                  «       }t        |d«      r-t        |d«      r!|j                  «       |j                  «       f}n‰t        |d«      r)|j	                  «       }|j
                  |j                  f}nT|j                  «        |j                  «        |j                  «       ^}}|rt        d«      ‚|^}}}|j                  «        || j                  _        |\  | _        | _        y )NÚ	get_widthÚ
get_heightÚget_extentszCannot infer surface size)Ú
get_targetÚhasattrrT   rU   rV   rI   rJ   ÚsaveÚ
reset_clipÚcopy_clip_rectangle_listÚ	TypeErrorÚrestorerH   r#   )rQ   r#   ÚsurfaceÚsizeÚextÚrectÚrestÚ_s           r+   Úset_contextzRendererCairo.set_contextU   sÈ   € Ø—.‘.Ó"ˆÜ�7˜KÔ(¬W°W¸lÔ-KØ×$Ñ$Ó&¨×(:Ñ(:Ó(<Ð<‰DÜ�W˜mÔ,Ø×%Ñ%Ó'ˆCØ—9‘9˜cŸj™jÐ(‰Dà�H‰HŒJØ�N‰NÔØ×6Ñ6Ó8ˆKˆD�4ÙÜÐ ;Ó<Ð<ØˆKˆAˆq�4Ø�K‰KŒMØˆ�‰ŒØ"&ÑˆŒ
�D•Kr-   c                 ó$  — |�~|j                  «        t        |«      dk(  s|r|j                  |d   |d   |d   |«       n |j                  |d   |d   |d   |d   «       |j                  «        |j	                  «        |j                  «        y )Nr   r   r   r   )rY   ÚlenÚset_source_rgbaÚfill_preserver]   Ústroke)rQ   r#   Úfill_cÚalphaÚalpha_overridess        r+   Ú_fill_and_strokezRendererCairo._fill_and_strokeg   s�   € ØÐØ�H‰HŒJÜ�6‹{˜aÒ¡?Ø×#Ñ# F¨1¡I¨v°a©y¸&À¹)ÀUÕKà×#Ñ# F¨1¡I¨v°a©y¸&À¹)ÀVÈAÁYÔOØ×ÑÔØ�K‰KŒMØ�
‰
�r-   c                 ón  — |j                   }|€ |j                  «       €|j                  «       nd }|t        «       j	                  dd«      j                  d| j                  «      z   }|j                  «        t        ||||«       | j                  |||j                  «       |j                  «       «       y ©Nr   éÿÿÿÿr   )r#   Ú	get_hatchÚclip_extentsr   ÚscaleÚ	translaterJ   Únew_pathr,   rm   Ú	get_alphaÚget_forced_alpha)rQ   rH   r$   r%   ÚrgbFacer#   r   s          r+   Ú	draw_pathzRendererCairo.draw_pathr   s¡   € à�f‰fˆð �? r§|¡|£~Ð'=ð × Ñ Ô"àð 	ð Ü“z×'Ñ'¨¨2Ó.×8Ñ8¸¸D¿K¹KÓHñIˆ	à�‰ŒÜ�S˜$ 	¨4Ô0Ø×ÑØ�˜"Ÿ,™,›.¨"×*=Ñ*=Ó*?õ	Ar-   c           	      ór  — |j                   }|j                  «        t        |||t        «       j	                  dd«      z   «       |j                  «       }|j                  «       \  }}	}
}|dk(  r|	dk(  r|
dk(  r
|dk(  rd}d }nd}|t        «       j	                  dd«      j                  d| j                  «      z   }|j                  «        t        |j                  |d¬«      «      D ]š  \  }\  }}t        |«      sŒ|dd  \  }}|j                  «        |j                  ||«       |j                  |«       |j                  «        |s	|dz  dk(  sŒk| j                  |||j!                  «       |j#                  «       «       Œœ |s1| j                  |||j!                  «       |j#                  «       «       y y )	Nr   rp   r   FT)Úsimplifyr   iè  )r#   ru   r,   r   rs   Úcopy_path_flatÚfill_extentsrt   rJ   Ú	enumerater   rf   rY   Úappend_pathr]   rm   rv   rw   )rQ   rH   Úmarker_pathÚmarker_transr$   r%   rx   r#   Úx1Úy1Úx2Úy2ÚfilledÚiÚverticesÚcodesÚxÚys                     r+   Údraw_markerszRendererCairo.draw_markers€   s›  € ð �f‰fˆØ�‰Œä�S˜+ |´h³j×6FÑ6FÀqÈ"Ó6MÑ'MÔNØ×(Ñ(Ó*ˆð ×)Ñ)Ó+‰ˆˆB��BØ�Š7�r˜Q’w 2¨¢7¨r°QªwØˆFà‰GàˆFàÜ“z×'Ñ'¨¨2Ó.×8Ñ8¸¸D¿K¹KÓHñIˆ	ð 	�‰ŒÜ$-Ø×"Ñ" 9°uÐ"Ó=ó%?ò 	MÑ ˆAÑ �˜%ä�8�}Ø  �}‘��1Ø—‘”
ð —‘˜a Ô#Ø—‘ Ô,à—‘”ñ ˜Q ™X¨›]Ø×)Ñ)Ø˜W b§l¡l£n°b×6IÑ6IÓ6KõMð#	Mñ* Ø×!Ñ!Ø�W˜bŸl™l›n¨b×.AÑ.AÓ.CõEð r-   c                 ó   — t        j                  |d d d…   «      }t        j                  j	                  |j                  «       j                  t        j                  |j                  d   |j                  d   |j                  d   dz  «      }|j                  }| j                  |z
  |j                  d   z
  }|j                  «        |j                  |t        |«      t        |«      «       |j                  «        |j                  «        y )Nrp   r   r   é   )r   Ú._unmultiplied_rgba8888_to_premultiplied_argb32r:   rL   Úcreate_for_dataÚravelÚdatarM   Úshaper#   rJ   rY   Úset_source_surfaceÚfloatÚpaintr]   )rQ   rH   rŠ   r‹   Úimr^   r#   s          r+   Ú
draw_imagezRendererCairo.draw_image°   sÂ   € Ü×AÑAÀ"ÁTÀrÀTÁ(ÓKˆÜ×$Ñ$×4Ñ4Ø�H‰H‹J�O‰OœU×0Ñ0Ø�H‰H�Q‰K˜Ÿ™ !™ b§h¡h¨q¡k°A¡oó7ˆð �f‰fˆØ�K‰K˜!‰O˜bŸh™h q™kÑ)ˆà�‰Œ
Ø×Ñ˜w¬¨a«´%¸³(Ô;Ø�	‰	ŒØ�‰�r-   c	                 óV  — |r| j                  ||||||«       y |j                  }	|	j                  «        |	j                  ||«       |	j	                  «         |	j
                  t        |«      Ž  |	j                  | j                  |j                  «       «      «       t        j                  «       }
|
j                  |j                  «       «       |	j                  |
«       |r%|	j                  t!        j"                  | «      «       |	j%                  |«       |	j'                  «        y ©N)Ú_draw_mathtextr#   ru   r   rY   Úselect_font_facerA   Úset_font_sizeÚpoints_to_pixelsÚget_size_in_pointsr:   ÚFontOptionsÚset_antialiasÚget_antialiasedÚset_font_optionsÚrotater   Údeg2radÚ	show_textr]   )rQ   rH   rŠ   r‹   Úsr4   ÚangleÚismathÚmtextr#   Úoptss              r+   Ú	draw_textzRendererCairo.draw_text½   sä   € ñ
 Ø×Ñ  A q¨!¨T°5Õ9ð —&‘&ˆCØ�L‰LŒNØ�K‰K˜˜1Ôà�H‰HŒJØ ˆC× Ñ Ô"AÀ$Ó"GÑHØ×Ñ˜d×3Ñ3°D×4KÑ4KÓ4MÓNÔOÜ×$Ñ$Ó&ˆDØ×Ñ˜r×1Ñ1Ó3Ô4Ø× Ñ  Ô&ÙØ—
‘
œ2Ÿ:™: u fÓ-Ô.Ø�M‰M˜!ÔØ�K‰K�Mr-   c                 óü  — |j                   }| j                  j                  j                  || j                  |«      \  }}	}
}}|j                  «        |j                  ||«       |r%|j                  t        j                  | «      «       |D ]†  \  }}}}}|j                  «        |j                  || «        |j                  t        t        |«      «      Ž  |j                  | j!                  |«      «       |j#                  t%        |«      «       Œˆ |D ]P  \  }}}}|j                  «        |j'                  || || «       |j)                  ddd«       |j+                  «        ŒR |j-                  «        y ©Nr   )r#   Ú
_text2pathÚmathtext_parserÚparserF   rY   rt   r¤   r   r¥   ru   r   rœ   rA   r   r�   rž   r¦   ÚchrÚ	rectangleÚset_source_rgbrh   r]   )rQ   rH   rŠ   r‹   r§   r4   r¨   r#   rI   rJ   ÚdescentÚglyphsÚrectsÚfontÚfontsizeÚidxÚoxÚoyÚwÚhs                       r+   r›   zRendererCairo._draw_mathtextÕ   sH  € Ø�f‰fˆà�O‰O×+Ñ+×1Ñ1°!°T·X±X¸tÓDñ 	.ˆˆv�w ¨ð 	�‰Œ
Ø�‰�a˜ÔÙØ�J‰J”r—z‘z 5 &Ó)Ô*à+1ò 	$Ñ'ˆD�(˜C  RØ�L‰LŒNØ�K‰K˜˜R˜CÔ Ø ˆC× Ñ Ü0´ÀÓ1FÓGñIà×Ñ˜d×3Ñ3°HÓ=Ô>Ø�M‰Mœ#˜c›(Õ#ð	$ð "ò 	 ‰LˆB��A�qØ�L‰LŒNØ�M‰M˜"˜r˜c 1 q bÔ)Ø×Ñ˜q ! QÔ'Ø×ÑÕð		 ð 	�‰�r-   c                 ó2   — | j                   | j                  fS rš   )rI   rJ   ©rQ   s    r+   Úget_canvas_width_heightz%RendererCairo.get_canvas_width_heightï   s   € à�z‰z˜4Ÿ;™;Ð&Ð&r-   c                 óÌ  •— |dk(  rt         ‰| �  |||«      S |r:| j                  j                  j	                  || j
                  |«      ^}}}}|||fS | j                  }|j                  «         |j                  t        |«      Ž  |j                  | j                  |j                  «       «      «       |j                  |«      dd \  }	}
}|j                  «        |
|||	z   fS )NÚTeXr   rŽ   )rO   Úget_text_width_height_descentr¯   r°   r±   rF   rN   rY   rœ   rA   r�   rž   rŸ   Útext_extentsr]   )rQ   r§   r4   r©   rI   rJ   rµ   rc   r#   Ú	y_bearingr½   r¾   rR   s               €r+   rÄ   z+RendererCairo.get_text_width_height_descentó   sà   ø€ ð �UŠ?Ü‘7Ñ8¸¸DÀ&ÓIÐIáà—‘×/Ñ/×5Ñ5°a¸¿¹À4ÓHð 'ˆE�6˜7 Qà˜& 'Ð)Ð)à�m‰mˆð 	�‰Œ
Øˆ×ÑÔ=¸dÓCÑDØ×Ñ˜$×/Ñ/°×0GÑ0GÓ0IÓJÔKà×*Ñ*¨1Ó-¨a°Ð2‰ˆ	�1�aØ�‰Œà�!�Q˜‘]Ð"Ð"r-   c                 ó¦   — | j                   j                  j                  «        d| j                   _        d| j                   _        | j                   S )Nr   F)rH   r#   rY   Ú_alphaÚ_forced_alpharÀ   s    r+   Únew_gczRendererCairo.new_gc  s6   € à�‰�‰×ÑÔØˆ�‰ŒØ %ˆ�‰ÔØ�w‰wˆr-   c                 ó&   — |dz  | j                   z  S )NéH   )rF   )rQ   r&   s     r+   rž   zRendererCairo.points_to_pixels  s   € à˜‰{˜TŸX™XÑ%Ð%r-   rš   )FN)Ú__name__Ú
__module__Ú__qualname__rP   rd   rm   ry   rŒ   r˜   r¬   r›   rÁ   rÄ   rÊ   rž   Ú__classcell__©rR   s   @r+   rC   rC   K   sG   ø„ ôò'ò$	óAð "ó.Eò`óò0ò4'ô#ò0ö&r-   rC   c                   ó   ‡ — e Zd Zej                  ej
                  ej                  dœZej                  ej                  ej                  dœZˆ fd„Zd„ Zˆ fd„Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zdˆ fd„	Zd„ Zd„ Zd„ Zˆ xZS )rG   )ÚbevelÚmiterÚround)ÚbuttÚ
projectingrÕ   c                 ó0   •— t         ‰| �  «        || _        y rš   )rO   rP   rE   )rQ   rE   rR   s     €r+   rP   zGraphicsContextCairo.__init__$  s   ø€ Ü‰ÑÔØ ˆ�r-   c                 ó8   — | j                   j                  «        y rš   )r#   r]   rÀ   s    r+   r]   zGraphicsContextCairo.restore(  s   € Ø�‰×ÑÕr-   c                 ó   •— t         ‰| �  |«       | j                  «       }| j                  }| j	                  «       r(| j
                  j                  |d   |d   |d   |«       y | j
                  j                  |d   |d   |d   |d   «       y )Nr   r   r   r   )rO   Ú	set_alpharv   Ú_rgbrw   r#   rg   )rQ   rk   rÈ   ÚrgbrR   s       €r+   rÛ   zGraphicsContextCairo.set_alpha+  s}   ø€ Ü‰Ñ˜%Ô Ø—‘Ó!ˆØ�i‰iˆØ× Ñ Ô"Ø�H‰H×$Ñ$ S¨¡V¨S°©V°S¸±V¸VÕDà�H‰H×$Ñ$ S¨¡V¨S°©V°S¸±V¸SÀ¹VÕDr-   c                 ó„   — | j                   j                  |rt        j                  «       y t        j                  «       y rš   )r#   r¡   r:   ÚANTIALIAS_DEFAULTÚANTIALIAS_NONE)rQ   r*   s     r+   Úset_antialiasedz$GraphicsContextCairo.set_antialiased4  s/   € Ø�‰×ÑÙ'(ŒE×#Ñ#õ	DÜ.3×.BÑ.Bõ	Dr-   c                 ó6   — | j                   j                  «       S rš   )r#   Úget_antialiasrÀ   s    r+   r¢   z$GraphicsContextCairo.get_antialiased8  s   € Ø�x‰x×%Ñ%Ó'Ð'r-   c                 ó†   — | j                   j                  t        j                  | j                  |¬«      «       || _        y )N)Úcapstyle)r#   Úset_line_capr   Úcheck_getitemÚ_capdÚ	_capstyle)rQ   Úcss     r+   Úset_capstylez!GraphicsContextCairo.set_capstyle;  s,   € Ø�‰×Ñœd×0Ñ0°·±ÀbÔIÔJØˆ�r-   c                 ó  — |sy t        j                  |j                  «      \  }}}}| j                  }|j	                  «        |j                  || j                  j                  |z
  |z
  ||«       |j                  «        y rš   )	r   rÕ   Úboundsr#   ru   r³   rE   rJ   r   )rQ   r³   rŠ   r‹   r½   r¾   r#   s          r+   Úset_clip_rectanglez'GraphicsContextCairo.set_clip_rectangle?  se   € ÙØÜ—X‘X˜i×.Ñ.Ó/‰
ˆˆ1ˆa�Ø�h‰hˆØ�‰ŒØ�‰�a˜Ÿ™×-Ñ-°Ñ1°AÑ5°q¸!Ô<Ø�‰�
r-   c                 ó$  — |sy |j                  «       \  }}| j                  }|j                  «        |t        «       j	                  dd«      j                  d| j                  j                  «      z   }t        |||«       |j                  «        y ro   )
Úget_transformed_path_and_affiner#   ru   r   rs   rt   rE   rJ   r,   r   )rQ   r$   ÚtpathÚaffiner#   s        r+   Úset_clip_pathz"GraphicsContextCairo.set_clip_pathH  su   € ÙØØ×<Ñ<Ó>‰ˆˆvØ�h‰hˆØ�‰ŒØÜ“J×$Ñ$ Q¨Ó+×5Ñ5°a¸¿¹×9MÑ9MÓNñOˆä�S˜% Ô(Ø�‰�
r-   c           	      óö   — ||f| _         |€| j                  j                  g d«       y | j                  j                  t        | j                  j                  t        j                  |«      «      «      |«       y r®   )Ú_dashesr#   Úset_dashÚlistrE   rž   r   r   )rQ   ÚoffsetÚdashess      r+   Ú
set_dasheszGraphicsContextCairo.set_dashesS  s[   € Ø˜v�~ˆŒØˆ>Ø�H‰H×Ñ˜b !Õ$à�H‰H×ÑÜ�T—]‘]×3Ñ3´B·J±J¸vÓ4FÓGÓHØõr-   c                 óä   •— t         ‰| �  ||«       t        | j                  «      dk(  r$ | j                  j
                  | j                  Ž  y  | j                  j                  | j                  Ž  y ©Nr   )rO   Úset_foregroundrf   rÜ   r#   r´   rg   )rQ   ÚfgÚisRGBArR   s      €r+   rý   z#GraphicsContextCairo.set_foreground\  sR   ø€ Ü‰Ñ˜r 6Ô*Üˆt�y‰y‹>˜QÒØ#ˆD�H‰H×#Ñ# T§Y¡YÒ/à$ˆD�H‰H×$Ñ$ d§i¡iÒ0r-   c                 óX   — | j                   j                  «       j                  «       d d S rü   )r#   Ú
get_sourceÚget_rgbarÀ   s    r+   Úget_rgbzGraphicsContextCairo.get_rgbc  s%   € Ø�x‰x×"Ñ"Ó$×-Ñ-Ó/°°Ð3Ð3r-   c                 ó†   — | j                   j                  t        j                  | j                  |¬«      «       || _        y )N)Ú	joinstyle)r#   Úset_line_joinr   rç   Ú_joindÚ
_joinstyle)rQ   Újss     r+   Úset_joinstylez"GraphicsContextCairo.set_joinstylef  s,   € Ø�‰×Ñœt×1Ñ1°$·+±+ÈÔLÔMØˆ�r-   c                 óŒ   — t        |«      | _        | j                  j                  | j                  j                  |«      «       y rš   )r•   Ú
_linewidthr#   Úset_line_widthrE   rž   )rQ   r½   s     r+   Úset_linewidthz"GraphicsContextCairo.set_linewidthj  s.   € Ü ›(ˆŒØ�‰×Ñ §¡× >Ñ >¸qÓ AÕBr-   rš   )rÍ   rÎ   rÏ   r:   ÚLINE_JOIN_BEVELÚLINE_JOIN_MITERÚLINE_JOIN_ROUNDr  ÚLINE_CAP_BUTTÚLINE_CAP_SQUAREÚLINE_CAP_ROUNDrè   rP   r]   rÛ   rá   r¢   rë   rî   ró   rú   rý   r  r
  r  rÐ   rÑ   s   @r+   rG   rG     s�   ø„ à×'Ñ'Ø×'Ñ'Ø×'Ñ'ñ€Fð ×*Ñ*Ø×,Ñ,Ø×+Ñ+ñ€Eô!òôEòDò(òòò	òõ1ò4òöCr-   rG   c                   ó   — e Zd Zd„ Zy)Ú_CairoRegionc                 ó    — || _         || _        y rš   )Ú_slicesÚ_data)rQ   Úslicesr’   s      r+   rP   z_CairoRegion.__init__p  s   € ØˆŒØˆ�
r-   N)rÍ   rÎ   rÏ   rP   © r-   r+   r  r  o  s   „ ór-   r  c                   óè   — e Zd Zed„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Z	e	Z
d„ Zdd	œd
„Z ej                  ed«      Z ej                  ed«      Z ej                  ed«      Z ej                  ed«      Zy)ÚFigureCanvasCairoc                 óz   — t        | d«      s$t        | j                  j                  «      | _        | j                  S )NÚ_cached_renderer)rX   rC   ÚfigurerF   r  rÀ   s    r+   Ú	_rendererzFigureCanvasCairo._rendererv  s0   € ô �tÐ/Ô0Ü$1°$·+±+·/±/Ó$BˆDÔ!Ø×$Ñ$Ð$r-   c                 ó   — | j                   S rš   )r!  rÀ   s    r+   Úget_rendererzFigureCanvasCairo.get_renderer€  s   € Ø�~‰~Ðr-   c           	      ó¾  — | j                   j                  j                  j                  «       }t	        |t
        j                  «      st        d«      ‚|j                  «       }|j                  «       }t        j                  |j                  «      }t        j                  |j                  «      }t        j                  ||j                  z
  «      }t        j                  ||j                   z
  «      }d|k  rA||k  r<|j                  |j                  k  r#d|k  r||k  r|j                   |j                  k  st#        d«      ‚t%        ||t'        ||z
  d«      z   «      t%        ||t'        ||z
  d«      z   «      f}	t)        j*                  |j-                  «       t(        j.                  «      j1                  ||f«      |	   j3                  «       }
t5        |	|
«      S )Nz;copy_from_bbox only works when rendering to an ImageSurfacer   zInvalid bbox)r!  rH   r#   rW   Ú
isinstancer:   rL   ÚRuntimeErrorrT   rU   ÚmathÚceilÚx0Úfloorr‚   rƒ   Úy0Ú
ValueErrorÚsliceÚmaxr   Ú
frombufferÚget_dataÚuint32ÚreshapeÚcopyr  )rQ   Úbboxr^   ÚswÚshr)  r‚   r+  rƒ   Úslsr’   s              r+   Úcopy_from_bboxz FigureCanvasCairo.copy_from_bboxƒ  sp  € Ø—.‘.×#Ñ#×'Ñ'×2Ñ2Ó4ˆÜ˜'¤5×#5Ñ#5Ô6ÜØMóOð Oà×ÑÓ ˆØ×ÑÓ!ˆÜ�Y‰Y�t—w‘wÓˆÜ�Z‰Z˜Ÿ™Ó ˆÜ�Y‰Y�r˜DŸG™G‘|Ó$ˆÜ�Z‰Z˜˜TŸW™W™Ó%ˆØ�R’˜B "šH¨¯©°D·G±GÒ);Ø˜’G  b¢¨T¯W©W¸¿¹Ò-?Ü˜^Ó,Ð,Ü�B˜œS  b¡¨!›_Ñ,Ó-¬u°R¸¼cÀ"ÀrÁ'È1»oÑ9MÓ/NÐNˆÜ—‘˜g×.Ñ.Ó0´"·)±)Ó<ß‘˜"˜b˜Ó" 3ñ(ß(,©«ð 	ä˜C Ó&Ð&r-   c                 óx  — | j                   j                  j                  j                  «       }t	        |t
        j                  «      st        d«      ‚|j                  «        |j                  «       }|j                  «       }|j                  \  }}|j                  t        j                  |j                  «       t        j                   «      j#                  ||f«      ||f<   |j%                  |j&                  |j&                  |j(                  |j&                  z
  |j(                  |j&                  z
  «       y )Nz;restore_region only works when rendering to an ImageSurface)r!  rH   r#   rW   r%  r:   rL   r&  ÚflushrT   rU   r  r  r   r/  r0  r1  r2  Úmark_dirty_rectangleÚstartÚstop)rQ   Úregionr^   r5  r6  ÚslyÚslxs          r+   Úrestore_regionz FigureCanvasCairo.restore_region–  së   € Ø—.‘.×#Ñ#×'Ñ'×2Ñ2Ó4ˆÜ˜'¤5×#5Ñ#5Ô6ÜØMóOð Oà�‰ŒØ×ÑÓ ˆØ×ÑÓ!ˆØ—>‘>‰ˆˆSà)/¯©ô 
�‰�w×'Ñ'Ó)¬2¯9©9Ó	5ß
‰'�2�r�(Ó
˜C ˜Hñ
&à×$Ñ$Ø�I‰I�s—y‘y #§(¡(¨S¯Y©YÑ"6¸¿¹À3Ç9Á9Ñ8Lõ	Nr-   c                 óB   — | j                  «       j                  |«       y rš   )Ú_get_printed_image_surfaceÚwrite_to_png)rQ   Úfobjs     r+   Ú	print_pngzFigureCanvasCairo.print_png¤  s   € Ø×'Ñ'Ó)×6Ñ6°tÕ<r-   c           	      óø   — | j                  «       \  }}| j                  «       j                  «       }|j                  t	        j
                  t        j                  |«      j                  ||df«      «      «       y )NrŽ   )	Úget_width_heightrC  r0  Úwriter   Ú._premultiplied_argb32_to_unmultiplied_rgba8888r   r   r2  )rQ   rE  rI   rJ   Úbufs        r+   Ú
print_rgbazFigureCanvasCairo.print_rgba§  sa   € Ø×-Ñ-Ó/‰ˆˆvØ×-Ñ-Ó/×8Ñ8Ó:ˆØ�
‰
”5×GÑGÜ�J‰J�s‹O×#Ñ# U¨F°AÐ$6Ó7ó9õ 	:r-   c                 óf  — | j                   j                  | j                  _        | j                  «       \  }}t	        j
                  t        j                  ||«      }| j                  j                  t	        j                  |«      «       | j                   j                  | j                  «       |S rš   )
r   rF   r!  rH  r:   rL   rM   rd   rK   Údraw)rQ   rI   rJ   r^   s       r+   rC  z,FigureCanvasCairo._get_printed_image_surface¯  sx   € Ø!Ÿ[™[Ÿ_™_ˆ�‰ÔØ×-Ñ-Ó/‰ˆˆvÜ×$Ñ$¤U×%8Ñ%8¸%ÀÓHˆØ�‰×"Ñ"¤5§=¡=°Ó#9Ô:Ø�‰×Ñ˜Ÿ™Ô(Øˆr-   Úportrait)Úorientationc                óŒ  — d}|| j                   _        | j                   j                  «       \  }}||z  ||z  }}|dk(  r||}}|dk(  r3t        t        d«      st        d«      ‚t	        j                  |||«      }	nÁ|dk(  r3t        t        d«      st        d«      ‚t	        j                  |||«      }	n‰|d	v rwt        t        d
«      st        d«      ‚|dk(  r?t        |t        «      rt        j                  |d«      }nt        j                  d d|¬«      }t	        j                  |||«      }	nt        d|›�«      ‚| j                   j                  | j                  _        | j                  j                  t	        j                   |	«      «       | j                  j"                  j$                  }
|dk(  r5|
j'                  t(        j*                  dz  «       |
j-                  d| «       | j                   j/                  | j                  «       |
j1                  «        |	j3                  «        |dk(  r|j5                  «        y y )NrÌ   Ú	landscapeÚpsÚ	PSSurfacez3cairo has not been compiled with PS support enabledÚpdfÚ
PDFSurfacez4cairo has not been compiled with PDF support enabled)ÚsvgÚsvgzÚ
SVGSurfacez4cairo has not been compiled with SVG support enabledrX  Úwb)ÚfileobjzUnknown format: r   r   )r   rF   Úget_size_inchesrX   r:   r&  rT  rV  r%  ÚstrÚgzipÚGzipFilerY  r,  r!  rd   rK   rH   r#   r¤   r   Úpirt   rN  Ú	show_pageÚfinishÚclose)rQ   ÚfmtrE  rP  rF   Úw_inÚh_inÚwidth_in_pointsÚheight_in_pointsr^   r#   s              r+   Ú_savezFigureCanvasCairo._save·  sñ  € ð ˆØˆ�‰ŒØ—[‘[×0Ñ0Ó2‰
ˆˆdØ,0°3©J¸¸s¹
Ð)ˆà˜+Ò%à  /ð .ˆOð �$Š;Üœ5 +Ô.Ü"ð $5ó 6ð 6ä—o‘o d¨OÐ=MÓN‰GØ�EŠ\Üœ5 ,Ô/Ü"ð $5ó 6ð 6ä×&Ñ& t¨_Ð>NÓO‰GØ�OÑ#Üœ5 ,Ô/Ü"ð $5ó 6ð 6à�fŠ}Ü˜d¤CÔ(ÜŸ=™=¨¨tÓ4‘DäŸ=™=¨¨t¸TÔB�DÜ×&Ñ& t¨_Ð>NÓO‰GäÐ/°¨wÐ7Ó8Ð8à!Ÿ[™[Ÿ_™_ˆ�‰ÔØ�‰×"Ñ"¤5§=¡=°Ó#9Ô:Ø�n‰n×Ñ×#Ñ#ˆà˜+Ò%Ø�J‰J”r—u‘u˜q‘yÔ!Ø�M‰M˜!Ð.Ð.Ô/ð 	�‰×Ñ˜Ÿ™Ô(à�‰ŒØ�‰ÔØ�&Š=Ø�J‰J�Lð r-   rU  rS  rW  rX  N)rÍ   rÎ   rÏ   Úpropertyr!  r#  r8  rA  rF  rL  Ú	print_rawrC  ri  Ú	functoolsÚpartialmethodÚ	print_pdfÚprint_psÚ	print_svgÚ
print_svgzr  r-   r+   r  r  u  s—   „ Øñ%ó ð%òò'ò&Nò=ò:ð €Iòð /9ô 1ðf (�	×'Ñ'¨¨uÓ5€IØ&ˆy×&Ñ& u¨dÓ3€HØ'�	×'Ñ'¨¨uÓ5€IØ(�×(Ñ(¨°Ó7�Jr-   r  c                   ó,   — e Zd Zej                  ZeZeZ	y)Ú_BackendCairoN)
rÍ   rÎ   rÏ   r:   ÚversionÚbackend_versionr  ÚFigureCanvasr   ÚFigureManagerr  r-   r+   rs  rs  ð  s   „ à—m‘m€OØ$€LØ%�Mr-   rs  rš   )#Ú__doc__rl  r^  r'  Únumpyr   r:   Úversion_infoÚImportErrorÚ	cairocffiÚerrÚ r   r   r   Úmatplotlib.backend_basesr	   r
   r   r   r   Úmatplotlib.font_managerr   Úmatplotlib.pathr   Úmatplotlib.transformsr   r,   rA   rC   rG   r  r  Úexportrs  r  r-   r+   ú<module>r„     s   ðñó Û Û ã ð%ÛØ×Ñ˜JÒ&Ùð &Ø&+×&8Ñ&8Ð%9¸ðHó Ið 	Ið '÷ )Ñ (÷õ õ 4Ý  Ý *ó"ò$ô(I&�Lô I&ôXUCÐ.ô UC÷pñ ôx8Ð(ô x8ðv 
‡�ô&�Hó &ó ñ&øð{ ò %ð%Ü!øØò %Ùðóà!$ð	%ûð%úñ 	"ð%ús5   ”)B5 Â5CÂ;C Â?CÃ CÃ	CÃCÃCÃC