
    h                     N   S r SSKrSSKJr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JrJr  SSKJrJr  SSKJr  SSKJrJr  SS	KJr  SS
KJrJr  SSKJrJr  \R>                   " S S5      5       r  " S S5      r!\GSSSS.S jj5       r"S r#\"" \#5      r$S r%S r&S r'S r(SS.S jr)\)" \*5      r+\)" \*SS9r,\"" \+SS9r-\)" \.5      r/\)" \.SS9r0\)" \15      r2\)" \1SS9r3\"" \2SS9r4S r5\"" \5SS9r6S  r7S! r8\9" 5       r:S" r;S# r<S$ r=S% r>S& r?S' r@S( rA\"" \ASS)S*9rBS+ rCS, rDS- rES. rF\"" \F5      rGS/ rHS0 rIS1 rJS2 rKS3 rLS4 rM\!" S5/ \R                  " 5       Q\R                  " 5       QS6PS7PS8PS9PSS:9rPS; rQ\!" S</ S=Q5      rR\"" \R5      rSS> rT\"" \T5      rUS? rVS@ rWSA rXSB rYSC rZSD r[\"" \[5      r\\"" \45      r]SE r^0 SF\"" \?SSG9_SH\4_S5\"" \Q5      _SI\B_SJ\B_SK\"" \5      _SL\"" \5      _SM\S_SN\B_SO\4_SP\4_SQ\B_SR\U_SS\4_ST\6_SU\\_SV\]_r_SFSHS5SISJSNSQSPSOSW.	r`SX r " SY SZ\R                  5      rb\!" S[/ S\QSS:9rcS] rdS^ reS_ rf " S` Sa\g5      rhSb ri0 Sc\;_Sd\&_Se\-_Sf\<_Sg\&_Sh\+_Si\/_Sj\+_Sk\&_Sl\/_Sm\2_Sn\Q_So\A_Sp\5_Sq\>_Sr\>_Ss\2_0 St\2_Su\&_Sv\_Sw\_Sx\_Sy\_Sz\4_S{\4_S|\4_S}\&_S<\R_S~/ SQ_S\&_S\2_S\A_S\&_S\A_E0 S\&_S\A_S\2_S\f_S\&_S\&_S\L_S\0_S\&_S\&_S\&_S\&_S\&_S\&_S\A_S\5_S\>_E0 S\A_S\2_S\2_S\Q_S\2_S\A_S\2_S\Q_S\A_S\2_S\Q_S\A_S\2_S\Q_S\A_S\2_S\Q_E0 S\A_S\5_S\A_S\A_S\2_S\Q_S\2_S\-_S\+_S\+_S\I_S\H_S\2_S\-_S\-_S\-_S\-_E0 S\-_S\A_S\&_S\+_S/ SQ_S\/_S\/_S\&_S\&_S\J_S\J_S\J_S\J_S\J_S\J_S\J_S/ SQ_E0 S/ SQ_S\K_S\D_S\+_S/ SQ_S\C_S\/_SSS/_S\&_S\&_S\Q_S\&_S\3_S/ SQ_S\2_S/ SQ_S/ SQ_E0 S\'_S\A_S\A_S\2_S\&_S\&_S\&_S\&_S\F_S/ SQ_S\H_S\>_S\3_S\2_S\&_S/ SQ_S/ SQ_E0 S\F_S\2_S\H_S\A_S\"" \/SS9_S\&_S\&_S\/_GS \&_GS\/_GS\&_GS\e_GSGSGS/_GS\X_GS\X_GS	\X_GS
\&_E0 GS\&_GS\&_GS\A_GS\A_GS\A_GS/ GSQ_GS\2_GS\2_GS\5_GS\+_GS\%_GS\+_GS\+_GS\+_GS\+_GS\+_GS\+_E0 GS\+_GSGSGS /_GS!\&_GS"\&_S[\d_GS#\/_GS$\/_GS%\F_GS&\E_GS'\@_GS(\2_GS)\&_GS*\&_GS+\3_GS,\2_GS-\2_GS.\2_E0 GS/\2_GS0\2_GS1\2_GS2\2_GS3\=_GS4\=_GS5\&_GS6\&_GS7\&_GS8\&_GS9\2_GS:\2_GS;\2_GS<\2_GS=\2_GS>\2_GS?\A_E0 GS@\=_GSA\&_GSB\&_GSC\&_GSD\&_GSE\&_GSF\^_GSG\F_GSH/ GSIQ_GSJ/ GSKQ_GSL\&_GSM\&_GSN\&_GSO\&_GSP\2_GSQ\2_GSR\2_E0 GSS\2_GST\2_GSU\2_GSV\A_GSW\=_GSX\&_GSY\&_GSZ\&_GS[\&_GS\\&_GS]\^_GS^\F_GS_/ GSIQ_GS`/ GSaQ_GSb\A_GSc\Q_GSd\2_E0 GSe\2_GSf\F_GSg\H_GSh\F_GSi\H_GSj\"" \2SS9_GSk\2_GSl\A_GSm\A_GSn\&_GSo\&_GSp\/_GSq\&_GSr/ GSsQ_GSt\2_GSu\2_GSv\2_E0 GSw\2_GSx\2_GSy\2_GSz\&_GS{\2_GS|\2_GS}\2_GS~\2_GS\(_GS\>_GS\>_GSGSGS/_GS\+_GS\V_GS\2_GS\7_GS\&_E0 GS\&_GS\h" GSGSGSGS/GS V Vs/ s H  n \j" GS5        H  o U 3PM
     M     snn Q5      _GS\&_GS\M_GS\/_GS\8_GS\/_GS\&_GS\&_GS\8_GS/ GSQ_GS\&_GS\+_GS\&_GSS7GS/_GS\,_GS\,_E0 GS\&_GS\&_GS\Y_GS\&_GS\W_GS\$_GS\/_GS\-_GS\-_GS\-_GS\-_GS\-_GS\-_GS\-_GS\-_GS\-_GS\-_E0 GS\-_GS\-_GS\-_GS\-_GS\-_GS/ GSQ_GS\2_GS\+_GS\+_GS\/_GS/ GSQ_GS\7_GS\-_GS\7_GS\-_GS\&_ErkGSS0rl\kR                  5        VVs0 s H  u  p#U\i" X#5      _M     snnrkgs  snn f s  snnf (  az  
The rcsetup module contains the validation code for customization using
Matplotlib's rc settings.

Each rc setting is assigned a function used to validate any attempted changes
to that setting.  The validation functions are defined in the rcsetup module,
and are used to construct the rcParams global object which stores the settings
and is referenced throughout Matplotlib.

The default values of the rc settings are set in the default matplotlibrc file.
Any additions or deletions to the parameter set listed here should also be
propagated to the :file:`lib/matplotlib/mpl-data/matplotlibrc` in Matplotlib's
root source directory.
    N)	lru_cachereduce)Real)_apicbook)BackendFilterbackend_registry)	ls_mapper)Colormapis_color_likeparse_fontconfig_pattern)	JoinStyleCapStyle)Cyclercyclerc                       \ rS rSr\R
                  " SSS9\S 5       5       r\R
                  " SSS9\S 5       5       r\R
                  " SSS9\S	 5       5       r	S
r
g)__getattr__$   z3.9zd``matplotlib.backends.backend_registry.list_builtin(matplotlib.backends.BackendFilter.INTERACTIVE)``)alternativec                 J    [         R                  " [        R                  5      $ N)r	   list_builtinr   INTERACTIVEselfs    D/var/www/html/env/lib/python3.13/site-packages/matplotlib/rcsetup.pyinteractive_bk__getattr__.interactive_bk&   s      ,,]-F-FGG    zh``matplotlib.backends.backend_registry.list_builtin(matplotlib.backends.BackendFilter.NON_INTERACTIVE)``c                 J    [         R                  " [        R                  5      $ r   )r	   r   r   NON_INTERACTIVEr   s    r   non_interactive_bk__getattr__.non_interactive_bk.   s      ,,]-J-JKKr    z7``matplotlib.backends.backend_registry.list_builtin()``c                 ,    [         R                  " 5       $ r   )r	   r   r   s    r   all_backends__getattr__.all_backends6   s    
  ,,..r     N)__name__
__module____qualname____firstlineno__r   
deprecatedpropertyr   r#   r&   __static_attributes__r(   r    r   r   r   $   s    	__@A H 	A
H 
__DE L 	E
L 
__MO / O/r    r   c                   ,    \ rS rSrSSS.S jjrS rSrg)ValidateInStrings>   N)_deprecated_sincec                ~   ^ Xl         TU l        X@l        U4S jnU Vs0 s H  oe" U5      U_M     snU l        gs  snf )z#*valid* is a list of legal strings.c                 6   > T(       a  U R                  5       $ U $ r   )lower)s
ignorecases    r   func(ValidateInStrings.__init__.<locals>.funcF   s    wwy r    N)keyr8   r3   valid)r   r;   r<   r8   r3   r9   ks      `   r   __init__ValidateInStrings.__init__?   s?     $!2	
 +00%Qd1gqj%0
0s   :c                   ^  T R                   (       aD  U 4S j[        5       R                  5        5       u  n[        R                  " T R                   USS9  T R
                  (       a%  [        U[        5      (       a  UR                  5       nUT R                  ;   a  T R                  U   $ U< ST R                   S/ T R                  R                  5       Q 3n[        U[        5      (       ap  UR                  S5      (       a  UR                  S5      (       d,  UR                  S5      (       a.  UR                  S5      (       a  USS	 T R                  ;   a  US
-  n[        U5      e)Nc              3   :   >#    U  H  u  pUTL d  M  Uv   M     g 7fr   r(   ).0r=   vr   s      r   	<genexpr>-ValidateInStrings.__call__.<locals>.<genexpr>O   s     B#441T	QQ#4s   	function)nameobj_typez is not a valid value for z; supported values are "'   z'; remove quotes surrounding your string)r3   globalsitemsr   warn_deprecatedr8   
isinstancestrr6   r<   r;   values
startswithendswith
ValueError)r   r7   rG   msgs   `   r   __call__ValidateInStrings.__call__M   s   !!B79??#4BED  &&TJH??z!S11	A

?::a= 0
 ;,

))+,-/q#\\#&&1::c??S))ajjooaGtzz)<<Cor    )r3   r8   r;   r<   F)r)   r*   r+   r,   r>   rW   r/   r(   r    r   r1   r1   >   s    1#'1r    r1   F)ndocc                @  ^ ^^ UUU 4S jn T R                    S3Ul         UR                  R	                  SS5      S   S-   UR                   -   Ul        Ub  X4l        U$ T R
                  Ul        U$ ! [         a     [        T 5      R                    S3Ul          N{f = f)Nc                   > [        U [        5      (       aN   U R                  S5       Vs/ s H0  nUR                  5       (       d  M  T" UR                  5       5      PM2     nnO{[
        R                  " U 5      (       aR  [        U [        [        45      (       d7  U  Vs/ s H)  n[        U[        5      (       a	  U(       d  M!  T" U5      PM+     nnO[        SU  35      eTb,  [        U5      T:w  a  [        ST S[        U5       SU  35      eU$ s  snf ! [         aM    T(       aD  U  Vs/ s H/  oR                  5       (       d  M  T" UR                  5       5      PM1     Os  snf nn Ne f = fs  snf )N,z0Expected str or other non-set iterable, but got z	Expected z values, but there are z values in )rP   rQ   splitstrip	Exceptionnpiterableset	frozensetrU   len)r7   rC   valallow_stringlistrZ   scalar_validators      r   f_listify_validator.<locals>.fc   sP   a	<=GGCL %Lq'') 3'	2L % [[^^Jq3	2B$C$C
 12 31$Q,, '#A&C 3C B1#FH H=SX]A35c#hZ{1#NP P
1% # ABO1WWY6+AGGI6OCOC3sF   D DD"D  E0E0D E-+E"E"!E-+E-listList.rK   r   )r)   AttributeErrortyper+   rsplit__doc__)ri   rh   rZ   r[   rj   s   ```  r   _listify_validatorrs   `   s    :>(112$7
 ^^**3215;ajjHANIH -=,D,DAIH	  >-.778=
>s   A3 3'BBc                     U $ r   r(   r7   s    r   validate_anyrv      s    Hr    c                 n     [         R                  " U 5        U $ ! [         a    [        U < S35      ef = f)Nz: should be a string that can be parsed by numpy.datetime64)rb   
datetime64rU   ru   s    r   _validate_datery      sD    P
a PeMNP 	PPs    4c                     [        U [        5      (       a  U R                  5       n U S;   a  gU S;   a  g[        SU < S35      e)zConvert b to ``bool`` or raise.)tyyesontrue1rK   TT)rj   rZ   noofffalse0r   FFzCannot convert z to boolrP   rQ   r6   rU   )bs    r   validate_boolr      sF    !SGGI99	
=	=?1%x899r    c                      [        U 5      $ ! [         a     [        U [        5      (       a  U S:X  a   g Of = f[        U < S35      e)Nlinez0 cannot be interpreted as True, False, or "line")r   rU   rP   rQ   ru   s    r   validate_axisbelowr      sV    Q aF{ u / / 0 0s   
 %77c                 v    U S:X  a  U $  [        U 5      $ ! [         a  n[        U < SU < S35      UeSnAff = f)z<Confirm s is string 'figure' or convert s to float or raise.figurez. is not string "figure" and could not convert z	 to floatNfloatrU   r7   es     r   validate_dpir      sU    H}EQx EA5 !../U)= >CD	EEs   
 
838)
allow_nonec                   ^ ^ UU 4S jnST R                    3Ul         T(       a  U=R                   S-  sl         UR                  R                  SS5      S   S-   UR                   -   Ul        U$ )zd
Return a validator that converts inputs to *cls* or raises (and possibly
allows ``None`` as well).
c                 *  > T(       a   U b  [         R                  " U S5      (       a  g T[        L a%  [        U [        5      (       d  [	        SU < S35      e T" U 5      $ ! [
        [        4 a"  n[	        SU < STR                   35      UeS nAff = f)NnonezCould not convert z to strz to )r   _str_lower_equalrQ   rP   rU   	TypeErrorr)   )r7   r   r   clss     r   	validator'_make_type_validator.<locals>.validator   s    e44Q??#:jC001!g>??	Eq6M:& 	E$QEcll^<>CDE	Es   A   B0BB	validate__or_Nonern   rK   r   )r)   r+   rq   )r   r   r   s   `` r   _make_type_validatorr      sk    
E %S\\N3Ij(%%c1-a0369K9KK r    Tzreturn a list of strings)r[   zreturn a list of floatsc                      [        U 5      $ ! [         a4  n [        U 5      s S nA$ ! [         a  n[        S5      UeS nAff = fS nAff = f)Nz#Supported markers are [string, int])validate_intrU   validate_stringr   s     r   _validate_markerr      sT    KA K	K"1%% 	KBCJ	KKs,   
 
A
(A
A>AAAzreturn a list of markersc                     [        U [        [        R                  45      (       a  [        R                  " U 5      $ [        U 5      $ r   )rP   rQ   osPathLikefsdecoder   ru   s    r   _validate_pathliker      s3    !c2;;'(( {{1~q!!r    c                 2   SSS.n [        U 5      nX!R                  5       ;  a%  [        S[        UR                  5       5      -  5      eU$ ! [         a@     XR	                  5          s $ ! [
         a  n[        S[        U5      -  5      UeSnAff = ff = f)zT
Confirm that this is a Postscript or PDF font type that we know how to
convert to.
   *   )type3truetypez*Supported Postscript/PDF font types are %sN)r   rR   rU   rl   r6   KeyError)r7   	fonttypesfonttyper   s       r   validate_fonttyper      s    
 !I? ++--<Y%%'()* *   7	7WWY'' 	7I#I/ 0567	77s/   A 
BA+(B+
B5BBBc                     U [         L d  [        R                  " U 5      (       a  U $ SU  S[        R                  " 5        3n[	        U5      e)NrJ   z9' is not a valid value for backend; supported values are )_auto_backend_sentinelr	   is_valid_backendlist_allrU   )r7   rV   s     r   validate_backendr     sK    ""&6&G&G&J&J1#N"++-.0or    c                 d    [        S/ SQSS9" U 5      n U S:X  a  [        R                  " S5        U $ )Ntoolbar)Nonetoolbar2toolmanagerTr8   r   zyTreat the new Tool classes introduced in v1.5 as experimental for now; the API and rcParam may change in future versions.)r1   r   warn_externalru   s    r   _validate_toolbarr     sB    64	IIJ	LAMJ	K Hr    c                 T    [         R                  " U S5      (       a  U $ [        U 5      $ )Return a valid color arg.inheritr   
_str_equalvalidate_colorru   s    r   validate_color_or_inheritr   #  s%    9%%!r    c                 T    [         R                  " U S5      (       a  U $ [        U 5      $ )Nautor   ru   s    r   validate_color_or_autor   *  s%    6""!r    c                     [        U [        5      (       a,  [        R                  " SU 5      (       a  [	        SU < S35      e[        U 5      $ )Nz^C[0-9]$zCannot put cycle reference (z) in prop_cycler)rP   rQ   rematchrU   r   ru   s    r   validate_color_for_prop_cycler   0  s@    !Sbhhz1557u<LMNN!r    c                 ,   [         R                  " U S5      (       a  U $ [         R                  " U S5      (       d  [         R                  " U S5      (       a  g[         R                  " U S5      (       d  [         R                  " U S5      (       a  gU c  g [        U [        5      (       a  [	        U 5      S:X  d  [	        U 5      S:X  a-  SU -   n[        U5      (       a  U$ U R                  5       S	:X  a  g O[        U 5      (       a  U $ [        U < S
35      e)N	linecolormfcmarkerfacecolormecmarkeredgecolor      #r    does not look like a color arg)r   r   rP   rQ   rf   r   r6   rU   )r7   stmps     r   _validate_color_or_linecolorr   7  s    ;''			!U	#	#u'7'7;L'M'M 			!U	#	#u'7'7;L'M'M 	
	As		A!s1v{QwK779 	q		
u;<
==r    c                    [        U [        5      (       aJ  U R                  5       S:X  a  g[        U 5      S:X  d  [        U 5      S:X  a  SU -   n[	        U5      (       a  U$ [	        U 5      (       a  U $  [
        R                  " U 5      n[	        U5      (       a  U$  [        U < S35      e! [        [        4 a     N!f = f)r   r   r   r   r   r   )	rP   rQ   r6   rf   r   astliteral_evalSyntaxErrorrU   )r7   r   colors      r   r   r   L  s    !S779q6Q;#a&A+7DT""Q  # L   u;<
== $ s   3B+ +B>=B>zreturn a list of colorspecs)rh   r[   c                 D    [         R                  " [        [        4U S9  U $ )N)cmap)r   check_isinstancerQ   r   ru   s    r   _validate_cmapr   i  s    3/2Hr    c                 f    U S;   a  U $  [        U 5      $ ! [         a  n[        S5      UeS nAff = f)N)r   equalz not a valid aspect specificationr   r   s     r   validate_aspectr   n  s?    DQx D;<!CDs   
 
0+0c                 ,    U b  U S:X  a  g [        U 5      $ )Nr   )validate_fontsizeru   s    r   validate_fontsize_Noner   w  s    yAK ##r    c                     / SQn[        U [        5      (       a  U R                  5       n X;   a  U $  [        U 5      $ ! [         a(  n[	        U < SSR                  U5      < S35      UeS nAff = f)N)	zxx-smallzx-smallsmallmediumlargezx-largezxx-largesmallerlargerz0 is not a valid font size. Valid font sizes are z, rn   )rP   rQ   r6   r   rU   join)r7   	fontsizesr   s      r   r   r   ~  sq    =I!SGGI~GQx G&'9)=? @EF	GGs   
= 
A/#A**A/c                 ~    / SQnX;   a  U $  [        U 5      $ ! [        [        4 a  n[        U  S35      UeS nAff = f)N)
ultralightlightnormalregularbookr   romansemibolddemibolddemiboldheavyz
extra boldblackz is not a valid font weight.intrU   r   )r7   weightsr   s      r   validate_fontweightr     sQ    PG 	|D1v	" DA3:;<!CD   
 <7<c                 ~    / SQnX;   a  U $  [        U 5      $ ! [        [        4 a  n[        U  S35      UeS nAff = f)N)	zultra-condensedzextra-condensed	condensedzsemi-condensedr   zsemi-expandedexpandedzextra-expandedzultra-expandedz is not a valid font stretch.r   )r7   stretchvaluesr   s      r   validate_fontstretchr    sQ    M
 	E1v	" EA3;<=1DEr   c                     [        U 5        U $ r   r   ru   s    r   validate_font_propertiesr    s    QHr    c                     / SQn[        U [        5      (       a  U R                  5       n U b  U S:X  a  g U R                  5       U;   a  U $ [        U  SSR	                  U5       S35      e)N)cmstixstixsansr   zB is not a valid fallback font name. Valid fallback font names are r^   z(. Passing 'None' will turn fallback off.)rP   rQ   r6   rU   r   )r7   _fallback_fontss     r   _validate_mathtext_fallbackr    sp    0O!SGGIyAK	
o	%c /23 4 	r    c                      [        [        SS9" U 5      $ ! [        [        4 a-     [	        U 5      s $ ! [         a  n[        S5      UeS nAff = ff = f)N   rZ   z1Not a valid whisker value [float, (float, float)])rs   validate_floatr   rU   r   r   s     r   validate_whiskersr    s`    7!.A6q99z" 7	78O 	7 / 0567	77s(    A
4A
AA

AAc                     [        U [        5      (       a  U R                  5       n U S;   a  g [        SSS/5      " U 5      $ )N)r   Nr   Fps.usedistillerghostscriptxpdf)rP   rQ   r6   r1   ru   s    r   validate_ps_distillerr    s>    !SGGI** !2]F4KLQOOr    	linestyler   r     r   c                    [        U [        5      (       a   [        U 5      $ S nU" U 5      (       ai  [        U 5      S:X  a  U" U S   5      (       a  U u  p#OSnU n[        U[        5      (       a,  [        U5      S-  S:X  a  [        S U 5       5      (       a  X#4$ [        SU < S35      e! [         a     Of = f [        R
                  " U 5      n N! [        [        4 a     Nf = f)zZ
A validator for all possible line styles, the named ones *and*
the on-off ink sequences.
c                 |    [         R                  " U 5      =(       a     [        U [        [        [
        45      (       + $ r   )rb   rc   rP   rQ   bytes	bytearray)xs    r   _is_iterable_not_string_like9_validate_linestyle.<locals>._is_iterable_not_string_like  s(     {{1~LjS%4K&L"LLr    r  rK   r   c              3   B   #    U  H  n[        U[        5      v   M     g 7fr   rP   r   )rB   elems     r   rD   &_validate_linestyle.<locals>.<genexpr>  s     A54
4..5   z
linestyle z$ is not a valid on-off ink sequence.)
rP   rQ   _validate_named_linestylerU   r   r   r   rf   r   all)lsr  offsetonoffs       r   _validate_linestyler+    s    
 "c	,R00M
 $B''r7a<8A??MFE FEvt$$JNa'A5AAA?"
z"'KL
MM5  			!!"%BZ( 		s#   
B+ +
B87B8<C C&%C&zmarkers.fillstyle)fullleftrightbottomtopr   c           	         [        U [        [        [        [	        S5      45      (       a  U $ [        U [
        5      (       aJ  [        U 5      S:X  a0  [        S U  5       5      (       d  [        S U  5       5      (       a  U $ [        S5      e[        U [        5      (       a$  [        S U  5       5      (       a  U $ [        S5      e[        S5      e)	z
Validate the markevery property of a Line2D object.

Parameters
----------
s : None, int, (int, int), slice, float, (float, float), or list[int]

Returns
-------
None, int, (int, int), slice, float, (float, float), or list[int]
Nr  c              3   B   #    U  H  n[        U[        5      v   M     g 7fr   rP   r   rB   r   s     r   rD   %validate_markevery.<locals>.<genexpr>  s     7QAs++Qr%  c              3   B   #    U  H  n[        U[        5      v   M     g 7fr   )rP   r   r4  s     r   rD   r5    s     <!QJq%00!r%  z3'markevery' tuple must be pair of ints or of floatsc              3   B   #    U  H  n[        U[        5      v   M     g 7fr   r3  r4  s     r   rD   r5     s     -1az!S!!1r%  z3'markevery' list must have all elements of type intz!'markevery' is of an invalid type)
rP   slicer   r   rp   tuplerf   r'  r   rl   ru   s    r   validate_markeveryr:    s     !eUCd455!UFaK7Q777<!<<<HEG G !T-1---HEG G
7
88r    c                     [        U [        5      (       a*  U R                  5       n U S:X  a  U $ U S:X  a  g [        S5      eU b  [        S5      eU $ )Ntightstandardz$bbox should be 'tight' or 'standard'r   ru   s    r   validate_bboxr>  +  sR    !SGGI<H
??@@	
?@@Hr    c                 V   [        U [        5      (       aO  U R                  5       R                  5       n U R	                  S5      (       a  U R                  S5      (       a  U SS n U S:X  d  U c  g  [        [        [        SS9" U 5      5      $ ! [         a  n[        S5      UeS nAff = f)	N()rK   rL   r   r   r  z,Expected a (scale, length, randomness) tuple)
rP   rQ   r6   r`   rS   rT   r9  rs   r  rU   )r7   excs     r   validate_sketchrC  9  s    !SGGIOO<<C!BAF{aiR'!<Q?@@ RGHcQRs   0B 
B(B##B(c                 D    [        U 5      n U S:  a  U $ [        SU  35      e)Ng      zValue must be >-0.5; got r  RuntimeErrorru   s    r   _validate_greaterthan_minushalfrG  G  s+    qA4x6qc:;;r    c                 V    [        U 5      n SU s=::  a  S::  a   U $   [        SU  35      e)Nr   rK   zValue must be >=0 and <=1; got rE  ru   s    r   "_validate_greaterequal0_lessequal1rI  O  s6    qAA{{  <QC@AAr    c                 D    [        U 5      n U S:  a  U $ [        SU  35      e)Nr   zValue must be >=0; got )r   rF  ru   s    r   _validate_int_greaterequal0rK  W  s*    QAAv4QC899r    c                     [        U [        5      (       d  [        S5      e[        R                  " [        U S9  [        U 5      1 Sk-
  nU(       a  [        S[        U5      -  5      eU $ )z~
Validate a hatch pattern.
A hatch pattern string can have any sequence of the following
characters: ``\ / | - + * . x o O``.
zHatch pattern must be a string)hatch_pattern>
   *+-rn   /O\or  |zUnknown hatch symbol(s): %s)rP   rQ   rU   r   r   rd   rl   )r7   unknowns     r   validate_hatchrW  _  sY     a9::#Q/!fJJG6gFGGHr    c                     [         R                  " U S5      (       a  U $  [        U 5      n U $ ! [        [        4 a     Of = f[	        S5      e)z
Validate ndiv parameter related to the minor ticks.
It controls the number of minor ticks to be placed between
two major ticks.
r   z5'tick.minor.ndivs' must be 'auto' or non-negative int)r   r   rK  rF  rU   r  s    r   _validate_minor_tick_ndivsrY  r  sU     a(('**%  L
MMs   - A A r   )rh   	linewidth	facecolor	edgecolor	joinstylecapstyle	fillstyler   
markersizemarkeredgewidthr   	markeveryalphamarkerhatchdashes)	clwr(  fcecr   r   mewmsc                     U (       a  U(       a  [        S5      eU (       d  U(       d  [        S5      e[        U 5      S:X  a1  [        U S   [        5      (       d  [        S5      e[	        U S   5      $ [        U 5      S:X  a  U S   U S   4/nO@[        U 5      S:  a!  [
        R                  " SS[        U 5      5      eUR                  5       n/ nU H[  u  pE[        R                  XD5      n[        R                  US	5      nUc  [        S
U-  5      eU" U5      nUR                  Xe45        M]     [        [        R                  S U 5       5      $ )a  
Create a `~cycler.Cycler` object much like :func:`cycler.cycler`,
but includes input validation.

Call signatures::

  cycler(cycler)
  cycler(label=values, label2=values2, ...)
  cycler(label, values)

Form 1 copies a given `~cycler.Cycler` object.

Form 2 creates a `~cycler.Cycler` which cycles over one or more
properties simultaneously. If multiple properties are given, their
value lists must have the same length.

Form 3 creates a `~cycler.Cycler` for a single property. This form
exists for compatibility with the original cycler. Its use is
discouraged in favor of the kwarg form, i.e. ``cycler(label=values)``.

Parameters
----------
cycler : Cycler
    Copy constructor for Cycler.

label : str
    The property key. Must be a valid `.Artist` property.
    For example, 'color' or 'linestyle'. Aliases are allowed,
    such as 'c' for 'color' and 'lw' for 'linewidth'.

values : iterable
    Finite-length iterable of the property values. These values
    are validated and will raise a ValueError if invalid.

Returns
-------
Cycler
    A new :class:`~cycler.Cycler` for the given properties.

Examples
--------
Creating a cycler for a single property:

>>> c = cycler(color=['red', 'green', 'blue'])

Creating a cycler for simultaneously cycling over multiple properties
(e.g. red circle, green plus, blue cross):

>>> c = cycler(color=['red', 'green', 'blue'],
...            marker=['o', '+', 'x'])

zEcycler() can only accept positional OR keyword arguments -- not both.z2cycler() must have positional OR keyword argumentsrK   r   zDIf only one positional argument given, it must be a Cycler instance.r  r   z0-2NzUnknown artist property: %sc              3   <   #    U  H  u  p[        X5      v   M     g 7fr   )ccycler)rB   r=   rC   s      r   rD   cycler.<locals>.<genexpr>  s      E9419s   )r   rf   rP   r   validate_cyclerr   nargs_errorrN   _prop_aliasesget_prop_validatorsappendr   operatoradd)argskwargspairs	validatedpropvals	norm_propr   s           r   r   r     s8   j  1 2 	2&LMM
4yA~$q'6** 4 5 5tAw''	Taq'47#$	TQxD	::I
!%%d1	$((D9	9D@AA 	)*+  (,, E9 EFFr    c                       \ rS rSrS rSrg)_DunderCheckeri  c                     UR                   R                  S5      (       a+  UR                   R                  S5      (       a  [        S5      eU R	                  U5        g )N__z)cycler strings with dunders are forbidden)attrrS   rT   rU   generic_visit)r   nodes     r   visit_Attribute_DunderChecker.visit_Attribute  sE    99%%$))*<*<T*B*BHII4 r    r(   N)r)   r*   r+   r,   r  r/   r(   r    r   r  r    s    !r    r  z
legend.loc)bestzupper rightz
upper leftz
lower leftzlower rightr.  zcenter leftzcenter rightzlower centerzupper centercenterc                    [        U [        5      (       a   [        U 5      $ [        U [        5      (       a  SU s=::  a  S::  a   U $   [        U [        5      (       a(  [        U 5      S:X  a  [        S U  5       5      (       a  U $ [        U  S35      e! [         a     Of = f [        R
                  " U 5      n N! [        [        4 a     Nf = f)a9  
Confirm that loc is a type which rc.Params["legend.loc"] supports.

.. versionadded:: 3.8

Parameters
----------
loc : str | int | (float, float) | str((float, float))
    The location of the legend.

Returns
-------
loc : str | int | (float, float) or raise ValueError exception
    The location of the legend.
r   
   r  c              3   B   #    U  H  n[        U[        5      v   M     g 7fr   r"  r4  s     r   rD   '_validate_legend_loc.<locals>.<genexpr>)  s      BcAt!4!4cr%  z  is not a valid legend location.)rP   rQ   _validate_named_legend_locrU   r   r   r   r   r9  rf   r'  )locs    r   _validate_legend_locr    s      #s	-c22 #s>r>J #us8q=S Bc BBBJ
u<=
>>  			""3'CZ( 		s#   
B 
B B $B; ;CCc                    [        U [        5      (       aA   [        5       R                  [        R
                  " U 5      5        [        U [        0 S.5      n [        U [        5      (       a  U nO[        SU < 35      eUR                  [        [        5      [        [        5      -  -
  nU(       a  [        SU-  5      e[        5       nUR                   Hk  n[        R                  XU5      nXe:w  a#  XbR                  ;   a  [        SU< SU< S35      eXd;   a  [        S	U< S
U< S35      eUR!                  U/5        Mm     [#        U5      [#        UR                  5      :X  d   eUR                   H)  n[        R                  XU5      nUR%                  XV5        M+     UR'                  5       R)                  5        H  u  px[        U   " U5        M     U$ ! [         a  n[        U < SU 35      UeSnAff = f)z?Return a Cycler object from a string repr or the object itself.)r   __builtins__z% is not a valid cycler construction: Nz+Object is not a string or Cycler instance: zUnknown artist properties: %szCannot specify both z and alias z in the same prop_cyclez(Another property was already aliased to z. Collision normalizing rn   )rP   rQ   r  visitr   parseevalr   BaseExceptionrU   r   keysrd   ru  rs  rt  updaterf   
change_keyby_keyrN   )	r7   r   cycler_instunknownscheckerr}  r  r;   r~  s	            r   rq  rq  .  s   !S	&""399Q<0Q62>?A !VFqeLMM3'7#83};M#MNH88CDD eG  !%%d1	.>.>!>3I= $x'>@ A AG )},DTHAO P P	{# ! w<3{//0000   !%%d1	t/ ! !'')//1	d# 2 O  	&u$I!M $%&	&s   A G 
G:#G55G:c                     / SQn[        U [        5      (       a  X;   a  U $  [        U 5      $ ! [        [        4 a     Of = f [        U 5      $ ! [         a     Of = f[	        SU S35      e)N)r   sturgesfddoanescottricesqrtz'hist.bins' must be one of z , an int or a sequence of floats)rP   rQ   r   r   rU   validate_floatlist)r7   
valid_strss     r   validate_hist_binsr  i  s    LJ!Sao1vz" !!$$ 
2:, ?- - . .s    
- A A 
A 
AAc                       \ rS rSrSrSrg)_ignorecaseiy  zAA marker class indicating that a list-of-str is case-insensitive.r(   N)r)   r*   r+   r,   rr   r/   r(   r    r   r  r  y  s    Kr    r  c                 d    [        U[        5      (       a  [        U[        5      n[        XUS9$ U$ )Nr   )rP   rl   r  r1   )r;   convr8   s      r   _convert_validator_specr  }  s-    $k2
 zBBr    backendbackend_fallbackzfigure.hooksr   interactivetimezonezwebagg.portzwebagg.addresszwebagg.open_in_browserzwebagg.port_retrieszlines.linewidthzlines.linestylezlines.colorzlines.markerzlines.markerfacecolorzlines.markeredgecolorzlines.markeredgewidthzlines.markersizezlines.antialiasedzlines.dash_joinstylezlines.solid_joinstylezlines.dash_capstylezlines.solid_capstylezlines.dashed_patternzlines.dashdot_patternzlines.dotted_patternzlines.scale_dasheszpcolor.shading)r   flatnearestgouraudzpcolormesh.snapzpatch.linewidthzpatch.edgecolorzpatch.force_edgecolorzpatch.facecolorzpatch.antialiasedzhatch.colorzhatch.linewidthz	hist.binszboxplot.notchzboxplot.verticalzboxplot.whiskerszboxplot.bootstrapzboxplot.patchartistzboxplot.showmeanszboxplot.showcapszboxplot.showboxzboxplot.showflierszboxplot.meanlinezboxplot.flierprops.colorzboxplot.flierprops.markerz"boxplot.flierprops.markerfacecolorz"boxplot.flierprops.markeredgecolorz"boxplot.flierprops.markeredgewidthzboxplot.flierprops.markersizezboxplot.flierprops.linestylezboxplot.flierprops.linewidthzboxplot.boxprops.colorzboxplot.boxprops.linewidthzboxplot.boxprops.linestylezboxplot.whiskerprops.colorzboxplot.whiskerprops.linewidthzboxplot.whiskerprops.linestylezboxplot.capprops.colorzboxplot.capprops.linewidthzboxplot.capprops.linestylezboxplot.medianprops.colorzboxplot.medianprops.linewidthzboxplot.medianprops.linestylezboxplot.meanprops.colorzboxplot.meanprops.markerz!boxplot.meanprops.markerfacecolorz!boxplot.meanprops.markeredgecolorzboxplot.meanprops.markersizezboxplot.meanprops.linestylezboxplot.meanprops.linewidthzfont.familyz
font.stylezfont.variantzfont.stretchzfont.weightz	font.sizez
font.serifzfont.sans-serifzfont.cursivezfont.fantasyzfont.monospacez
text.colorztext.usetexztext.latex.preambleztext.hinting)defaultno_autohintforce_autohint
no_hintingr   nativeeitherr   ztext.hinting_factorztext.kerning_factorztext.antialiasedztext.parse_mathzmathtext.calzmathtext.rmzmathtext.ttzmathtext.itzmathtext.bfzmathtext.bfitzmathtext.sfzmathtext.fontset)
dejavusansdejavuserifr  r	  r
  customzmathtext.default)rmcalbfititttsfbfr  bbfrakscrr   zmathtext.fallbackzimage.aspectzimage.interpolationzimage.interpolation_stage)r   datargbaz
image.cmapz	image.lutzimage.originupperr6   zimage.resamplezimage.composite_imagezcontour.negative_linestylezcontour.corner_maskzcontour.linewidthzcontour.algorithm)mpl2005mpl2014serialthreadedzerrorbar.capsizezxaxis.labellocation)r-  r  r.  zyaxis.labellocation)r/  r  r0  zaxes.axisbelowzaxes.facecolorzaxes.edgecolorzaxes.linewidthzaxes.spines.leftzaxes.spines.rightzaxes.spines.bottomzaxes.spines.topzaxes.titlesizezaxes.titlelocationzaxes.titleweightzaxes.titlecolorzaxes.titleyzaxes.titlepadz	axes.gridzaxes.grid.which)minorbothmajorzaxes.grid.axis)r  r|   r  zaxes.labelsizezaxes.labelpadzaxes.labelweightzaxes.labelcolorzaxes.formatter.limitsr  r  zaxes.formatter.use_localezaxes.formatter.use_mathtextzaxes.formatter.min_exponentzaxes.formatter.useoffsetzaxes.formatter.offset_thresholdzaxes.unicode_minuszaxes.prop_cyclezaxes.autolimit_moder  round_numberszaxes.xmarginzaxes.ymarginzaxes.zmarginzpolaraxes.gridzaxes3d.gridzaxes3d.automarginzaxes3d.xaxis.panecolorzaxes3d.yaxis.panecolorzaxes3d.zaxis.panecolorzaxes3d.mouserotationstyle)azel	trackballspherearcballzaxes3d.trackballsizezaxes3d.trackballborderzscatter.markerzscatter.edgecolorsz
date.epochzdate.autoformatter.yearzdate.autoformatter.monthzdate.autoformatter.dayzdate.autoformatter.hourzdate.autoformatter.minutezdate.autoformatter.secondzdate.autoformatter.microsecondzdate.converterr   concisezdate.interval_multipleszlegend.fancyboxzlegend.numpointszlegend.scatterpointszlegend.fontsizezlegend.title_fontsizezlegend.labelcolorzlegend.markerscalezlegend.shadowzlegend.frameonzlegend.framealphazlegend.borderpadzlegend.labelspacingzlegend.handlelengthzlegend.handleheightzlegend.handletextpadzlegend.borderaxespadzlegend.columnspacingzlegend.facecolorzlegend.edgecolorz	xtick.topzxtick.bottomzxtick.labeltopzxtick.labelbottomzxtick.major.sizezxtick.minor.sizezxtick.major.widthzxtick.minor.widthzxtick.major.padzxtick.minor.padzxtick.colorzxtick.labelcolorzxtick.minor.visiblezxtick.minor.topzxtick.minor.bottomzxtick.major.topzxtick.major.bottomzxtick.minor.ndivszxtick.labelsizezxtick.direction)outininoutzxtick.alignment)r  r.  r-  z
ytick.leftzytick.rightzytick.labelleftzytick.labelrightzytick.major.sizezytick.minor.sizezytick.major.widthzytick.minor.widthzytick.major.padzytick.minor.padzytick.colorzytick.labelcolorzytick.minor.visiblezytick.minor.leftzytick.minor.rightzytick.major.leftzytick.major.rightzytick.minor.ndivszytick.labelsizezytick.directionzytick.alignment)r  r0  r/  baselinecenter_baselinez
grid.colorzgrid.linestylezgrid.linewidthz
grid.alphazfigure.titlesizezfigure.titleweightzfigure.labelsizezfigure.labelweightzfigure.figsizez
figure.dpizfigure.facecolorzfigure.edgecolorzfigure.frameonzfigure.autolayoutzfigure.max_open_warningzfigure.raise_windowzmacosx.window_mode)systemtabwindowzfigure.subplot.leftzfigure.subplot.rightzfigure.subplot.bottomzfigure.subplot.topzfigure.subplot.wspacezfigure.subplot.hspacezfigure.constrained_layout.usez figure.constrained_layout.hspacez figure.constrained_layout.wspacezfigure.constrained_layout.h_padzfigure.constrained_layout.w_padzsavefig.dpizsavefig.facecolorzsavefig.edgecolorzsavefig.orientation	landscapeportraitzsavefig.formatzsavefig.bboxzsavefig.pad_incheszsavefig.directoryzsavefig.transparentztk.window_focuszps.papersizer   letterlegalledgerab   z	ps.useafmr  zps.distiller.reszps.fonttypezpdf.compressionzpdf.inheritcolorzpdf.use14corefontszpdf.fonttypezpgf.texsystem)xelatexlualatexpdflatexzpgf.rcfontszpgf.preamblezsvg.image_inlinezsvg.fonttypepathzsvg.hashsaltzsvg.idzdocstring.hardcopyzpath.simplifyzpath.simplify_thresholdz	path.snapzpath.sketchzpath.effectszagg.path.chunksizezkeymap.fullscreenzkeymap.homezkeymap.backzkeymap.forwardz
keymap.panzkeymap.zoomzkeymap.savezkeymap.quitzkeymap.quit_allzkeymap.gridzkeymap.grid_minorzkeymap.yscalezkeymap.xscalezkeymap.helpzkeymap.copyzanimation.html)html5jshtmlr   zanimation.embed_limitzanimation.writerzanimation.codeczanimation.bitratezanimation.frame_format)
pngjpegtiffrawr  ppmsgibmppbmsvgzanimation.ffmpeg_pathzanimation.ffmpeg_argszanimation.convert_pathzanimation.convert_argsz_internal.classic_moderY   )nrr   r   	functoolsr   r   numbersr   rw  r   r   numpyrb   
matplotlibr   r   matplotlib.backendsr   r	   matplotlib.cbookr
   matplotlib.colorsr   r   matplotlib._fontconfig_patternr   matplotlib._enumsr   r   r   r   ro  caching_module_getattrr   r1   rs   rv   validate_anylistry   r   r   r   r   rQ   r   validate_string_or_Nonevalidate_stringlistr   r   validate_int_or_Noner   r  validate_float_or_Noner  r   _validate_markerlistr   r   objectr   r   r   r   r   r   r   r   validate_colorlistr   r   r   r   validate_fontsizelistr   r  r  r  r  r  r  rR   r&  r+  validate_fillstylevalidate_fillstylelistr:  validate_markeverylistr>  rC  rG  rI  rK  rW  validate_hatchlistvalidate_dashlistrY  ru  rs  NodeVisitorr  r  r  rq  r  rl   r  r  range_validators_hardcoded_defaultsrN   )r  ir=   r  s   0000r   <module>r     s    '   	 	  " ? & 5 C 1 - / / /2 D %4% %P%l3 P	:0E -2 4 's+.stD (35 #C(+CDA %e,-eE '13 K *46 ".   >*>2 (T/LN 
D$G ++<= 
DE
7P .EinnE))+EVEVESE"E "NJ 'KM  ,,>? 9D ,,>? R<B: (7 &'9: N$#$A59; 	' 	'(;<	
 	' 	' 	'	2 	&x0 	+ 	- 	( 	- 	- 	+ 	#  	&!" 	##$ 	#% *    
RGj!S__ ! /
  ?D8v. L$ LG)GG ,G *	G
 G G lG oG mG lG ^G 0G  ^!G" -#G$ 3%G& 3'G( ^)G* ^+G, ]-G. Y/G0 Y1G2 X3G4 X5G6 /7G8 /9G: /;G< ]=GB +CGH <IGJ }KGP ^QGR ^SGT ]UGV ^WGX ]YG^ ~_G` ~aGf #gGl =mGn =oGp ,qGr /sGt =uGv =wGx =yGz ={G| =}G~ =GB .CGD  *:EGF )*@GGH ).IGJ ).KGL $.MGN #*=OGP #.QGT .UGV !.WGX !"5YG\ !n]G^ %n_G` %&9aGd .eGf !.gGh !"5iGl  ^mGn $^oGp $%8qGt uGv )9wGx (yGz ({G| #}G~ ")<G@ "AGF *GGH IGJ KGL +MGN *OGP ~QGR *SGT *UGV *WGX *YGZ *[G` >aGb =cGd ?eGf  NgGj <kGl <mGn =oGp =qGt 7uGv 7wGx 7yGz 7{G| 7}G~ 7G@ 7AGB   6CGF   @GGJ :KGN OGP QGR  !9SGT UGV WGX '7!3YGZ [G` ]aGf !"5gGh -iGj "8kGl "NmGr sGz 6{G| 6}GB /CGD ^EGF ^GGH ^IGL ]MGN ]OGP ]QGR ]SGV +WGX 5YGZ -[G\ 0]G` 0aGd .eGf -gGh 4iGj ,kGl +mGn .oGp -qGr .sGx /ByG|  }G~ "=GB "<CGD EGF &|GGH -IGN OGT FO4UGV 3WGX 3YGZ 3[G^ _G` aGb cGh iGj kGl mGp  !KqGr NsGt nuGz *{G| /}G@ .AGB oCGD oEGF oGGH oIGJ  oKGL  oMGN %oOGR 	2SGV }WG\ }]G^ &_Gd \eGh \iGj .kGl 3mGp 9qGt ^uGx ]yG| ]}G@ 3AGF ^GGJ ^KGN ^OGR ^SGV ^WGZ ^[G^ ^_G` 6aGb 6cGh =iGj =kGl =mGn =oGp >qGr >sGt >uGv >wGx >yGz >{G| >}G~ 4G@	 =A	GB	 =C	GD	 =E	GF	 =G	GH	 =I	GL	 5M	GN	 ,O	GP	 1Q	GR	 6S	GV	 =W	GX	 =Y	GZ	 =[	G\	 =]	G^	 >_	G`	 >a	Gb	 >c	Gd	 >e	Gf	 >g	Gh	 >i	Gj	 >k	Gl	 4m	Gn	 =o	Gp	 =q	Gr	 =s	Gt	 =u	Gv	 =w	Gz	 5{	G|	 ,}	G~	 1	G@
  BA
GF
 G
GH
 ,I
GJ
 K
GL
 M
GT
 +U
GV
 -W
G\
 +]
G^
 -_
Gd
 1.AFe
Gf
 ~g
Gh
 ~i
Gj
 ~k
Gl
 }m
Gn
 }o
Gp
 |q
Gr
 }s
Gt
 :u
Gx
 ^y
Gz
 ^{
G|
 ^}
G~
 ^
G@ ^AGB ^CGF $]GGL 'MGN 'OGR &~SGT &~UGZ L[G\ 2]G^ 2_G` [*5aGb OcGd MeGf NgGj .kGl MmGp }qGv +!)8Wh !R8<"P"eBiT!:i:"P!RSwG| -}G@ /AGB ,CGD +EGF ,GGH -IGL -MGN +OGR 8SGT ]UGV _WG\ ]G^ VV$_G` +aGb %cGh -iGl }mGn AoGp }qGr sGt /uGv |wG| ,}G~ ,G@ ,AGB ,CGD ,EGF ,GGH ,IGJ ,KGL ,MGN ,OGP ,QGR ,SGT ,UGV ,WGX ,YG^ 9_Gd neGf ogGh oiGj lkGn  ;oGt 0uGx 1yG| 0}G@ 1AGL mMGV e  *//13171 )!2213g #Qf3s   . ^^!