§
    §éUg5_  ã                   ó*  — d dl mZmZ d dlZd dlZd dlmZ d dlm	Z	m
Z
 d dlmZmZ d dlmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z* d d	l+m,Z,  e*egegegegd
œd¬¦  «        d|d dœd„¦   «         Z- G d„ d¦  «        Z. G d„ de¦  «        Z/ej0         1                    deeg¦  «        d„ ¦   «         Z2ej0         1                    deeg¦  «        d„ ¦   «         Z3d„ Z4ej0         1                    d eed dd¬¦  «         eeddd¬¦  «        g¦  «        d„ ¦   «         Z5ej0         1                    dedddd œe6d!fedd"d#d œe6d$fedd dd œe7d%fed dd&d œe7d'fedd(dd œe7d)fg¦  «        d*„ ¦   «         Z8d+„ Z9d,„ Z:ej0         1                    d-e;d.fed.fed/fej<        d0fg¦  «        d1„ ¦   «         Z=d2„ Z>ej0         1                    d3 eedd d¬¦  «         eed dd¬¦  «         eeddd#¬¦  «         eh d4£¦  «         e¦   «          ed¬5¦  «         e&¦   «          ed6¦  «         e ¦   «          e¦   «         g
¦  «        d7„ ¦   «         Z?ej0         1                    d8 eedd9d&¬¦  «         eed:d;d¬¦  «        f eedd9d&¬¦  «         eed:d;d#¬¦  «        f eedd9d&¬¦  «         eed<d;d¬¦  «        f eedd9d&¬¦  «         eed;dd¬¦  «        f eedd9d&¬¦  «         eed<dd#¬¦  «        f eed9dd¬¦  «         eed:d;d¬¦  «        f eed9dd¬¦  «         eed:d;d#¬¦  «        f eed9dd¬¦  «         eeddd¬¦  «        f eed9dd¬¦  «         eedd:d¬¦  «        f eed9dd¬¦  «         eedd=d#¬¦  «        f eed:d;d¬¦  «         eeddd&¬¦  «        f eed:d;d¬¦  «         eeddd¬¦  «        f eed:d;d¬¦  «         eed>d=d#¬¦  «        f eed:d;d¬¦  «         eed>d=d&¬¦  «        f eed:d;d#¬¦  «         eed?d@d#¬¦  «        f eed:d;d#¬¦  «         eed?d@d¬¦  «        f eeddd¬¦  «         eed dd¬¦  «        f eeddd¬¦  «         eed dd¬¦  «        fg¦  «        dA„ ¦   «         Z@ej0         1                    d3 e¦   «          eeA¦  «         e¦   «          e"¦   «          e$¦   «          e%¦   «          e¦   «          eeddd#¬¦  «        g¦  «        dB„ ¦   «         ZBej0         1                    d3 e¦   «          e¦   «          eeA¦  «         e"¦   «          e$¦   «          e%¦   «          e¦   «          e&¦   «          e¦   «          ed¬5¦  «         eh d4£¦  «         eeh dC£¦  «         eeddd#¬¦  «         eed d@d#¬¦  «         eed dd#¬¦  «         eedd d#¬¦  «         eed dd#¬¦  «         eed dd¬¦  «         eedd d&¬¦  «         ed6¦  «         e ¦   «          e¦   «         g¦  «        dD„ ¦   «         ZCej0         1                    dE eed dd¬¦  «        dFf eed dd#¬¦  «        dGf eh d4£¦  «        dHf eeDejE        ejF        h¦  «        ejF        feGdI„ fdJdKddgd9d<ggfdK ejH        ddgd9d<gg¦  «        fdL eddgd9d<gg¦  «        fg	dM„ e,D ¦   «         ¢dN‘dOejI         J                    d ¦  «        f‘dP‘e. e.¦   «         f‘e;df‘edQf‘dR‘dS‘dTejK        f‘ e¦   «         d(f‘ e¦   «         dUf‘ e¦   «         ddVz  f‘ e¦   «         df‘ e¦   «          eLdT¦  «        f‘ e¦   «         ejK        f‘ e¦   «         dWf‘ ed6¦  «         e/d ¬X¦  «        f‘dY‘¦  «        dZ„ ¦   «         ZMej0         1                    d[ eed dd¬¦  «        ef ed\d]h¦  «        ef eedFd^h¦  «        efdKefdLe%fdOe$fde"feGefe;efd_efd`e&f ed¬5¦  «        ef ed6¦  «        efdaefdTe!fg¦  «        db„ ¦   «         ZNdc„ ZOdd„ ZPde„ ZQdf„ ZRdg„ ZSdh„ ZTdi„ ZUdj„ ZVdk„ ZWdl„ ZXdm„ ZYdn„ ZZdo„ Z[dp„ Z\dq„ Z]dr„ Z^ds„ Z_dt„ Z`du„ Zaej0         1                    dvddwg¦  «        dx„ ¦   «         Zbej0         1                    dyg dz¢¦  «        d{„ ¦   «         ZcdS )}é    )ÚIntegralÚRealN)Ú
csr_matrix)Úconfig_contextÚ
get_config)ÚBaseEstimatorÚ_fit_context)ÚLeaveOneOut©Ú
deprecated)Ú
HasMethodsÚHiddenÚIntervalÚInvalidParameterErrorÚMissingValuesÚOptionsÚ
RealNotIntÚ
StrOptionsÚ_ArrayLikesÚ	_BooleansÚ
_CallablesÚ
_CVObjectsÚ_InstancesOfÚ_IterablesNotStringÚ_NanConstraintÚ_NoneConstraintÚ_PandasNAConstraintÚ_RandomStatesÚ_SparseMatricesÚ_VerboseHelperÚgenerate_invalid_param_valÚgenerate_valid_paramÚmake_constraintÚvalidate_params)ÚCSR_CONTAINERS)ÚaÚbÚcÚdT©Úprefer_skip_nested_validation)r)   c                ó   — dS )z/A function to test the validation of functions.N© )r&   r'   r(   r)   ÚargsÚkwargss         úh/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/utils/tests/test_param_validation.pyÚ_funcr1   )   ó   € € € ó    c                   ó–   — e Zd ZdZ edegid¬¦  «        d„ ¦   «         Z e¦   «          edegid¬¦  «        d„ ¦   «         ¦   «         ZdS )Ú_ClasszJA class to test the _InstancesOf constraint and the validation of methods.r&   Tr*   c                 ó   — dS )zA validated methodNr-   ©Úselfr&   s     r0   Ú_methodz_Class._method4   r2   r3   c                 ó   — dS )zA deprecated validated methodNr-   r7   s     r0   Ú_deprecated_methodz_Class._deprecated_method8   r2   r3   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r$   r   r9   r   r;   r-   r3   r0   r5   r5   1   sŒ   € € € € € ØTÐTà€_�c˜D˜6�]À$ÐGÑGÔGð!ð !ñ HÔGð!ð €Z�\„\Ø€_�c˜D˜6�]À$ÐGÑGÔGð,ð ,ñ HÔGñ „\ð,ð ,ð ,r3   r5   c                   óZ   — e Zd ZU dZdegiZeed<   d„ Z e	d¬¦  «        d	d„¦   «         Z
dS )
Ú
_Estimatorz<An estimator to test the validation of estimator parameters.r&   Ú_parameter_constraintsc                 ó   — || _         d S ©N©r&   r7   s     r0   Ú__init__z_Estimator.__init__C   s   € ØˆŒˆˆr3   Tr*   Nc                 ó   — d S rD   r-   )r8   ÚXÚys      r0   Úfitz_Estimator.fitF   ó   € àˆr3   ©NN)r<   r=   r>   r?   r   rB   ÚdictÚ__annotations__rF   r	   rJ   r-   r3   r0   rA   rA   >   sp   € € € € € € ØFÐFà$'¨$¨ =Ð˜DÐ0Ð0Ñ0ðð ð ð €\°Ð5Ñ5Ô5ðð ð ñ 6Ô5ðð ð r3   rA   Úinterval_typec                 óþ   — t          | ddd¬¦  «        }d|v sJ ‚d|vsJ ‚t          | ddd¬¦  «        }d|vsJ ‚d|v sJ ‚t          | ddd¬¦  «        }d|v sJ ‚d|v sJ ‚t          | ddd¬¦  «        }d|vsJ ‚d|vsJ ‚dS )	z.Check the range of values depending on closed.éþÿÿÿé   Úleft©ÚclosedÚrightÚbothÚneitherN)r   ©rO   Úintervals     r0   Útest_interval_ranger[   K   sÚ   € õ ˜ r¨1°VÐ<Ñ<Ô<€HØ�ˆ>ˆ>ˆ>ˆ>Ø�HÐÐÐÐå˜ r¨1°WÐ=Ñ=Ô=€HØ�XÐÐÐÐØ�ˆ=ˆ=ˆ=ˆ=å˜ r¨1°VÐ<Ñ<Ô<€HØ�ˆ>ˆ>ˆ>ˆ>Ø�ˆ=ˆ=ˆ=ˆ=å˜ r¨1°YÐ?Ñ?Ô?€HØ�XÐÐÐÐØ�HÐÐÐÐÐÐr3   c                 ób  — t          | ddd¬¦  «        }ddz  |vsJ ‚ddz  |vsJ ‚t          ddz  ¦  «        |vsJ ‚t          ddz  ¦  «        |vsJ ‚t          | dddz  d¬¦  «        }ddz  |v sJ ‚ddz  |vsJ ‚t          ddz  ¦  «        |v sJ ‚t          ddz  ¦  «        |vsJ ‚ddz  |vsJ ‚dS )	zbCheck that Interval constraint work with large integers.

    non-regression test for #26648.
    r   rR   rX   rT   éA   é€   i   N)r   ÚfloatrY   s     r0   Útest_interval_large_integersr`   _   s  € õ ˜ q¨!°IÐ>Ñ>Ô>€HØˆb‰5˜Ð Ð Ð Ð Øˆc‰6˜Ð!Ð!Ð!Ð!Ý��B‘‰<Œ<˜xÐ'Ð'Ð'Ð'Ý��C‘‰=Œ= Ð(Ð(Ð(Ð(å˜ q¨!¨S©&¸ÐCÑCÔC€HØˆb‰5�HÐÐÐÐØˆc‰6˜Ð!Ð!Ð!Ð!Ý��B‘‰<Œ<˜8Ð#Ð#Ð#Ð#Ý��C‘‰=Œ= Ð(Ð(Ð(Ð(àˆd‰7˜(Ð"Ð"Ð"Ð"Ð"Ð"r3   c                  ó  — t          t          ddd¬¦  «        } t          j        | v sJ ‚t          t          ddd¬¦  «        } t          j         | v sJ ‚t          t          ddd¬¦  «        } t          j        | vsJ ‚t          j         | vsJ ‚dS )zjCheck that inf is included iff a bound is closed and set to None.

    Only valid for real intervals.
    r   NrV   rT   rS   rX   )r   r   ÚnpÚinf©rZ   s    r0   Útest_interval_inf_in_boundsre   t   sœ   € õ
 �˜a ¨gÐ6Ñ6Ô6€HÝŒ6�XÐÐÐÐå�˜d A¨fÐ5Ñ5Ô5€HÝŒFˆ7�hÐÐÐÐå�˜d D°Ð;Ñ;Ô;€HÝŒ6˜Ð!Ð!Ð!Ð!ÝŒFˆ7˜(Ð"Ð"Ð"Ð"Ð"Ð"r3   rZ   é   rS   rT   rW   c                 ó&   — t           j        | vsJ ‚dS )z)Check that np.nan is not in any interval.N)rb   Únanrd   s    r0   Útest_nan_not_in_intervalri   „   s   € õ Œ6˜Ð!Ð!Ð!Ð!Ð!Ð!r3   zparams, error, matchç      ð?rR   )ÚtyperS   rV   rU   z=Expecting left to be an int for an interval over the integersg       @rX   z>Expecting right to be an int for an interval over the integersz&left can't be None when closed == leftrV   z(right can't be None when closed == rightéÿÿÿÿzright can't be less than leftc                 ó|   — t          j        ||¬¦  «        5  t          di | ¤Ž ddd¦  «         dS # 1 swxY w Y   dS )zNCheck that informative errors are raised for invalid combination of parameters©ÚmatchNr-   )ÚpytestÚraisesr   )ÚparamsÚerrorro   s      r0   Útest_interval_errorsrt   �   s’   € õ@ 
Œ�u EÐ	*Ñ	*Ô	*ð ð ÝÐÐ�6ÐÐÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   —1±5¸5c                  óÞ   — t          h d£dh¬¦  «        } |                      d¦  «        sJ ‚|                      d¦  «        sJ ‚|                      d¦  «        rJ ‚dt          | ¦  «        v sJ ‚dS )z*Sanity check for the StrOptions constraint>   r&   r'   r(   r(   r   r&   r)   z'c' (deprecated)N)r   Úis_satisfied_byÚstr©Úoptionss    r0   Útest_stroptionsrz   ±   s…   € å˜˜˜°c°UÐ;Ñ;Ô;€GØ×"Ò" 3Ñ'Ô'Ð'Ð'Ð'Ø×"Ò" 3Ñ'Ô'Ð'Ð'Ð'Ø×&Ò& sÑ+Ô+Ð+Ð+Ð+à¥ W¡¤Ð-Ð-Ð-Ð-Ð-Ð-r3   c                  ó  — t          t          ddt          j        hdh¬¦  «        } |                      d¦  «        sJ ‚|                      t          j        ¦  «        sJ ‚|                      d¦  «        rJ ‚dt          | ¦  «        v sJ ‚dS )z'Sanity check for the Options constraintg      à¿ç      à?r   ç®Gáz®ó?z-0.5 (deprecated)N)r   r   rb   rc   rv   rw   rx   s    r0   Útest_optionsr~   »   sŽ   € å•d˜T 3­¬Ð/¸T¸FÐCÑCÔC€GØ×"Ò" 4Ñ(Ô(Ð(Ð(Ð(Ø×"Ò"¥2¤6Ñ*Ô*Ð*Ð*Ð*Ø×&Ò& tÑ,Ô,Ð,Ð,Ð,à¥# g¡,¤,Ð.Ð.Ð.Ð.Ð.Ð.r3   ztype, expected_type_nameÚintr_   znumpy.ndarrayc                 óV   — t          | ¦  «        }t          |¦  «        d|› d�k    sJ ‚dS )z?Check the string representation of the _InstancesOf constraint.zan instance of 'ú'N)r   rw   )rk   Úexpected_type_nameÚ
constraints      r0   Ú%test_instances_of_type_human_readabler„   Å   s;   € õ ˜dÑ#Ô#€JÝˆz‰?Œ?ÐFÐ1CÐFÐFÐFÒFÐFÐFÐFÐFÐFr3   c                  ó  — t          ddg¦  «        }  G d„ d¦  «        } G d„ d¦  «        }|                       |¦   «         ¦  «        sJ ‚|                       |¦   «         ¦  «        rJ ‚t          | ¦  «        dk    sJ ‚dS )	z Check the HasMethods constraint.r&   r'   c                   ó   — e Zd Zd„ Zd„ ZdS )útest_hasmethods.<locals>._Goodc                 ó   — d S rD   r-   ©r8   s    r0   r&   z test_hasmethods.<locals>._Good.aÙ   ó   € ØˆDr3   c                 ó   — d S rD   r-   r‰   s    r0   r'   z test_hasmethods.<locals>._Good.bÜ   rŠ   r3   N)r<   r=   r>   r&   r'   r-   r3   r0   Ú_Goodr‡   Ø   s2   € € € € € ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	r3   rŒ   c                   ó   — e Zd Zd„ ZdS )útest_hasmethods.<locals>._Badc                 ó   — d S rD   r-   r‰   s    r0   r&   ztest_hasmethods.<locals>._Bad.aà   rŠ   r3   N)r<   r=   r>   r&   r-   r3   r0   Ú_BadrŽ   ß   s#   € € € € € ð	ð 	ð 	ð 	ð 	r3   r�   z"an object implementing 'a' and 'b'N)r   rv   rw   )rƒ   rŒ   r�   s      r0   Útest_hasmethodsr‘   Ô   sÃ   € å˜S #˜JÑ'Ô'€Jðð ð ð ð ñ ô ð ðð ð ð ð ñ ô ð ð ×%Ò% e e¡g¤gÑ.Ô.Ð.Ð.Ð.Ø×)Ò)¨$¨$©&¬&Ñ1Ô1Ð1Ð1Ð1Ýˆz‰?Œ?ÐBÒBÐBÐBÐBÐBÐBr3   rƒ   >   r&   r'   r(   )Únumeric_onlyrJ   c                 óR   — t          | ¦  «        }|                      |¦  «        rJ ‚dS )z>Check that the value generated does not satisfy the constraintN©r!   rv   )rƒ   Ú	bad_values     r0   Útest_generate_invalid_param_valr–   è   s1   € õ" +¨:Ñ6Ô6€IØ×)Ò)¨)Ñ4Ô4Ð4Ð4Ð4Ð4Ð4r3   zinteger_interval, real_intervalé   éûÿÿÿé   é   éüÿÿÿiöÿÿÿé   é
   c                 óþ   — t          |¬¦  «        }|                     |¦  «        rJ ‚|                      |¦  «        rJ ‚t          | ¬¦  «        }|                     |¦  «        rJ ‚|                      |¦  «        rJ ‚dS )ztCheck that the value generated for an interval constraint does not satisfy any of
    the interval constraints.
    ©rƒ   Nr”   )Úinteger_intervalÚreal_intervalr•   s      r0   Ú+test_generate_invalid_param_val_2_intervalsr¢   ý   s”   € õb +°mÐDÑDÔD€IØ×,Ò,¨YÑ7Ô7Ð7Ð7Ð7Ø×/Ò/°	Ñ:Ô:Ð:Ð:Ð:å*Ð6FÐGÑGÔG€IØ×,Ò,¨YÑ7Ô7Ð7Ð7Ð7Ø×/Ò/°	Ñ:Ô:Ð:Ð:Ð:Ð:Ð:r3   c                 óˆ   — t          j        t          ¦  «        5  t          | ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zmCheck that the function raises NotImplementedError when there's no invalid value
    for the constraint.
    N)rp   rq   ÚNotImplementedErrorr!   rŸ   s    r0   Ú)test_generate_invalid_param_val_all_validr¥   W  s‡   € õ" 
ŒÕ*Ñ	+Ô	+ð /ð /Ý" :Ñ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð /ð /s   š7·;¾;>   rf   rR   r—   c                 óR   — t          | ¦  «        }|                      |¦  «        sJ ‚dS )z;Check that the value generated does satisfy the constraint.N)r"   rv   )rƒ   Úvalues     r0   Útest_generate_valid_paramr¨   l  s1   € õ: ! Ñ,Ô,€EØ×%Ò% eÑ,Ô,Ð,Ð,Ð,Ð,Ð,r3   zconstraint_declaration, valuegáz®GáÚ?é*   r'   c                 ó   — | dz   S )Nrf   r-   )Úxs    r0   ú<lambda>r¬   ”  s
   € ˜Q ™U€ r3   rL   z
array-likeúsparse matrixc                 ó4   — g | ]}d  |ddgddgg¦  «        f‘ŒS )r­   rf   rR   r—   rš   r-   )Ú.0Ú	containers     r0   ú
<listcomp>r±   ™  sD   € ð 

ð 

ð 

àð ˜i˜i¨!¨Q¨°!°Q°Ð(8Ñ9Ô9Ð:ð

ð 

ð 

r3   )Úrandom_stater   r²   )r²   Nr|   )ÚbooleanF)Úverboserf   rh   g      ð¿i  ÚmissingrE   )Ú	cv_objectr™   c                 óR   — t          | ¦  «        }|                     |¦  «        sJ ‚dS )z+Sanity check for the is_satisfied_by methodN)r#   rv   )Úconstraint_declarationr§   rƒ   s      r0   Útest_is_satisfied_byr¹   �  s3   € õL !Ð!7Ñ8Ô8€JØ×%Ò% eÑ,Ô,Ð,Ð,Ð,Ð,Ð,r3   z1constraint_declaration, expected_constraint_classÚoption1Úoption2r}   r³   r´   r¶   c                 ó:   — t          | ¦  «        }|j        |u sJ ‚dS )zICheck that make_constraint dispatches to the appropriate constraint classN)r#   Ú	__class__)r¸   Úexpected_constraint_classrƒ   s      r0   Útest_make_constraintr¿   ·  s-   € õ, !Ð!7Ñ8Ô8€JØÔÐ#<Ð<Ð<Ð<Ð<Ð<Ð<r3   c                  óŒ   — t          j        t          d¬¦  «        5  t          d¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zNCheck that an informative error is raised when an unknown constraint is passedzUnknown constraintrn   znot a valid constraintN)rp   rq   Ú
ValueErrorr#   r-   r3   r0   Útest_make_constraint_unknownrÂ   Ñ  s‹   € å	Œ•zÐ)=Ð	>Ñ	>Ô	>ð 2ð 2ÝÐ0Ñ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2ð 2ð 2s   œ9¹=Á =c                  óB  — t          j        t          d¬¦  «        5  t          dd¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          ddgddiŽ ddd¦  «         n# 1 swxY w Y   t          j        t          d	¬¦  «        5  t          di ddi¤Ž ddd¦  «         n# 1 swxY w Y   t          j        t          d
¬¦  «        5  t          ddd¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          dgg d¢¢R ddiddi¤Ž ddd¦  «         n# 1 swxY w Y   t          j        t          d	¬¦  «        5  t          dgg d¢¢R ddiddi¤Ž ddd¦  «         dS # 1 swxY w Y   dS )zGCheck that validate_params works no matter how the arguments are passedz"The 'a' parameter of _func must bern   Úwrongrf   ©r(   Nz"The 'b' parameter of _func must ber(   ú"The 'c' parameter of _func must bez"The 'd' parameter of _func must be)r(   r)   r   )rÄ   rR   r—   rš   Úer™   ©rf   rR   r—   Úfour)rf   )rp   rq   r   r1   r-   r3   r0   Útest_validate_paramsrÊ   ×  s€  € å	ŒÝÐ%Ið
ñ 
ô 
ð ð õ 	ˆg˜ÐÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ
 
ŒÝÐ%Ið
ñ 
ô 
ð "ð "õ 	��7ˆ|Ð!˜qÐ!Ð!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "õ
 
ŒÝÐ%Ið
ñ 
ô 
ð #ð #õ 	Ð"Ð"�C˜�>Ð"Ð"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #õ
 
ŒÝÐ%Ið
ñ 
ô 
ð !ð !õ 	ˆa�1˜Ð Ñ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !õ 
ŒÝÐ%Ið
ñ 
ô 
ð 4ð 4õ 	ˆaÐ3�/�/�/Ð3Ð3Ð3 QÐ3¨3°¨(Ð3Ð3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4õ
 
ŒÝÐ%Ið
ñ 
ô 
ð 3ð 3õ 	ˆaÐ2�)�)�)Ð2Ð2Ð2˜vÐ2¨#¨q¨Ð2Ð2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð 3ð 3sg   œ:º>Á>Á A;Á;A?ÂA?Â!B<Â<C ÃC Ã"DÄDÄDÄ'E
Å
EÅEÅ0FÆFÆFc                  ób   — t          dt          gid¬¦  «        d„ ¦   «         }  | dd¦  «         dS )zTCheck that no error is raised when there are parameters without
    constraints
    r&   Tr*   c                 ó   — d S rD   r-   )r&   r'   s     r0   Úfuncz1test_validate_params_missing_params.<locals>.funcþ  rK   r3   rf   rR   N)r$   r   )rÍ   s    r0   Ú#test_validate_params_missing_paramsrÎ   ù  sG   € õ
 �c�C˜5�\ÀÐFÑFÔFðð ñ GÔFðð 	€DˆˆA�J„J€J€J€Jr3   c                  óª  —  t          ¦   «         t          ¦  «        } t          j        t          d¬¦  «        5   | ddd¬¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          j        t          d¬¦  «        5   | ddd	¬¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )
z5Check that validate_params functions can be decoratedzFunction _func is deprecatedrn   rf   rR   r—   rÅ   NrÆ   rÄ   )r   r1   rp   ÚwarnsÚFutureWarningrq   r   )Údecorated_functions    r0   Ú test_decorate_validated_functionrÓ     s¡  € à%�™œ¥eÑ,Ô,Ðå	Œ•mÐ+IÐ	JÑ	JÔ	Jð &ð &ØÐ˜1˜a 1Ð%Ñ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &õ 
Œ•mÐ+IÐ	JÑ	JÔ	Jð 0ð 0ÝŒ]Ý!Ð)Nð
ñ 
ô 
ð 	0ð 	0ð Ð˜q ! wÐ/Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð 0ð 0sG   ¸AÁAÁAÁ9CÂB0Â$CÂ0B4	Â4CÂ7B4	Â8CÃCÃCc                  ó¾  — t          j        t          d¬¦  «        5  t          ¦   «                              d¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          j        t          d¬¦  «        5  t          ¦   «                              d¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )z-Check that validate_params works with methodsz+The 'a' parameter of _Class._method must bern   rÄ   Nz)Function _deprecated_method is deprecatedz6The 'a' parameter of _Class._deprecated_method must be)rp   rq   r   r5   r9   rÐ   rÑ   r;   r-   r3   r0   Útest_validate_params_methodrÕ     s–  € å	ŒÝÐ%Rð
ñ 
ô 
ð "ð "õ 	‰Œ×Ò˜Ñ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "õ 
Œ•mÐ+VÐ	WÑ	WÔ	Wð 1ð 1ÝŒ]Ý!ØJð
ñ 
ô 
ð 	1ð 	1õ ‰HŒH×'Ò'¨Ñ0Ô0Ð0ð		1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð 1ð 1sG   œ"A
Á
AÁAÁ0CÂ"B:Â.CÂ:B>	Â>CÃB>	ÃCÃCÃCc                  ó´   — t          d¦  «        } t          j        t          d¬¦  «        5  |                      ¦   «          ddd¦  «         dS # 1 swxY w Y   dS )z9Check that validate_params works with Estimator instancesrÄ   z'The 'a' parameter of _Estimator must bern   N)rA   rp   rq   r   rJ   )Úests    r0   Útest_validate_params_estimatorrØ   $  s¡   € õ �WÑ
Ô
€Cå	ŒÝÐ%Nð
ñ 
ô 
ð ð ð 	�Š‰	Œ	ˆ	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   «AÁAÁAc                  ó˜   — t          j        t          d¬¦  «        5  t          h d£ddh¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z@Check that the deprecated parameter must be a subset of options.z#deprecated options must be a subsetrn   >   r&   r'   r(   r&   r)   r   N)rp   rq   rÁ   r   r-   r3   r0   Ú!test_stroptions_deprecated_subsetrÚ   /  s—   € å	Œ•zÐ)NÐ	OÑ	OÔ	Oð ;ð ;Ý�?�?�?°°S¨zÐ:Ñ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð ;ð ;s   œ?¿AÁAc                  óf  — t          dt          t          ¦  «        t          gid¬¦  «        d„ ¦   «         }  | ddddœ¦  «          | g d	¢¦  «         t	          j        t          d
¬¦  «        5 } | d¬¦  «         ddd¦  «         n# 1 swxY w Y   t          |j        ¦  «        }d|v sJ ‚d|vsJ ‚dS )zECheck that internal constraints are not exposed in the error message.ÚparamTr*   c                 ó   — d S rD   r-   ©rÜ   s    r0   Úfz!test_hidden_constraint.<locals>.f8  s	   € ð 	ˆr3   rf   rR   r—   )r&   r'   r(   rÈ   úThe 'param' parameterrn   ÚbadrÞ   Nzan instance of 'dict'zan instance of 'list')	r$   r   ÚlistrM   rp   rq   r   rw   r§   ©rß   Úexc_infoÚerr_msgs      r0   Útest_hidden_constraintræ   5  s)  € õ Ø	•6�$‘<”<¥Ð&Ð'Àtðñ ô ðð ñô ðð €AˆA�A˜AÐÐÑÔÐØ€A€i€i€i�L„L€Lå	ŒÝÐ%<ð
ñ 
ô 
ð à	Ø	ˆ�ˆ‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ �(”.Ñ!Ô!€GØ" gÐ-Ð-Ð-Ð-Ø"¨'Ð1Ð1Ð1Ð1Ð1Ð1s   Á-BÂB
ÂB
c            	      ó~  — t          dt          dh¦  «        t          t          dh¦  «        ¦  «        gid¬¦  «        d„ ¦   «         }  | d¦  «          | d¦  «         t          j        t
          d¬¦  «        5 } | d	¬
¦  «         ddd¦  «         n# 1 swxY w Y   t          |j        ¦  «        }d|v sJ ‚d|vsJ ‚dS )zBCheck that we can have 2 StrOptions constraints, one being hidden.rÜ   ÚautoÚwarnTr*   c                 ó   — d S rD   r-   rÞ   s    r0   rß   z!test_hidden_stroptions.<locals>.fP  ó	   € ð
 	ˆr3   rà   rn   rá   rÞ   N)r$   r   r   rp   rq   r   rw   r§   rã   s      r0   Útest_hidden_stroptionsrì   M  s/  € õ Ø	•:˜v˜hÑ'Ô'­µ
¸F¸8Ñ0DÔ0DÑ)EÔ)EÐFÐGØ&*ðñ ô ðð ñ	ô ðð €A€f�I„I€IØ€A€f�I„I€Iå	ŒÝÐ%<ð
ñ 
ô 
ð à	Ø	ˆ�ˆ‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ �(”.Ñ!Ô!€GØ�WÐÐÐÐØ˜Ð Ð Ð Ð Ð Ð s   Á9BÂBÂBc                  óz   — t          t          d¦  «        sJ ‚t          t          ¦   «         j        d¦  «        sJ ‚dS )zˆCheck that the validate_params decorator properly sets the parameter constraints
    as attribute of the decorated function/method.
    Ú_skl_parameter_constraintsN)Úhasattrr1   r5   r9   r-   r3   r0   Ú4test_validate_params_set_param_constraints_attributerð   f  s?   € õ •5Ð6Ñ7Ô7Ð7Ð7Ð7Ý•6‘8”8Ô#Ð%AÑBÔBÐBÐBÐBÐBÐBr3   c                  ó�   — t          ddgid¬¦  «        d„ ¦   «         }  | d¦  «          | t          j        d¦  «        ¦  «         dS )z’Check that validate_params raise a deprecation message but still passes
    validation when using an int for a parameter accepting a boolean.
    rÜ   r³   Tr*   c                 ó   — d S rD   r-   rÞ   s    r0   rß   z1test_boolean_constraint_deprecated_int.<locals>.fs  rK   r3   FN)r$   rb   Úbool_©rß   s    r0   Ú&test_boolean_constraint_deprecated_intrõ   n  s`   € õ
 �g 	˜{Ð+È4ÐPÑPÔPðð ñ QÔPðð €A€d�G„G€GØ€A…b„hˆu�o„oÑÔÐÐÐr3   c                  ó(  — t          t          dgddœd¬¦  «        dd„¦   «         } t          j        t          d¬¦  «        5   | d	¬
¦  «         ddd¦  «         n# 1 swxY w Y    G d„ d¦  «        } | |¬¦  «          |  |¦   «         ¬¦  «         dS )z5Check that validation can be skipped for a parameter.NÚno_validation©Úparam1Úparam2Tr*   c                 ó   — d S rD   r-   rø   s     r0   rß   ztest_no_validation.<locals>.f  rë   r3   zThe 'param1' parameterrn   rÄ   )rù   c                   ó   — e Zd ZdS )ú$test_no_validation.<locals>.SomeTypeN)r<   r=   r>   r-   r3   r0   ÚSomeTyperý   ‹  s   € € € € € Øˆr3   rþ   )rú   rL   ©r$   r   rp   rq   r   )rß   rþ   s     r0   Útest_no_validationr   |  s#  € õ Ý˜�;¨/Ð:Ð:Ø&*ðñ ô ðð ð ñ	ô ðõ 
ŒÕ,Ð4LÐ	MÑ	MÔ	Mð ð Ø	ˆ�ÐÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ðð ð ð ð ñ ô ð ð €AˆXÐÑÔÐØ€AˆXˆX‰ZŒZÐÑÔÐÐÐs   ÁAÁAÁ!Ac                  óØ   — t          j        d¦  «        } t          ¦   «         }|                     | j        ¦  «        sJ ‚|                     t          j        g d¢¦  «        ¦  «        rJ ‚dS )z9Add a specific test for checking support for `pandas.NA`.ÚpandasrÈ   N)rp   Úimportorskipr   rv   ÚNArb   Úarray)ÚpdÚna_constraints     r0   Ú$test_pandas_na_constraint_with_pd_nar  ’  sg   € å	Ô	˜XÑ	&Ô	&€Bå'Ñ)Ô)€MØ×(Ò(¨¬Ñ/Ô/Ð/Ð/Ð/Ø×,Ò,­R¬X°i°i°iÑ-@Ô-@ÑAÔAÐAÐAÐAÐAÐAr3   c                  óÊ   — t          ¦   «         } |                      g d¢¦  «        sJ ‚|                      t          d¦  «        ¦  «        sJ ‚|                      d¦  «        rJ ‚dS )zGCheck that a string does not satisfy the _IterableNotString constraint.rÈ   r�   zsome stringN)r   rv   ÚrangerŸ   s    r0   Útest_iterable_not_stringr  ›  sk   € å$Ñ&Ô&€JØ×%Ò% i i iÑ0Ô0Ð0Ð0Ð0Ø×%Ò%¥e¨B¡i¤iÑ0Ô0Ð0Ð0Ð0Ø×)Ò)¨-Ñ8Ô8Ð8Ð8Ð8Ð8Ð8r3   c                  ó<  — t          ¦   «         } |                      d¦  «        sJ ‚|                      t          ¦   «         ¦  «        sJ ‚|                      ddgddgfddgddgfg¦  «        sJ ‚|                      d¦  «        sJ ‚|                      d¦  «        rJ ‚dS )zUCheck that the _CVObjects constraint accepts all current ways
    to pass cv objects.r™   rf   rR   r—   rš   Nznot a CV object)r   rv   r
   rŸ   s    r0   Útest_cv_objectsr  £  s¹   € õ ‘”€JØ×%Ò% aÑ(Ô(Ð(Ð(Ð(Ø×%Ò%¥k¡m¤mÑ4Ô4Ð4Ð4Ð4Ø×%Ò%¨¨A¨°°A°Ð'7¸1¸a¸&À1ÀaÀ&Ð9IÐ&JÑKÔKÐKÐKÐKØ×%Ò% dÑ+Ô+Ð+Ð+Ð+Ø×)Ò)Ð*;Ñ<Ô<Ð<Ð<Ð<Ð<Ð<r3   c                  óh   —  G d„ dt           ¦  «        }  | d¬¦  «                             ¦   «          dS )zÆCheck that the validation from a scikit-learn estimator inherited by a third
    party estimator does not impose a match between the dict of constraints and the
    parameters of the estimator.
    c                   ó*   ‡ — e Zd Zˆ fd„Zdˆ fd„	Zˆ xZS )ú7test_third_party_estimator.<locals>.ThirdPartyEstimatorc                 óZ   •— || _         t          ¦   «                              d¬¦  «         d S )Nr   rE   )r'   ÚsuperrF   )r8   r'   r½   s     €r0   rF   z@test_third_party_estimator.<locals>.ThirdPartyEstimator.__init__µ  s+   ø€ ØˆDŒFÝ‰GŒG×Ò˜qÐÑ!Ô!Ð!Ð!Ð!r3   Nc                 óL   •— t          ¦   «                              ||¦  «         d S rD   )r  rJ   )r8   rH   rI   r½   s      €r0   rJ   z;test_third_party_estimator.<locals>.ThirdPartyEstimator.fit¹  s!   ø€ Ý‰GŒG�KŠK˜˜1ÑÔÐÐÐr3   rL   )r<   r=   r>   rF   rJ   Ú__classcell__)r½   s   @r0   ÚThirdPartyEstimatorr  ´  sV   ø€ € € € € ð	"ð 	"ð 	"ð 	"ð 	"ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	r3   r  r   ©r'   N)rA   rJ   )r  s    r0   Útest_third_party_estimatorr  ®  sT   € ðð ð ð ð �jñ ô ð ð Ð˜!ÐÑÔ× Ò Ñ"Ô"Ð"Ð"Ð"r3   c                  ó’   — t          t          ddd¬¦  «        } |                      d¦  «        sJ ‚|                      d¦  «        rJ ‚dS )z9Check for the type RealNotInt in the Interval constraint.r   rf   rW   rT   rj   N)r   r   rv   rŸ   s    r0   Útest_interval_real_not_intr  Á  sR   € å�* a¨°6Ð:Ñ:Ô:€JØ×%Ò% cÑ*Ô*Ð*Ð*Ð*Ø×)Ò)¨!Ñ,Ô,Ð,Ð,Ð,Ð,Ð,r3   c                  ó  — t          dt          ¦  «        sJ ‚t          dt          ¦  «        rJ ‚t          t          j        d¦  «        t          ¦  «        sJ ‚t          t          j        d¦  «        t          ¦  «        rJ ‚dS )zCheck for the RealNotInt type.rj   rf   N)Ú
isinstancer   rb   Úfloat64Úint64r-   r3   r0   Útest_real_not_intr  È  sp   € å�c�:Ñ&Ô&Ð&Ð&Ð&Ý˜!�ZÑ(Ô(Ð(Ð(Ð(Ý•b”j ‘m”m¥ZÑ0Ô0Ð0Ð0Ð0Ý�"œ( 1™+œ+¥zÑ2Ô2Ð2Ð2Ð2Ð2Ð2r3   c                  ó2  — t          dt          gid¬¦  «        d„ ¦   «         } t          j        t          d¬¦  «        5   | d¬¦  «         d	d	d	¦  «         n# 1 swxY w Y   t          d¬
¦  «        5   | d¬¦  «         d	d	d	¦  «         d	S # 1 swxY w Y   d	S )z@Check that param validation can be skipped using config_context.r&   Tr*   c                 ó   — d S rD   r-   rE   s    r0   rß   z%test_skip_param_validation.<locals>.fÓ  rK   r3   úThe 'a' parameterrn   Ú1rE   N©Úskip_parameter_validation)r$   r   rp   rq   r   r   rô   s    r0   Útest_skip_param_validationr%  Ð  s5  € õ �c�C˜5�\ÀÐFÑFÔFðð ñ GÔFðõ 
ŒÕ,Ð4GÐ	HÑ	HÔ	Hð ð Ø	ˆˆCˆ‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
°$Ð	7Ñ	7Ô	7ð ð Ø	ˆˆCˆ‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s#   ¾AÁAÁAÁ2BÂBÂBr+   Fc                 ó²  ‡— t          dt          gid¬¦  «        d„ ¦   «         Št          dt          gi| ¬¦  «        ˆfd„¦   «         }t          j        t          d¬¦  «        5   |d	¬
¦  «         ddd¦  «         n# 1 swxY w Y   | r |d¬
¦  «         dS t          j        t          d¬¦  «        5   |d¬
¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z,Check that nested validation can be skipped.r&   Tr*   c                 ó   — d S rD   r-   rE   s    r0   rß   z&test_skip_nested_validation.<locals>.fã  rK   r3   r'   c                 ó   •—  ‰d¬¦  «        S )NÚinvalid_param_valuerE   r-   )r'   rß   s    €r0   Úgz&test_skip_nested_validation.<locals>.gç  s   ø€ ð ˆqÐ(Ð)Ñ)Ô)Ð)r3   zThe 'b' parameterrn   r)  r  Nrf   r!  rÿ   )r+   r*  rß   s     @r0   Útest_skip_nested_validationr+  ß  sŸ  ø€ õ �c�C˜5�\ÀÐFÑFÔFðð ñ GÔFðõ Ø	�sˆeˆØ&Cðñ ô ð*ð *ð *ð *ñ	ô ð*õ
 
ŒÕ,Ð4GÐ	HÑ	HÔ	Hð #ð #Ø	ˆÐ!Ð"Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð %ð Ø	ˆˆAˆ‰ŒˆˆˆåŒ]Õ0Ð8KÐLÑLÔLð 	ð 	ØˆA�ˆF‰FŒFˆFð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s$   Á#A<Á<B ÂB Â2CÃCÃCzJskip_parameter_validation, prefer_skip_nested_validation, expected_skipped))TTT)TFT)FTT)FFFc                 óÀ   — t          dt          gi|¬¦  «        d„ ¦   «         }t          | ¬¦  «        5   |d¦  «        }ddd¦  «         n# 1 swxY w Y   ||k    sJ ‚dS )z5Check interaction between global skip and local skip.r&   r*   c                 ó*   — t          ¦   «         d         S )Nr$  )r   rE   s    r0   r*  z9test_skip_nested_validation_and_config_context.<locals>.g  s   € õ ‰|Œ|Ð7Ô8Ð8r3   r#  rf   N)r$   r   r   )r$  r+   Úexpected_skippedr*  Úactual_skippeds        r0   Ú.test_skip_nested_validation_and_config_contextr0  ú  sË   € õ Ø	�sˆeˆÐ4Qðñ ô ð9ð 9ñô ð9õ 
Ð2KÐ	LÑ	LÔ	Lð ð Ø˜˜1™œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð Ð-Ò-Ð-Ð-Ð-Ð-Ð-s   ³AÁAÁA)r   )dÚnumbersr   r   Únumpyrb   rp   Úscipy.sparser   Úsklearn._configr   r   Úsklearn.baser   r	   Úsklearn.model_selectionr
   Úsklearn.utilsr   Úsklearn.utils._param_validationr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   Úsklearn.utils.fixesr%   r1   r5   rA   ÚmarkÚparametrizer[   r`   re   ri   Ú	TypeErrorrÁ   rt   rz   r~   r   Úndarrayr„   r‘   r–   r¢   râ   r¥   r¨   rk   Úfloat32r  Úcallabler  ÚrandomÚRandomStaterh   r_   r¹   r¿   rÂ   rÊ   rÎ   rÓ   rÕ   rØ   rÚ   ræ   rì   rð   rõ   r   r  r  r  r  r  r  r%  r+  r0  r-   r3   r0   ú<module>rB     s]  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #à 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø /Ð /Ð /Ð /Ð /Ð /Ø $Ð $Ð $Ð $Ð $Ð $ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð4 /Ð .Ð .Ð .Ð .Ð .ð €Øˆ&˜�v T F°$°Ð8Ð8Ø"&ðñ ô ð:˜að :ð :ð :ð :ñ	ô ð:ð
,ð 
,ð 
,ð 
,ð 
,ñ 
,ô 
,ð 
,ð
ð 
ð 
ð 
ð 
�ñ 
ô 
ð 
ð „×Ò˜¨8°TÐ*:Ñ;Ô;ðð ñ <Ô;ðð& „×Ò˜¨8°TÐ*:Ñ;Ô;ð#ð #ñ <Ô;ð#ð(#ð #ð #ð  „×ÒØØ€Xˆd�A�q Ð(Ñ(Ô(¨(¨(°4¸¸tÈFÐ*SÑ*SÔ*SÐTñô ð"ð "ñ	ô ð"ð
 „×ÒØð  s°QÀ&ÐIÐIØØLð	
ð  q°3À)ÐLÐLØØLð	
ð  t°aÀ6ÐJÐJØØ5ð	
ð  q°4À7ÐKÐKØØ7ð	
ð  q°2ÀÐHÐHØØ,ð	
ð+ñô ð<ð ñ=ô ð<ð.ð .ð .ð/ð /ð /ð „×ÒØà	ˆeˆØ	�5ÐØ	ˆwˆØ	Œ�_Ð%ð	ñô ðGð Gñô ðGðCð Cð Cð( „×ÒØàˆ��t˜Q vÐ.Ñ.Ô.Øˆ��q˜$ vÐ.Ñ.Ô.Øˆ��t˜T¨)Ð4Ñ4Ô4Øˆ
�?�?�?Ñ#Ô#Øˆ‰ŒØˆ 4Ð(Ñ(Ô(ØˆÑÔØˆ
�5ÑÔØÐÑÔØˆ
‰Œðñô ð5ð 5ñô ð5ð „×ÒØ%ð ˆH�X˜t Q¨wÐ7Ñ7Ô7ØˆH�Z  Q¨vÐ6Ñ6Ô6ð	
ð
 ˆH�X˜t Q¨wÐ7Ñ7Ô7ØˆH�Z  Q¨yÐ9Ñ9Ô9ð	
ð
 ˆH�X˜t Q¨wÐ7Ñ7Ô7ØˆH�Z  A¨fÐ5Ñ5Ô5ð	
ð
 ˆH�X˜t Q¨wÐ7Ñ7Ô7ØˆH�Z  D°Ð8Ñ8Ô8ð	
ð
 ˆH�X˜t Q¨wÐ7Ñ7Ô7ØˆH�Z  D°Ð;Ñ;Ô;ð	
ð
 ˆH�X˜q $¨vÐ6Ñ6Ô6ØˆH�Z  Q¨vÐ6Ñ6Ô6ð	
ð
 ˆH�X˜q $¨vÐ6Ñ6Ô6ØˆH�Z  Q¨yÐ9Ñ9Ô9ð	
ð
 ˆH�X˜q $¨vÐ6Ñ6Ô6ØˆH�Z  A¨fÐ5Ñ5Ô5ð	
ð
 ˆH�X˜q $¨vÐ6Ñ6Ô6ØˆH�Z  r°&Ð9Ñ9Ô9ð	
ð
 ˆH�X˜q $¨vÐ6Ñ6Ô6ØˆH�Z  r°)Ð<Ñ<Ô<ð	
ð
 ˆH�X˜r 1¨VÐ4Ñ4Ô4ØˆH�Z  q°Ð9Ñ9Ô9ð	
ð
 ˆH�X˜r 1¨VÐ4Ñ4Ô4ØˆH�Z  D°Ð8Ñ8Ô8ð	
ð
 ˆH�X˜r 1¨VÐ4Ñ4Ô4ØˆH�Z  b°Ð;Ñ;Ô;ð	
ð
 ˆH�X˜r 1¨VÐ4Ñ4Ô4ØˆH�Z  b°Ð9Ñ9Ô9ð	
ð
 ˆH�X˜r 1¨YÐ7Ñ7Ô7ØˆH�Z  B¨yÐ9Ñ9Ô9ð	
ð
 ˆH�X˜r 1¨YÐ7Ñ7Ô7ØˆH�Z  B¨vÐ6Ñ6Ô6ð	
ð
 ˆH�X˜q $¨vÐ6Ñ6Ô6ØˆH�Z  A¨fÐ5Ñ5Ô5ð	
ð
 ˆH�X˜q $¨vÐ6Ñ6Ô6ØˆH�Z  A¨fÐ5Ñ5Ô5ð	
ðKIñLô LðZ
;ð 
;ñ[Lô LðZ
;ð „×ÒØàˆ‰ŒØˆ�TÑÔØˆ
‰ŒØˆÑÔØˆ‰ŒØˆÑÔØˆ	‰ŒØˆ�˜4 ¨iÐ8Ñ8Ô8ð	ñô ð/ð /ñô ð/ð „×ÒØàˆ‰ŒØˆ
‰ŒØˆ�TÑÔØˆÑÔØˆ‰ŒØˆÑÔØˆ	‰ŒØˆÑÔØˆ‰ŒØˆ 4Ð(Ñ(Ô(Øˆ
�?�?�?Ñ#Ô#Øˆ�˜)˜)˜)Ñ$Ô$Øˆ�˜4 ¨iÐ8Ñ8Ô8Øˆ�˜1˜b¨Ð3Ñ3Ô3Øˆ�˜1˜d¨9Ð5Ñ5Ô5Øˆ�˜4 ¨9Ð5Ñ5Ô5Øˆ��q˜! IÐ.Ñ.Ô.Øˆ��q˜$ vÐ.Ñ.Ô.Øˆ��t˜Q wÐ/Ñ/Ô/Øˆ
�5ÑÔØÐÑÔØˆ
‰Œð-ñô ð6-ð -ñ7ô ð6-ð „×ÒØ#à	ˆ�$˜˜1 VÐ	,Ñ	,Ô	,¨dÐ3Ø	ˆ�(˜A˜t¨IÐ	6Ñ	6Ô	6¸Ð;Ø	ˆ�O�O�OÑ	$Ô	$ cÐ*Ø	ˆ�˜œ
 B¤JÐ/Ñ	0Ô	0°"´*Ð=Ø	�?�?Ð#ØØ	˜˜A˜  A Ð'Ð(Ø	�x�r”x ! Q ¨!¨Q¨Ð 0Ñ1Ô1Ð2Ø	˜*˜* q¨! f¨q°!¨fÐ%5Ñ6Ô6Ð7ð ð

ð 

à+ð

ñ 

ô 

ð ð 	ð ð 
˜œ×.Ò.¨qÑ1Ô1Ð2ð ð  	ð! ð" 
��‘”Ðð# ð$ 
ˆaˆð% ð& 
ˆsˆð' ð( 	ð) ð* 	ð+ ð, 
�”ˆð- ð. 
ˆ‰Œ˜"Ðð/ ð0 
ˆ‰Œ˜$Ðð1 ð2 
ˆ‰Œ˜!˜T™'Ð"ð3 ð4 
ˆ‰Œ˜$Ðð5 ð6 
ˆ‰Œ˜%˜% ™,œ,Ð'ð7 ð8 
ˆ‰Œ˜"œ&Ð!ð9 ð: 
ˆ‰Œ˜)Ð$ð; ð< 
ˆ�EÑ	Ô	˜J˜J¨˜O™OœOÐ,ð= ð> 	ð? ñ#ô #ðH-ð -ñI#ô #ðH-ð „×ÒØ7à	ˆ�$˜˜1 VÐ	,Ñ	,Ô	,¨hÐ7Ø	ˆ�Y 	Ð*Ñ	+Ô	+¨ZÐ8Ø	ˆ�˜˜d�|Ñ	$Ô	$ gÐ.Ø	�{Ð#Ø	˜/Ð*Ø	˜Ð'Ø	ˆÐØ	�:ÐØ	ˆlÐØ	�IÐØ	�NÐ#Ø	ˆ DÐ	)Ñ	)Ô	)¨=Ð9Ø	ˆ�EÑ	Ô	˜JÐ'Ø	�jÐ!Ø	�Ððñô ð(=ð =ñ)ô ð(=ð2ð 2ð 2ð3ð 3ð 3ðD	ð 	ð 	ð0ð 0ð 0ð1ð 1ð 1ð ð ð ð;ð ;ð ;ð2ð 2ð 2ð0!ð !ð !ð2Cð Cð Cðð ð ðð ð ð,Bð Bð Bð9ð 9ð 9ð=ð =ð =ð#ð #ð #ð&-ð -ð -ð3ð 3ð 3ðð ð ð „×ÒÐ8¸4À¸-ÑHÔHðð ñ IÔHðð4 „×ÒØPðð ð ñô ð.ð .ñô ð.ð .ð .r3   