Ë
    ¤eh�N  ã                  ó&  — d dl mZ d dlZd dlmZ d dlmZmZmZ d dl	m
Z d dlmZ d dlZd dlmZmZ d dlmZmZ d dlmZmZ d dlmZmZ d d	lmZ erd d
lm Z  d dl!m"Z" d dl#m$Z$ d dl%m&Z& d dl'm(Z)  G d„ de«      Z* G d„ de*«      Z+ G d„ de*«      Z,y)é    )ÚannotationsN)Úpairwise)ÚTYPE_CHECKINGÚAnyÚcast)ÚFillTypeÚLineType)Úconvert_filledÚconvert_lines)Úas_fill_typeÚas_line_type)Úfilled_to_mpl_pathsÚlines_to_mpl_paths)ÚRenderer)ÚSequence)ÚAxes)ÚFigure)Ú	ArrayLikec                  ót  — e Zd ZU dZded<   ded<   ded<   	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dd	„Zdd
„Zdd„Zdd„Z	 	 	 d	 	 	 	 	 	 	 	 	 	 	 dd„Z		 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z
	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z	 	 d 	 	 	 	 	 	 	 	 	 	 	 d!d„Zd"d#d„Zd$d„Zdd„Zd%d&d„Z	 	 	 	 d'	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d(d„Zy))ÚMplRenderera£  Utility renderer using Matplotlib to render a grid of plots over the same (x, y) range.

    Args:
        nrows (int, optional): Number of rows of plots, default ``1``.
        ncols (int, optional): Number of columns of plots, default ``1``.
        figsize (tuple(float, float), optional): Figure size in inches, default ``(9, 9)``.
        show_frame (bool, optional): Whether to show frame and axes ticks, default ``True``.
        backend (str, optional): Matplotlib backend to use or ``None`` for default backend.
            Default ``None``.
        gridspec_kw (dict, optional): Gridspec keyword arguments to pass to ``plt.subplots``,
            default None.
    zSequence[Axes]Ú_axesr   Ú_figÚboolÚ_want_tightNc                ó  — |�dd l }|j                  |«       |ddddœ}|�||d<   nddi|d<   t        j                  ||fi |¤Ž\  | _        }	|	j                  «       | _        |s"| j                  D ]  }
|
j                  d	«       Œ d| _        y )
Nr   FT)ÚfigsizeÚsqueezeÚsharexÚshareyÚgridspec_kwÚaspectÚequalÚ
subplot_kwÚoff)	Ú
matplotlibÚuseÚpltÚsubplotsr   Úflattenr   Úaxisr   )ÚselfÚnrowsÚncolsr   Ú
show_frameÚbackendr    ÚmplÚkwargsÚaxesÚaxs              úY/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/contourpy/util/mpl_renderer.pyÚ__init__zMplRenderer.__init__,   s�   € ð ÐÛ$Ø�G‰G�GÔà-4ÀØ,0¸Dñ"BˆàÐ"Ø$/ˆF�=Ò!à$,¨gÐ#6ˆF�<Ñ äŸ,™, u¨eÑ>°vÑ>‰ˆŒ	�4Ø—\‘\“^ˆŒ
ÙØ—j‘jò �Ø—‘˜•ðð  ˆÕó    c                ó\   — t        | d«      r t        j                  | j                  «       y y )Nr   )Úhasattrr'   Úcloser   ©r+   s    r4   Ú__del__zMplRenderer.__del__H   s!   € Ü�4˜Ô Ü�I‰I�d—i‘iÕ ð !r6   c                óô   — | j                   D ])  }t        |dd«      sŒ|j                  d¬«       d|_        Œ+ | j                  r4t        | j                   «      dkD  r| j                  j                  «        y y y )NÚ_need_autoscaleFT)Útighté   )r   ÚgetattrÚautoscale_viewr=   r   Úlenr   Útight_layout©r+   r3   s     r4   Ú
_autoscalezMplRenderer._autoscaleL   so   € ð —*‘*ò 	+ˆBÜ�rÐ,¨eÕ4Ø×!Ñ!¨Ð!Ô-Ø%*�Õ"ð	+ð ×Ò¤ D§J¡J£°!Ò 3Ø�I‰I×"Ñ"Õ$ð !4Ðr6   c                óD   — t        |t        «      r| j                  |   }|S ©N)Ú
isinstanceÚintr   rD   s     r4   Ú_get_axzMplRenderer._get_axW   s   € Ü�bœ#ÔØ—‘˜B‘ˆBØˆ	r6   c                ó¸   — t        |«      }| j                  |«      }t        ||«      }t        j                  ||dd|¬«      }|j                  |«       d|_        y)a  Plot filled contours on a single Axes.

        Args:
            filled (sequence of arrays): Filled contour data as returned by
                :meth:`~.ContourGenerator.filled`.
            fill_type (FillType or str): Type of :meth:`~.ContourGenerator.filled` data as returned
                by :attr:`~.ContourGenerator.fill_type`, or string equivalent
            ax (int or Maplotlib Axes, optional): Which axes to plot on, default ``0``.
            color (str, optional): Color to plot with. May be a string color or the letter ``"C"``
                followed by an integer in the range ``"C0"`` to ``"C9"`` to use a color from the
                ``tab10`` colormap. Default ``"C0"``.
            alpha (float, optional): Opacity to plot with, default ``0.7``.
        Únoner   ©Ú
facecolorsÚ
edgecolorsÚlwÚalphaTN)r   rJ   r   ÚmcollectionsÚPathCollectionÚadd_collectionr=   )r+   ÚfilledÚ	fill_typer3   ÚcolorrQ   ÚpathsÚ
collections           r4   rU   zMplRenderer.filled\   sZ   € ô* ! Ó+ˆ	Ø�\‰\˜"ÓˆÜ# F¨IÓ6ˆÜ!×0Ñ0Ø˜e°¸1ÀEôKˆ
à
×Ñ˜*Ô%Ø!ˆÕr6   c                ó°  — | j                  |«      }| j                  ||«      \  }}||dœ} |j                  |||j                  |j                  fi |¤Ž |dkD  �r[d|dd…dd…f   |dd…dd…f   z   |dd…dd…f   z   |dd…dd…f   z   z  }	d|dd…dd…f   |dd…dd…f   z   |dd…dd…f   z   |dd…dd…f   z   z  }
||d<    |j                  t	        j
                  |dd…dd…f   |	|dd…dd…f   f«      j                  d«      t	        j
                  |dd…dd…f   |
|dd…dd…f   f«      j                  d«      t	        j
                  |dd…dd…f   |	|dd…dd…f   f«      j                  d«      t	        j
                  |dd…dd…f   |
|dd…dd…f   f«      j                  d«      fi |¤Ž |�|j                  ||||d	d¬
«       d|_        y)aü  Plot quad grid lines on a single Axes.

        Args:
            x (array-like of shape (ny, nx) or (nx,)): The x-coordinates of the grid points.
            y (array-like of shape (ny, nx) or (ny,)): The y-coordinates of the grid points.
            ax (int or Matplotlib Axes, optional): Which Axes to plot on, default ``0``.
            color (str, optional): Color to plot grid lines, default ``"black"``.
            alpha (float, optional): Opacity to plot lines with, default ``0.1``.
            point_color (str, optional): Color to plot grid points or ``None`` if grid points
                should not be plotted, default ``None``.
            quad_as_tri_alpha (float, optional): Opacity to plot ``quad_as_tri`` grid, default 0.

        Colors may be a string color or the letter ``"C"`` followed by an integer in the range
        ``"C0"`` to ``"C9"`` to use a color from the ``tab10`` colormap.

        Warning:
            ``quad_as_tri_alpha > 0`` plots all quads as though they are unmasked.
        )rW   rQ   r   g      Ð?Néÿÿÿÿr?   rQ   )é   r[   Úo)rW   rQ   ÚmarkerrP   T)rJ   Ú_grid_as_2dÚplotÚTÚnpÚstackÚreshaper=   )r+   ÚxÚyr3   rW   rQ   Úpoint_colorÚquad_as_tri_alphar1   ÚxmidÚymids              r4   ÚgridzMplRenderer.gridy   s.  € ð8 �\‰\˜"ÓˆØ×Ñ  1Ó%‰ˆˆ1Ø+0¸5Ñ!AˆØˆ�‰��1�a—c‘c˜1Ÿ3™3Ñ) &Ò)Ø˜qÓ à˜˜3˜B˜3   ˜8™ q¨©¨S¨b¨S¨¡zÑ1°A°c°r°c¸1¹2°g±JÑ>ÀÀ1Á2ÀqÁrÀ6ÁÑJÑKˆDØ˜˜3˜B˜3   ˜8™ q¨©¨S¨b¨S¨¡zÑ1°A°c°r°c¸1¹2°g±JÑ>ÀÀ1Á2ÀqÁrÀ6ÁÑJÑKˆDØ/ˆF�7‰OØˆB�G‰GÜ—‘˜!˜C˜R˜C  " ˜H™+ t¨Q¨q©r°1±2¨v©YÐ7Ó8×@Ñ@ÀÓIÜ—‘˜!˜C˜R˜C  " ˜H™+ t¨Q¨q©r°1±2¨v©YÐ7Ó8×@Ñ@ÀÓIÜ—‘˜!˜A™B   ˜G™* d¨A¨c¨r¨c°1±2¨g©JÐ7Ó8×@Ñ@ÀÓIÜ—‘˜!˜A™B   ˜G™* d¨A¨c¨r¨c°1±2¨g©JÐ7Ó8×@Ñ@ÀÓIñ	ð
 òð Ð"Ø�G‰G�A�q °5ÀÈˆGÔKØ!ˆÕr6   c                ó¸   — t        |«      }| j                  |«      }t        ||«      }t        j                  |d|||¬«      }|j                  |«       d|_        y)aW  Plot contour lines on a single Axes.

        Args:
            lines (sequence of arrays): Contour line data as returned by
                :meth:`~.ContourGenerator.lines`.
            line_type (LineType or str): Type of :meth:`~.ContourGenerator.lines` data as returned
                by :attr:`~.ContourGenerator.line_type`, or string equivalent.
            ax (int or Matplotlib Axes, optional): Which Axes to plot on, default ``0``.
            color (str, optional): Color to plot lines. May be a string color or the letter ``"C"``
                followed by an integer in the range ``"C0"`` to ``"C9"`` to use a color from the
                ``tab10`` colormap. Default ``"C0"``.
            alpha (float, optional): Opacity to plot lines with, default ``1.0``.
            linewidth (float, optional): Width of lines, default ``1``.
        rL   rM   TN)r   rJ   r   rR   rS   rT   r=   )	r+   ÚlinesÚ	line_typer3   rW   rQ   Ú	linewidthrX   rY   s	            r4   rm   zMplRenderer.lines¨   sZ   € ô. ! Ó+ˆ	Ø�\‰\˜"ÓˆÜ" 5¨)Ó4ˆÜ!×0Ñ0Ø˜f°¸9ÈEôSˆ
à
×Ñ˜*Ô%Ø!ˆÕr6   c                óþ   — t         j                  j                  |«      }|t         j                  j                  u ry| j	                  |«      }| j                  ||«      \  }}|j                  ||   ||   d|¬«       y)aâ  Plot masked out grid points as circles on a single Axes.

        Args:
            x (array-like of shape (ny, nx) or (nx,)): The x-coordinates of the grid points.
            y (array-like of shape (ny, nx) or (ny,)): The y-coordinates of the grid points.
            z (masked array of shape (ny, nx): z-values.
            ax (int or Matplotlib Axes, optional): Which Axes to plot on, default ``0``.
            color (str, optional): Circle color, default ``"black"``.
        Nr]   )Úc)rb   ÚmaÚgetmaskÚnomaskrJ   r_   r`   )r+   re   rf   Úzr3   rW   Úmasks          r4   rv   zMplRenderer.maskÇ   si   € ô" �u‰u�}‰}˜QÓˆØ”2—5‘5—<‘<ÑØØ�\‰\˜"ÓˆØ×Ñ  1Ó%‰ˆˆ1Ø
�‰��$‘˜˜4™ #¨ˆÕ/r6   c                ó^   — | j                  «        | j                  j                  ||¬«       y)zÞSave plots to SVG or PNG file.

        Args:
            filename (str): Filename to save to.
            transparent (bool, optional): Whether background should be transparent, default
                ``False``.
        )ÚtransparentN)rE   r   Úsavefig)r+   Úfilenamerx   s      r4   ÚsavezMplRenderer.saveß   s%   € ð 	�‰ÔØ�	‰	×Ñ˜(°ÐÕ<r6   c                óª   — | j                  «        t        j                  «       }| j                  j	                  |d¬«       |j                  d«       |S )zhSave plots to an ``io.BytesIO`` buffer.

        Return:
            BytesIO: PNG image buffer.
        Úpng)Úformatr   )rE   ÚioÚBytesIOr   ry   Úseek)r+   Úbufs     r4   Úsave_to_bufferzMplRenderer.save_to_bufferê   s@   € ð 	�‰ÔÜ�j‰j‹lˆØ�	‰	×Ñ˜# eÐÔ,Ø�‰�ŒØˆ
r6   c                óL   — | j                  «        t        j                  «        y)zMShow plots in an interactive window, in the usual Matplotlib manner.
        N)rE   r'   Úshowr:   s    r4   r…   zMplRenderer.showö   s   € ð 	�‰ÔÜ�‰�
r6   c                óŽ   — |r#| j                  |«      j                  ||¬«       y| j                  |«      j                  |«       y)a  Set the title of a single Axes.

        Args:
            title (str): Title text.
            ax (int or Matplotlib Axes, optional): Which Axes to set the title of, default ``0``.
            color (str, optional): Color to set title. May be a string color or the letter ``"C"``
                followed by an integer in the range ``"C0"`` to ``"C9"`` to use a color from the
                ``tab10`` colormap. Default is ``None`` which uses Matplotlib's default title color
                that depends on the stylesheet in use.
        )rW   N)rJ   Ú	set_title)r+   Útitler3   rW   s       r4   rˆ   zMplRenderer.titleü   s:   € ñ Ø�L‰L˜Ó×&Ñ& u°EÐ&Õ:à�L‰L˜Ó×&Ñ& uÕ-r6   c                óÔ  — | j                  |«      }| j                  ||«      \  }}t        j                  |«      }|j                  \  }}	t        |«      D ]>  }
t        |	«      D ].  }|j                  ||
|f   ||
|f   ||
|f   |› d�›dd|d¬«       Œ0 Œ@ |rÐt        |dz
  «      D ]¾  }
t        |	dz
  «      D ]«  }t        j                  ||
|
dz   …||dz   …f   t        j                  ¬«      }t        j                  ||
|
dz   …||dz   …f   t        j                  ¬«      }t        j                  ||
|
dz   …||dz   …f   «      }|j                  ||||› d�›dd|d¬«       Œ­ ŒÀ yy)	a°  Show ``z`` values on a single Axes.

        Args:
            x (array-like of shape (ny, nx) or (nx,)): The x-coordinates of the grid points.
            y (array-like of shape (ny, nx) or (ny,)): The y-coordinates of the grid points.
            z (array-like of shape (ny, nx): z-values.
            ax (int or Matplotlib Axes, optional): Which Axes to plot on, default ``0``.
            color (str, optional): Color of added text. May be a string color or the letter ``"C"``
                followed by an integer in the range ``"C0"`` to ``"C9"`` to use a color from the
                ``tab10`` colormap. Default ``"green"``.
            fmt (str, optional): Format to display z-values, default ``".1f"``.
            quad_as_tri (bool, optional): Whether to show z-values at the ``quad_as_tri`` centers
                of quads.

        Warning:
            ``quad_as_tri=True`` shows z-values for all quads, even if masked.
        Ú ÚcenterT©ÚhaÚvarW   Úclip_onr?   é   ©ÚdtypeN)	rJ   r_   rb   ÚasarrayÚshapeÚrangeÚtextÚmeanÚfloat64)r+   re   rf   ru   r3   rW   ÚfmtÚquad_as_triÚnyÚnxÚjÚiÚxxÚyyÚzzs                  r4   Úz_valueszMplRenderer.z_values  s‹  € ð6 �\‰\˜"ÓˆØ×Ñ  1Ó%‰ˆˆ1Ü�J‰J�q‹MˆØ—‘‰ˆˆBÜ�r“ò 	3ˆAÜ˜2“Yò 3�Ø—‘˜˜!˜Q˜$™  1 a 4¡¨Q¨q°!¨t©W°c°U¸ °F¨OÀÈhØ#¨Tð õ 3ñ3ð	3ñ Ü˜2˜a™4“[ò *�Ü˜r !™t›ò *�AÜŸ™  1 Q q¡S 5¨!¨A¨a©C¨% <¡¼¿
¹
ÔC�BÜŸ™  1 Q q¡S 5¨!¨A¨a©C¨% <¡¼¿
¹
ÔC�BÜŸ™  1 Q q¡S 5¨!¨A¨a©C¨% <¡Ó1�BØ—G‘G˜B  r¨3¨%¨p¨ j°hÀ8ÐSXØ$(ð õ *ñ	*ñ*ð r6   )r?   r?   ©é	   r¤   TNN)r,   rI   r-   rI   r   útuple[float, float]r.   r   r/   ú
str | Noner    zdict[str, Any] | NoneÚreturnÚNone)r§   r¨   )r3   ú
Axes | intr§   r   )r   ÚC0çffffffæ?)rU   úcpy.FillReturnrV   úFillType | strr3   r©   rW   ÚstrrQ   Úfloatr§   r¨   )r   Úblackçš™™™™™¹?Nr   )re   r   rf   r   r3   r©   rW   r®   rQ   r¯   rg   r¦   rh   r¯   r§   r¨   )r   rª   ç      ð?r?   )rm   úcpy.LineReturnrn   úLineType | strr3   r©   rW   r®   rQ   r¯   ro   r¯   r§   r¨   )r   r°   )re   r   rf   r   ru   z'ArrayLike | np.ma.MaskedArray[Any, Any]r3   r©   rW   r®   r§   r¨   )F)rz   r®   rx   r   r§   r¨   )r§   z
io.BytesIO)r   N)rˆ   r®   r3   r©   rW   r¦   r§   r¨   )r   Úgreenz.1fF)re   r   rf   r   ru   r   r3   r©   rW   r®   r™   r®   rš   r   r§   r¨   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r5   r;   rE   rJ   rU   rk   rm   rv   r{   rƒ   r…   rˆ   r¢   © r6   r4   r   r      sJ  … ñð ÓØ
ƒLØÓð ØØ'-ØØ"Ø-1ð àð ð ð ð %ð	 ð
 ð ð ð ð +ð ð 
ó ó8!ó	%óð ØØð"àð"ð "ð"ð ð	"ð
 ð"ð ð"ð 
ó"ðB ØØØ"&Ø#$ð-"àð-"ð ð-"ð ð	-"ð
 ð-"ð ð-"ð  ð-"ð !ð-"ð 
ó-"ðf ØØØð"àð"ð "ð"ð ð	"ð
 ð"ð ð"ð ð"ð 
ó"ðH Øð0àð0ð ð0ð 3ð	0ð
 ð0ð ð0ð 
ó0ô0	=ó
óô.ð* ØØØ!ð**àð**ð ð**ð ð	**ð
 ð**ð ð**ð ð**ð ð**ð 
ô**r6   r   c                  ó:   ‡ — e Zd ZdZ	 	 	 d	 	 	 	 	 	 	 dˆ fd„Zˆ xZS )ÚMplTestRendererz¾Test renderer implemented using Matplotlib.

    No whitespace around plots and no spines/ticks displayed.
    Uses Agg backend, so can only save to file/buffer, cannot call ``show()``.
    c                óú   •— dddddddœ}t         ‰| �  |||dd|¬«       | j                  D ]F  }|j                  d«       |j	                  d«       |j                  g «       |j                  g «       ŒH d| _        y )	Ng{®Gáz„?g®Gáz®ï?)ÚleftÚrightÚtopÚbottomÚwspaceÚhspaceTÚAgg)r.   r/   r    ç        F)Úsuperr5   r   Úset_xmarginÚset_ymarginÚ
set_xticksÚ
set_yticksr   )r+   r,   r-   r   Úgridspecr3   Ú	__class__s         €r4   r5   zMplTestRenderer.__init__?  sŽ   ø€ ð ØØØØØñ
ˆô 	‰ÑØ�5˜'¨d¸EÈxð 	ô 	
ð —*‘*ò 	ˆBØ�N‰N˜3ÔØ�N‰N˜3ÔØ�M‰M˜"ÔØ�M‰M˜"Õð		ð !ˆÕr6   )r?   r?   r£   )r,   rI   r-   rI   r   r¥   r§   r¨   )r¶   r·   r¸   r¹   r5   Ú__classcell__©rÍ   s   @r4   r½   r½   9  sC   ø„ ñð ØØ'-ð	!àð!ð ð!ð %ð	!ð
 
÷!ñ !r6   r½   c                  ód  ‡ — e Zd ZdZ	 	 	 	 d		 	 	 	 	 	 	 	 	 d
ˆ fd„Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Z	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Z	 	 d	 	 	 	 	 	 	 	 	 	 	 dd„Z	 	 d	 	 	 	 	 	 	 	 	 	 	 dd„Z		 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z
ˆ xZS )ÚMplDebugRendererz¤Debug renderer implemented using Matplotlib.

    Extends ``MplRenderer`` to add extra information to help in debugging such as markers, arrows,
    text, etc.
    c                ó*   •— t         ‰| �  ||||«       y rG   )rÇ   r5   )r+   r,   r-   r   r.   rÍ   s        €r4   r5   zMplDebugRenderer.__init__`  s   ø€ ô 	‰Ñ˜  w°
Õ;r6   c                ól  — d||z   z  }||z
  }|t        j                  t        j                  ||«      «      z  }t        j                  |d   |d    f«      }	t        j                  ||dz  |	z
  |z  z
  ||dz  |z  z   ||dz  |	z   |z  z
  f«      }
|j                  |
d d …df   |
d d …df   d||¬«       y )Ng      à?r?   r   ú-©rq   rQ   )rb   ÚsqrtÚdotr“   rc   r`   )r+   r3   Ú
line_startÚline_endrW   rQ   Ú
arrow_sizeÚmidÚalongrÀ   Úarrows              r4   Ú_arrowzMplDebugRenderer._arrowi  sÐ   € ð �: Ñ(Ñ)ˆØ˜:Ñ%ˆØ”—‘œŸ™  uÓ-Ó.Ñ.ˆÜ—
‘
˜E !™H u¨Q¡x iÐ0Ó1ˆÜ—‘Ø�5˜‘9˜uÑ$ jÑ0Ñ0Ø�%˜‘)˜JÑ&Ñ&Ø�5˜‘9˜uÑ$ jÑ0Ñ0ð
ó ˆð
 	�‰�’a˜�d‘˜U¢1 a 4™[¨#°¸eˆÕDr6   c                ó  •— t        |«      }t        ‰| �	  |||||«       |€|€y | j                  |«      }t	        ||t
        j                  «      }|�‘t        |Ž D ]†  \  }}|€Œ	t        |«      D ]p  \  }}||| }|j                  |d d …df   |d d …df   ||¬«       |
dkD  sŒ4t        |«      }t        |dz
  «      D ]!  }| j                  |||   ||dz      |||
«       Œ# Œr Œˆ |� t        |Ž D ]”  \  }}|€Œ	t        j                  |d   t        ¬«      }d||dd  dz
  <   |	�
|d d }d||<   |j                  |d d …df   |   |d d …df   |   d||¬«       |	€Œk|j                  |d d …df      |d d …df   |   d|	|¬«       Œ– y y )	Nr   r?   rÕ   rÆ   r[   r‘   Fr]   )r   rÇ   rU   rJ   r
   r   ÚChunkCombinedOffsetÚzipr   r`   rB   r•   rÞ   rb   Úonesr   )r+   rU   rV   r3   rW   rQ   Ú
line_colorÚ
line_alpharg   Ústart_point_colorrÚ   ÚpointsÚoffsetsÚstartÚendÚxysÚnrž   rv   Ústart_indicesrÍ   s                       €r4   rU   zMplDebugRenderer.filled}  sü  ø€ ô ! Ó+ˆ	Ü‰‰�v˜y¨"¨e°UÔ;àÐ +Ð"5Øà�\‰\˜"ÓˆÜ ¨	´8×3OÑ3OÓPˆð Ð!Ü#&¨ <ò 
b‘�˜Ø�>ØÜ"*¨7Ó"3ò b‘J�E˜3Ø   sÐ+�CØ—G‘G˜C¢ 1 ™I sª1¨a¨4¡y°JÀj�GÔQà! CÓ'Ü ›H˜Ü!& q¨¡s£ò b˜AØ ŸK™K¨¨C°©F°C¸¸!¹±H¸jÈ*ÐV`Õañbñbð
bð Ð"Ü#&¨ <ò C‘�˜Ø�>ØÜ—w‘w˜w r™{´$Ô7�Ø&+��W˜Q˜R�[ ‘]Ñ#Ø$Ð0Ø$+¨C¨R L�MØ*/�D˜Ñ'Ø—‘Øš1˜a˜4‘L Ñ&¨ªq°!¨t©°TÑ(:¸CÀ;ÐV`ð ô bð %Ñ0Ø—G‘G˜F¢1 a 4™L¨Ñ7¸ÂÀ1À¹ÀmÑ9TÐVYØ/°zð õ CñCð #r6   c
           
     ó~  •— t        |«      }t        ‰| �	  ||||||«       |	dk(  r|€y | j                  |«      }t	        ||t
        j                  «      }
t        rt        t        j                  |
«      }
|	dkD  rB|
D ]=  }t        t        |«      dz
  «      D ]!  }| j                  |||   ||dz      |||	«       Œ# Œ? |�€|
D ]z  }d}t        |«      }|�E|j                  |d   |d   d||¬«       d}|d   d   |d   d   k(  r|d   d   |d   d   k(  r|dz  }|j                  |||…df   |||…df   d||¬«       Œ| y y )	NrÆ   r?   r   )r   r   )r   r?   r]   rÕ   r[   )r   rÇ   rm   rJ   r   r	   ÚSeparater   r   ÚcpyÚLineReturn_Separater•   rB   rÞ   r`   )r+   rm   rn   r3   rW   rQ   ro   rg   rå   rÚ   Úseparate_linesÚlinerž   Ústart_indexÚ	end_indexrÍ   s                  €r4   rm   zMplDebugRenderer.lines²  sŽ  ø€ ô ! Ó+ˆ	Ü‰‰�e˜Y¨¨E°5¸)ÔDà˜Ò Ð!4Øà�\‰\˜"ÓˆÜ& u¨i¼×9JÑ9JÓKˆÝÜ!¤#×"9Ñ"9¸>ÓJˆNà˜ÒØ&ò R�Üœs 4›y¨™{Ó+ò R�AØ—K‘K  D¨¡G¨T°!°A±#©Y¸¸uÀjÕQñRðRð Ð"Ø&ò 	.�Ø�Ü ›I�	Ø$Ð0Ø—G‘G˜D ™J¨¨T©
°CÐ;LÐTY�GÔZØ"#�KØ˜A‘w˜q‘z T¨"¡X¨a¡[Ò0°T¸!±W¸Q±ZÀ4ÈÁ8ÈAÁ;Ò5NØ! Q™˜	Ø—‘˜˜[¨Ð2°AÐ5Ñ6¸¸[ÈÐ=RÐTUÐ=UÑ8VÐX[Ø uð õ .ñ	.ð #r6   c                ó>  — | j                  |«      }| j                  ||«      \  }}t        j                  |«      }|j                  \  }}t        |«      D ]E  }t        |«      D ]5  }	|	||z  z   }
|j                  |||	f   |||	f   t        |
«      dd|d¬«       Œ7 ŒG y )NrÀ   rÁ   TrŒ   ©rJ   r_   rb   r“   r”   r•   r–   r®   )r+   re   rf   ru   r3   rW   r›   rœ   r�   rž   Úquads              r4   Úpoint_numberszMplDebugRenderer.point_numbersÚ  sª   € ð �\‰\˜"ÓˆØ×Ñ  1Ó%‰ˆˆ1Ü�J‰J�q‹MˆØ—‘‰ˆˆBÜ�r“ò 	&ˆAÜ˜2“Yò &�Ø˜1˜R™4‘x�Ø—‘˜˜!˜Q˜$™  1 a 4¡¬#¨d«)¸ÀEÐQVØ $ð õ &ñ&ñ	&r6   c                óÂ  — | j                  |«      }| j                  ||«      \  }}t        j                  |«      }|j                  \  }}t        d|«      D ]†  }t        d|«      D ]u  }	|	||z  z   }
||dz
  |dz   …|	dz
  |	dz   …f   j                  «       }||dz
  |dz   …|	dz
  |	dz   …f   j                  «       }|j                  ||t        |
«      dd|d¬«       Œw Œˆ y )Nr?   r‹   TrŒ   )	rJ   r_   rb   r“   r”   r•   r—   r–   r®   )r+   re   rf   ru   r3   rW   r›   rœ   r�   rž   r÷   ri   rj   s                r4   Úquad_numberszMplDebugRenderer.quad_numbersì  sü   € ð �\‰\˜"ÓˆØ×Ñ  1Ó%‰ˆˆ1Ü�J‰J�q‹MˆØ—‘‰ˆˆBÜ�q˜"“ò 	dˆAÜ˜1˜b“\ò d�Ø˜1˜R™4‘x�Ø˜˜1™˜Q˜q™S˜ ! A¡# a¨¡c 'Ð)Ñ*×/Ñ/Ó1�Ø˜˜1™˜Q˜q™S˜ ! A¡# a¨¡c 'Ð)Ñ*×/Ñ/Ó1�Ø—‘˜˜d¤C¨£I°(¸xÈuÐ^b�Õcñ	dñ	dr6   c                ód  — | j                  |«      }| j                  ||«      \  }}t        j                  |«      }|j                  \  }}	t        |«      D ]X  }
t        |	«      D ]H  }||
|f   }|�||kD  rd}n
||kD  rd}nd}|j                  ||
|f   ||
|f   t        |«      dd|d¬«       ŒJ ŒZ y )Nr�   r?   r   r¿   rÂ   TrŒ   rö   )r+   re   rf   ru   Úlower_levelÚupper_levelr3   rW   r›   rœ   r�   rž   r¡   Úz_levels                 r4   Úz_levelszMplDebugRenderer.z_levelsÿ  sÎ   € ð �\‰\˜"ÓˆØ×Ñ  1Ó%‰ˆˆ1Ü�J‰J�q‹MˆØ—‘‰ˆˆBÜ�r“ò 
	&ˆAÜ˜2“Yò 	&�Ø�q˜!�t‘W�ØÐ*¨r°KÒ/?Ø‘GØ˜+Ò%Ø‘Gà�GØ—‘˜˜!˜Q˜$™  1 a 4¡¬#¨g«,¸6ÀhÐV[Ø $ð õ &ñ	&ñ
	&r6   )r?   r?   r£   T)
r,   rI   r-   rI   r   r¥   r.   r   r§   r¨   )r3   r   rØ   úcpy.CoordinateArrayrÙ   r   rW   r®   rQ   r¯   rÚ   r¯   r§   r¨   )r   ÚC1r«   rª   r«   rª   Úredr±   )rU   r¬   rV   r­   r3   r©   rW   r®   rQ   r¯   rã   r®   rä   r¯   rg   r®   rå   r®   rÚ   r¯   r§   r¨   )r   rª   r²   r?   rª   r  r±   )rm   r³   rn   r´   r3   r©   rW   r®   rQ   r¯   ro   r¯   rg   r®   rå   r®   rÚ   r¯   r§   r¨   )r   r  )re   r   rf   r   ru   r   r3   r©   rW   r®   r§   r¨   )r   Úblue)Nr   rµ   )re   r   rf   r   ru   r   rü   r¯   rý   zfloat | Noner3   r©   rW   r®   r§   r¨   )r¶   r·   r¸   r¹   r5   rÞ   rU   rm   rø   rú   rÿ   rÎ   rÏ   s   @r4   rÑ   rÑ   Z  s¦  ø„ ñð ØØ'-Øð<àð<ð ð<ð %ð	<ð
 ð<ð 
õ<ðEàðEð (ðEð &ð	Eð
 ðEð ðEð ðEð 
óEð0 ØØØØØØ!&Øð3Càð3Cð "ð3Cð ð	3Cð
 ð3Cð ð3Cð ð3Cð ð3Cð ð3Cð ð3Cð ð3Cð 
õ3Cðr ØØØØØ!&Øð&.àð&.ð "ð&.ð ð	&.ð
 ð&.ð ð&.ð ð&.ð ð&.ð ð&.ð ð&.ð 
õ&.ðZ Øð&àð&ð ð&ð ð	&ð
 ð&ð ð&ð 
ó&ð. Øðdàðdð ðdð ð	dð
 ðdð ðdð 
ódð2 %)ØØð&àð&ð ð&ð ð	&ð
 ð&ð "ð&ð ð&ð ð&ð 
÷&r6   rÑ   )-Ú
__future__r   r   Ú	itertoolsr   Útypingr   r   r   Úmatplotlib.collectionsÚcollectionsrR   Úmatplotlib.pyplotÚpyplotr'   Únumpyrb   Ú	contourpyr   r	   Úcontourpy.convertr
   r   Úcontourpy.enum_utilr   r   Úcontourpy.util.mpl_utilr   r   Úcontourpy.util.rendererr   Úcollections.abcr   Úmatplotlib.axesr   Úmatplotlib.figurer   Únumpy.typingr   Úcontourpy._contourpyÚ
_contourpyrï   r   r½   rÑ   r»   r6   r4   ú<module>r     sh   ðÝ "ã 	Ý ß +Ñ +å -Ý Û ç (ß ;ß :ß KÝ ,áÝ(å$Ý(Ý&å&ô[*�(ô [*ô|!�kô !ôB}&�{õ }&r6   