+
    ,iD                        ^ RI t^ RIt^ RIHt ^ RIHt ^ RIHt	 ^ RI
Ht ^ RIHt ^ RIHt ^ RIHtHtHtHt ^ RIHtHtHt  ! R R	]4      t ! R
 R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      tR# )    N)_api)AxesCircle)Path)	FormatterNullLocatorFixedLocatorNullFormatter)Affine2DBboxTransformTo	Transformc                      a a ] tR t^t oRt ! R R]4      t^KtR tV 3R lt	R t
R tRR ltR	 tR
 tRR ltR tR tR tR tR t]tR t]t]t]tR t]tR tR tR tR tR t R t!R t"R t#R t$R t%Rt&Vt'V ;t(# )GeoAxesz2An abstract base class for geographic projections.c                   8   a  ] tR t^t o RtRR ltRR ltRtV tR# )GeoAxes.ThetaFormatterzs
Used to format the theta tick labels.  Converts the native
unit of radians into degrees and adds a degree symbol.
c                    Wn         R # N	_round_to)selfround_tos   &&</usr/lib/python3/dist-packages/matplotlib/projections/geo.py__init__GeoAxes.ThetaFormatter.__init__   s    %N    Nc                    \        \        P                  ! V4      V P                  ,          4      V P                  ,          pVR  R2# )z0.0f   °)roundnprad2degr   )r   xposdegreess   &&& r   __call__GeoAxes.ThetaFormatter.__call__   s5    BJJqMDNN:;dnnLGd^?33r   r   )      ?r   )	__name__
__module____qualname____firstlineno____doc__r   r%   __static_attributes____classdictcell____classdict__s   @r   ThetaFormatterr      s     		&	4 	4r   r1   c                    \         P                  ! V R R7      V n        \         P                  ! V R R7      V n        V P
                  R,          P                  V P                  4       R# )F)cleargeoN)maxisXAxisxaxisYAxisyaxisspinesregister_axisr   s   &r   
_init_axisGeoAxes._init_axis    sA    [[U3
[[U3
E((4r   c                  < \         SV `  4        V P                  ^4       V P                  ^4       V P	                  ^K4       V P
                  P                  \        4       4       V P                  P                  \        4       4       V P
                  P                  R4       V P                  P                  R4       V P                  P                  RR7       V P                  \        P                  R,          4       \        P                  ! V \         P"                  ) \         P"                  4       \        P$                  ! V \         P"                  ) R,          \         P"                  R,          4       R# )   noneT)label1Onz	axes.grid       @N)superr3   set_longitude_gridset_latitude_gridset_longitude_grid_endsr7   set_minor_locatorr	   r9   set_ticks_positionset_tick_paramsgridmplrcParamsr   set_xlimr    piset_ylimr   	__class__s   &r   r3   GeoAxes.clear%   s    #r"$$R(

$$[]3

$$[]3

%%f-

%%f-

""D"1 			#,,{+,dRUUFBEE*dRUUFSL"%%#+6r   c                0   V P                  V P                  4      V n        V P                  4       V n        \        V P                  4      V n        V P                  V P                  ,           V P                  ,           V n        \        4       P                  ^V P                  ^,          4      P                  ^ V P                  ) 4      V n        V P                  V P                  ,           V n        \        4       P                  ^^ 4      V P                  ,           \        4       P                  ^ ^4      ,           V n        \        4       P                  ^^ 4      V P                  ,           \        4       P                  ^ R4      ,           V n        \        4       P                  \"        P$                  ^,          ^4      P                  \"        P$                  ) ^ 4      p\        4       P                  ^R4      pVV P                  ,           V n        VV P                  ,           VV P                  ,           V P                  ,           ,           pV\        4       P                  R^ 4      ,           V n        V\        4       P                  ^^ 4      ,           V n        R# )   g?Ni)_get_core_transform
RESOLUTIONtransProjection_get_affine_transformtransAffiner   bbox	transAxes	transDatar   scale_longitude_cap	translate_xaxis_pretransform_xaxis_transform_xaxis_text1_transform_xaxis_text2_transformr    rO   _yaxis_transform_yaxis_text1_transform_yaxis_text2_transform)r   yaxis_stretchyaxis_spaceyaxis_text_bases   &   r   _set_lim_and_transformsGeoAxes._set_lim_and_transforms9   s   #77H557(3
   NN 	 JU1d))A-.Yq4.../ 	 
 $$NN 	 JQ"NNJ  A&' 	#
 JQ"NNJ  B'( 	# !
((A6@@"%%Kj&&q#.NN 	   !^^ 	 J  Q'( 	# J  A&' 	#r   c                .   V P                  ^4      pVP                  \        P                  ^ 34      w  r#VP                  ^ \        P                  ^,          34      w  r4\	        4       P                  RV,          RV,          4      P                  RR4      # )rU         ?)rW   	transformr    rO   r   r_   ra   )r   rp   xscale_yscales   &    r   rZ   GeoAxes._get_affine_transforml   st    ,,Q/	''
3	''BEE!G5	zU3<v.YsC 	!r   c                N    \         P                  ! . ROVR7       V P                  # tick1)which)rw   tick2rK   )r   check_in_listrc   r   rx   s   &&r   get_xaxis_transformGeoAxes.get_xaxis_transformt       5UC$$$r   c                     V P                   R R3# )bottomcenter)rd   r   pads   &&r   get_xaxis_text1_transform!GeoAxes.get_xaxis_text1_transformx   s    **Hh>>r   c                     V P                   R R3# )topr   )re   r   s   &&r   get_xaxis_text2_transform!GeoAxes.get_xaxis_text2_transform{   s    **E8;;r   c                N    \         P                  ! . ROVR7       V P                  # rv   )r   rz   rf   r{   s   &&r   get_yaxis_transformGeoAxes.get_yaxis_transform~   r~   r   c                     V P                   R R3# )r   right)rg   r   s   &&r   get_yaxis_text1_transform!GeoAxes.get_yaxis_text1_transform   s    **Hg==r   c                     V P                   R R3# )r   left)rh   r   s   &&r   get_yaxis_text2_transform!GeoAxes.get_yaxis_text2_transform   s    **Hf<<r   c                    \        RR 4      # )ro   ro   ro   r   r<   s   &r   _gen_axes_patchGeoAxes._gen_axes_patch   s    j#&&r   c                H    R \         P                  P                  V RR4      /# )r4   ro   r   )mspinesSpinecircular_spiner<   s   &r   _gen_axes_spinesGeoAxes._gen_axes_spines   s     w}}33D*cJKKr   c                .    V^ ,          R8w  d   \         hR# )r   linearN)NotImplementedErrorr   argskwargss   &*,r   
set_yscaleGeoAxes.set_yscale   s    7h%% r   c                    \        R4      hz-Not supported. Please consider using Cartopy.zaChanging axes limits of a geographic projection is not supported.  Please consider using Cartopy.	TypeErrorr   s   &*,r   rN   GeoAxes.set_xlim        I J 	Jr   c                    \        R4      hr   r   r<   s   &r   invert_xaxisGeoAxes.invert_xaxis   r   r   c                    \         P                  ! W.4      w  rVR8  d   RMRpVR8  d   RMRpR\        V4      V\        V4      V3,          # )z1Return a format string formatting the coordinate.        NSEWu   %f°%s, %f°%s)r    r!   abs)r   lonlatnsews   &&&  r   format_coordGeoAxes.format_coord   sO    ::sj)3JSC3JSC:s8RS2./ 	0r   c                   \         P                  ! RV,           ^V4      pV P                  P                  \	        \         P
                  ! V4      4      4       V P                  P                  V P                  V4      4       R# )z8
Set the number of degrees between each longitude grid.
NiL)r    aranger7   set_major_locatorr
   deg2radset_major_formatterr1   r   r$   rK   s   && r   rE   GeoAxes.set_longitude_grid   sW    
 yyg6

$$\"**T2B%CD

&&t':':7'CDr   c                   \         P                  ! RV,           ^ZV4      pV P                  P                  \	        \         P
                  ! V4      4      4       V P                  P                  V P                  V4      4       R# )z7
Set the number of degrees between each latitude grid.
Ni)r    r   r9   r   r
   r   r   r1   r   s   && r   rF   GeoAxes.set_latitude_grid   sW    
 yywG4

$$\"**T2B%CD

&&t':':7'CDr   c                    \         P                  ! V4      V n        V P                  P	                  4       P                  RV P                  R,          4      P                  RV P                  ) 4       R# )zC
Set the latitude(s) at which to stop drawing the longitude grids.
r'   rC   r   N)r    r   r`   rb   r3   r_   ra   )r   r$   s   &&r   rG   GeoAxes.set_longitude_grid_ends   sQ     !jj1  UWU3++c12YsT0001r   c                    R# )z+Return the aspect ratio of the data itself.r'    r<   s   &r   get_data_ratioGeoAxes.get_data_ratio   s    r   c                    R# )z
Return whether this Axes supports the zoom box button functionality.

This Axes object does not support interactive zoom box.
Fr   r<   s   &r   can_zoomGeoAxes.can_zoom        r   c                    R# )z
Return whether this Axes supports the pan/zoom button functionality.

This Axes object does not support interactive pan/zoom.
Fr   r<   s   &r   can_panGeoAxes.can_pan   r   r   c                    R # r   r   )r   r"   ybuttons   &&&&r   	start_panGeoAxes.start_pan       r   c                    R # r   r   r<   s   &r   end_panGeoAxes.end_pan   r   r   c                    R # r   r   )r   r   keyr"   r   s   &&&&&r   drag_panGeoAxes.drag_pan   r   r   )r`   rb   rd   re   rc   rg   rh   rf   r[   r]   r^   rY   r7   r9   )rK   ))r(   r)   r*   r+   r,   r   r1   rX   r=   r3   rl   rZ   r|   r   r   r   r   r   r   r   r   
set_xscalerN   rP   
set_xbound
set_yboundr   invert_yaxisr   rE   rF   rG   r   r   r   r   r   r   r-   r.   __classcell__rR   r0   s   @@r   r   r      s     <
4 
4 J5
7(1'f!%?<%>='L& JJ
 HJJJ
  L0EE2 r   r   c                   F   a a ] tR t^t o^;ttV 3R ltR tR tRt	Vt
V ;t# )_GeoTransformc                0   < \         SV `  4        Wn        R# )z
Create a new geographical transform.

Resolution is the number of steps to interpolate between each input
line segment to approximate its path in curved space.
N)rD   r   _resolution)r   
resolutionrR   s   &&r   r   _GeoTransform.__init__   s     	%r   c                L    \        V 4      P                   R V P                   R2# )())typer(   r   r<   s   &r   __str___GeoTransform.__str__   s'    t*%%&a(8(8'9;;r   c                    VP                  V P                  4      p\        V P                  VP                  4      VP
                  4      # r   )interpolatedr   r   rp   verticescodes)r   pathipaths   && r   transform_path_non_affine'_GeoTransform.transform_path_non_affine   s6    !!$"2"23DNN5>>2EKK@@r   )r   )r(   r)   r*   r+   
input_dimsoutput_dimsr   r   r   r-   r.   r   r   s   @@r   r   r      s%       J&<A Ar   r   c                   h   a a ] tR t^t oRt ! R R]4      t ! R R]4      tV 3R ltR t	Rt
VtV ;t# )	
AitoffAxesaitoffc                   0   a  ] tR tRt o RtR tR tRtV tR# )AitoffAxes.AitoffTransformi  zThe base Aitoff transform.c                   VP                   w  r#VR ,          p\        P                  ! V4      p\        P                  ! V\        P                  ! V4      ,          4      p\        P                  ! V\        P
                  ,          4      pV\        P                  ! V4      ,          V,          p\        P                  ! V4      V,          p	\        P                  ! W.4      # )rC   )Tr    cosarccossincrO   sincolumn_stack)
r   values	longitudelatitude	half_longcos_latitudealpha
sinc_alphar"   r   s
   &&        r   transform_non_affine/AitoffAxes.AitoffTransform.transform_non_affine  s    "(((I "CI66(+LIIlRVVI->>?E/Jy 11Z?Ax :-A??A6**r   c                @    \         P                  V P                  4      # r   )r   InvertedAitoffTransformr   r<   s   &r   inverted#AitoffAxes.AitoffTransform.inverted      55d6F6FGGr   r   N	r(   r)   r*   r+   r,   r  r  r-   r.   r/   s   @r   AitoffTransformr     s     (	+	H 	Hr   r  c                   ,   a  ] tR tRt o R tR tRtV tR# )"AitoffAxes.InvertedAitoffTransformi  c                L    \         P                  ! V\         P                  4      # r   )r    	full_likenan)r   r  s   &&r   r  7AitoffAxes.InvertedAitoffTransform.transform_non_affine  s     <<//r   c                @    \         P                  V P                  4      # r   )r   r  r   r<   s   &r   r  +AitoffAxes.InvertedAitoffTransform.inverted      --d.>.>??r   r   Nr(   r)   r*   r+   r  r  r-   r.   r/   s   @r   r  r    s     	0
	@ 	@r   r  c                   < \         P                  R ,          V n        \        SV `  ! V/ VB  V P                  RRRR7       V P                  4        R# rC   ro   boxC
adjustableanchorNr    rO   r`   rD   r   
set_aspectr3   r   r   r   rR   s   &*,r   r   AitoffAxes.__init__#  @     eeck$)&)c:

r   c                $    V P                  V4      # r   )r  r   r   s   &&r   rW   AitoffAxes._get_core_transform)      ##J//r   r`   )r(   r)   r*   r+   namer   r  r  r   rW   r-   r.   r   r   s   @@r   r   r      s5     DH- H,	@- 	@0 0r   r   c                   h   a a ] tR tRt oRt ! R R]4      t ! R R]4      tV 3R ltR t	R	t
VtV ;t# )

HammerAxesi-  hammerc                   0   a  ] tR tRt o RtR tR tRtV tR# )HammerAxes.HammerTransformi0  zThe base Hammer transform.c                   VP                   w  r#VR ,          p\        P                  ! V4      p\        P                  ! R 4      p\        P                  ! RV\        P                  ! V4      ,          ,           4      pR V,          V\        P                  ! V4      ,          ,          V,          pV\        P                  ! V4      ,          V,          p	\        P
                  ! W.4      # )rC   r'   )r  r    r  sqrtr  r  )
r   r  r	  r
  r  r  sqrt2r  r"   r   s
   &&        r   r  /HammerAxes.HammerTransform.transform_non_affine3  s    "(((I!CI66(+LGGCLEGGC,	1B"BBCEuy0A!ABUJA))U2A??A6**r   c                @    \         P                  V P                  4      # r   )r5  InvertedHammerTransformr   r<   s   &r   r  #HammerAxes.HammerTransform.inverted>  r  r   r   Nr  r/   s   @r   HammerTransformr8  0  s     (		+	H 	Hr   r@  c                   ,   a  ] tR tRt o R tR tRtV tR# )"HammerAxes.InvertedHammerTransformiB  c                   VP                   w  r#\        P                  ! ^V^,          ^,          ,
          V^,          ^,          ,
          4      p^\        P                  ! WB,          ^^V^,          ,          ^,
          ,          ,          4      ,          p\        P                  ! W4,          4      p\        P
                  ! WV.4      # )rU   )r  r    r:  arctanarcsinr  )r   r  r"   r   zr	  r
  s   &&     r   r  7HammerAxes.InvertedHammerTransform.transform_non_affineD  s    88DAQUqL(AEa<78ABIIqua!q&j1n1E&FGGIyy~H??I#899r   c                @    \         P                  V P                  4      # r   )r5  r@  r   r<   s   &r   r  +HammerAxes.InvertedHammerTransform.invertedL  r   r   r   Nr!  r/   s   @r   r>  rB  B  s     	:	@ 	@r   r>  c                   < \         P                  R ,          V n        \        SV `  ! V/ VB  V P                  RRRR7       V P                  4        R# r#  r)  r+  s   &*,r   r   HammerAxes.__init__P  r-  r   c                $    V P                  V4      # r   )r@  r/  s   &&r   rW   HammerAxes._get_core_transformV  r1  r   r2  )r(   r)   r*   r+   r3  r   r@  r>  r   rW   r-   r.   r   r   s   @@r   r5  r5  -  s5     DH- H$@- @0 0r   r5  c                   h   a a ] tR tRt oRt ! R R]4      t ! R R]4      tV 3R ltR t	R	t
VtV ;t# )
MollweideAxesiZ  	mollweidec                   0   a  ] tR tRt o RtR tR tRtV tR# ) MollweideAxes.MollweideTransformi]  zThe base Mollweide transform.c                  a V3R  lpVP                   w  r4\        P                  ^,          \        P                  ! V4      ,
          pVR8  pV( p\        P                  ! VP
                  \        R7      pVP                  4       '       d   \        P                  \        P                  ! WG,          4      ,          oRWG,          ,          p	V! V	4      w  r\        P                  ! V4      '       d'   W;;,          W,          ,          uu&   V! V	4      w  rKB  V	^,          W&   VP                  4       '       d}   WV,          pR^\        P                  ,          V^,          ,          R,          ,          p\        P                  ^,          V,
          \        P                  ! WF,          4      ,          W&   \        P                  ! VP
                  \        R7      pR\        P                  ! R4      ,          \        P                  ,          V,          \        P                  ! V4      ,          VR&   \        P                  ! R4      \        P                  ! V4      ,          VR&   V# )c                    < V \         P                  ! V 4      ,           S,
          ) ^\         P                  ! V 4      ,           ,          pV\         P                  ! V4      R8  3# )rU   gMbP?)r    r  r  r   )thetadeltapi_sin_ls   & r   d@MollweideAxes.MollweideTransform.transform_non_affine.<locals>.db  sJ     266%=08;<u-/bffUme333r   gʡE?)dtyperC   ro   gUUUUUU?)NNNr   )r[  rU   )r  r    rO   r   emptyshapefloatanyr  signr:  r  )r   r  rX  r	  r
  clatihighilowauxrU  rV  large_deltaexyrW  s   &&            @r   r  5MollweideAxes.MollweideTransform.transform_non_affine`  s   4
 #)((I557RVVH--D5LE6D((8>>7Cxxzz55266(.#99hn,%&uX"ff[))&%*<<&)*5&E;!AI	yy{{K1ruu9q!t+77 eeAgkRWWX_-EE
&,,e4Bbggcl*RUU2i?"&&+MBtHwws|bffSk1BtHIr   c                @    \         P                  V P                  4      # r   )rO  InvertedMollweideTransformr   r<   s   &r   r  )MollweideAxes.MollweideTransform.inverted  s     ;;D<L<LMMr   r   Nr  r/   s   @r   MollweideTransformrR  ]  s     + 	D	N 	Nr   rl  c                   ,   a  ] tR tRt o R tR tRtV tR# )(MollweideAxes.InvertedMollweideTransformi  c                   VP                   w  r#\        P                  ! V\        P                  ! ^4      ,          4      p\        P                  ^\        P                  ! ^4      ,          ,          V,          \        P
                  ! V4      ,          p\        P                  ! ^V,          \        P                  ! ^V,          4      ,           \        P                  ,          4      p\        P                  ! WV.4      # )   )r  r    rE  r:  rO   r  r  r  )r   r  r"   r   rU  r	  r
  s   &&     r   r  =MollweideAxes.InvertedMollweideTransform.transform_non_affine  s    88DA IIa"''!*n-E!bggaj.1Q6FIyy!e)bffQY.?"?255!HIH??I#899r   c                @    \         P                  V P                  4      # r   )rO  rl  r   r<   s   &r   r  1MollweideAxes.InvertedMollweideTransform.inverted  s     33D4D4DEEr   r   Nr!  r/   s   @r   rj  rn    s     	:	F 	Fr   rj  c                   < \         P                  R ,          V n        \        SV `  ! V/ VB  V P                  RRRR7       V P                  4        R# r#  r)  r+  s   &*,r   r   MollweideAxes.__init__  r-  r   c                $    V P                  V4      # r   )rl  r/  s   &&r   rW   !MollweideAxes._get_core_transform  s    &&z22r   r2  )r(   r)   r*   r+   r3  r   rl  rj  r   rW   r-   r.   r   r   s   @@r   rO  rO  Z  s6     D'N] 'NRF] F 3 3r   rO  c                      a a ] tR tRt oRt ! R R]4      t ! R R]4      tR^ R^ /V 3R	 lltV 3R
 lt	R t
R tRtVtV ;t# )LambertAxesi  lambertc                   6   a  ] tR tRt o RtR tR tR tRtV t	R# )LambertAxes.LambertTransformi  zThe base Lambert transform.c                H    \         P                  W4       Wn        W n        R# )z
Create a new Lambert transform.  Resolution is the number of steps
to interpolate between each input line segment to approximate its
path in curved Lambert space.
Nr   r   _center_longitude_center_latituder   center_longitudecenter_latituder   s   &&&&r   r   %LambertAxes.LambertTransform.__init__  s     ""44%5"$3!r   c                   VP                   w  r#V P                  pV P                  p\        P                  ! V4      p\        P
                  ! V4      pW$,
          p\        P                  ! V4      p	\        P                  ! ^\        P
                  ! V4      V,          ,           \        P                  ! V4      V,          V	,          ,           R4      p
\        P                  ! ^V
,          4      pW,          \        P
                  ! V4      ,          pV\        P                  ! V4      V,          \        P
                  ! V4      V,          V	,          ,
          ,          p\        P                  ! W.4      # )rU   gV瞯<)	r  r  r  r    r  r  maximumr:  r  )r   r  r	  r
  clongra  cos_latsin_lat	diff_longcos_diff_longinner_kkr"   r   s   &&            r   r  1LambertAxes.LambertTransform.transform_non_affine  s    "(((I**E((DffX&GffX&G!)IFF9-MjjBFF4L((266$<+?+MMG G$ABFF9--ARVVD\')BFF4L,@,NNOA??A6**r   c                l    \         P                  V P                  V P                  V P                  4      # r   )ry  InvertedLambertTransformr  r  r   r<   s   &r   r  %LambertAxes.LambertTransform.inverted  s0    77&&%%  " "r   r  r  N)
r(   r)   r*   r+   r,   r   r  r  r-   r.   r/   s   @r   LambertTransformr|    s     )	4	+&	" 	"r   r  c                   2   a  ] tR tRt o R tR tR tRtV tR# )$LambertAxes.InvertedLambertTransformi  c                H    \         P                  W4       Wn        W n        R # r   r~  r  s   &&&&r   r   -LambertAxes.InvertedLambertTransform.__init__  s    ""44%5"$3!r   c           	        VP                   w  r#V P                  pV P                  p\        P                  ! \        P
                  ! W#4      R 4      p^\        P                  ! RV,          4      ,          p\        P                  ! V4      p\        P                  ! V4      p	\        P                  ! V	\        P                  ! V4      ,          W8,          \        P                  ! V4      ,          V,          ,           4      p
V\        P                  ! W(,          V\        P                  ! V4      ,          V	,          V\        P                  ! V4      ,          V,          ,
          ,          4      ,           p\        P                  ! W.4      # )g&.>ro   )r  r  r  r    r  hypotrE  r  r  rD  r  )r   r  r"   r   r  ra  pcsin_ccos_cr
  r	  s   &&          r   r  9LambertAxes.InvertedLambertTransform.transform_non_affine  s   88DA**E((D

288A>40ABIIcAg&&AFF1IEFF1IEyyrvvd|!3#$7266$<#71"<"> ?H		Qrvvd|^E1AbffTlN54HHI!K KI ??I#899r   c                l    \         P                  V P                  V P                  V P                  4      # r   )ry  r  r  r  r   r<   s   &r   r  -LambertAxes.InvertedLambertTransform.inverted  s0    //&&%%  " "r   r  N)	r(   r)   r*   r+   r   r  r  r-   r.   r/   s   @r   r  r    s     	4
	:"	" 	"r   r  r  r  c                  < \         P                  ^,          V n        Wn        W n        \
        SV `  ! V/ VB  V P                  RRRR7       V P                  4        R# )rp  equalr$  r%  r&  N)	r    rO   r`   r  r  rD   r   r*  r3   )r   r  r  r   r   rR   s   &$$*,r   r   LambertAxes.__init__  sL     eeai!1 /$)&)E#>

r   c                j   < \         SV `  4        V P                  P                  \	        4       4       R # r   )rD   r3   r9   r   r   rQ   s   &r   r3   LambertAxes.clear  s     

&&}7r   c                P    V P                  V P                  V P                  V4      # r   )r  r  r  r/  s   &&r   rW   LambertAxes._get_core_transform  s*    $$""!! 	r   c                T    \        4       P                  R 4      P                  RR4      # )g      ?ro   )r   r_   ra   r<   s   &r   rZ   !LambertAxes._get_affine_transform  s!    zU4[YsC 	!r   )r  r  r`   )r(   r)   r*   r+   r3  r   r  r  r   r3   rW   rZ   r-   r.   r   r   s   @@r   ry  ry    sJ     D%"= %"N"= ">q ! 8
! !r   ry  ) numpyr    
matplotlibrL   r   matplotlib.axesr   matplotlib.axisaxisr5   matplotlib.patchesr   matplotlib.pathr   matplotlib.spinesr:   r   matplotlib.tickerr   r	   r
   r   matplotlib.transformsr   r   r   r   r   r   r5  rO  ry  r   r   r   <module>r     s          %   #9 9 F FVd VrAI A.+0 +0\*0 *0ZC3G C3L_!' _!r   