§
    §éUg¹Z  ã                   ó¼  — d dl Zd dlZd dlmZ d dlmZ d dlmZm	Z	m
Z
 d dlmZ d dlmZ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 d d
lmZ  ej        ddgddgddgddgddgddggd¬¦  «        Z ej        g d¢¦  «        Z ej        g d¢¦  «        Z  ej        dgdgdgdgdgdggd¬¦  «        Z! ej        d d gddgddgddgddgddgddgddgddgg	¦  «        Z" ej        g d¢¦  «        Z# ej        g d¢¦  «        Z$ ej        dgdgdgdgd gdgdgdgdgg	¦  «        Z% ej        dd gdd gdd gdd gd d gdd gdd gdd gdd gg	¦  «        Z& ej        g d¢¦  «        Z'ej(         ej)        d¦  «         ej*        d¦  «        f         Z+ ej        g d¢¦  «        Z,g d¢Z-d„ Z.ej/         0                    dddg¦  «        ej/         0                    dg d¢¦  «        d „ ¦   «         ¦   «         Z1d!„ Z2d"„ Z3d#„ Z4d$„ Z5d%„ Z6d&„ Z7d'„ Z8ej/         0                    d( e9d)¦  «        ¦  «        d*„ ¦   «         Z:d+„ Z;ej/         0                    d,dd-g¦  «        ej/         0                    dd-dg¦  «        d.„ ¦   «         ¦   «         Z<ej/         0                    d/ej=        ej=        fej>        ej>        fej?        ej>        fej@        ej>        fg¦  «        d0„ ¦   «         ZAd1„ ZBd2„ ZCd3„ ZDej/         0                    d4g d5¢¦  «        d6„ ¦   «         ZEd7„ ZFd8„ ZGej/         H                    ed9¬:¦  «        d;„ ¦   «         ZId<„ ZJej/         0                    dg d¢¦  «        d=„ ¦   «         ZKd>„ ZLdS )?é    N)Úlinalg)ÚKMeans)Ú
LedoitWolfÚShrunkCovarianceÚledoit_wolf)Ú
make_blobs)ÚLinearDiscriminantAnalysisÚQuadraticDiscriminantAnalysisÚ_cov)ÚStandardScaler)Úcheck_random_state)Ú_convert_containerÚassert_allcloseÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equal)Ú_IS_WASMéþÿÿÿéÿÿÿÿé   é   Úf©Údtype)r   r   r   r   r   r   )r   r   r   r   é   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   éýÿÿÿ)	r   r   r   r   r   r   r   r   r   é   )r   r   )r   r   r   r   r   r   r   r   )	)ÚsvdN)ÚlsqrN)ÚeigenN)r   Úauto)r   r   )r   ç…ëQ¸…Û?)r    r!   )r    r   )r    r"   c            	      óÊ  — t           D �]¤} | \  }}t          ||¬¦  «        }|                     t          t          ¦  «                             t          ¦  «        }t          |t          d|z  ¦  «         |                     t          t          ¦  «                             t          ¦  «        }t          |t          d|z  ¦  «         |                     t          ¦  «        }t          |d d …df         dk    dz   t          d|z  ¦  «         | 	                    t          ¦  «        }t          t          j        |¦  «        |ddd|z  ¬¦  «         |                     t          t          ¦  «                             t          ¦  «        }t          j        |t          k    ¦  «        sJ d|z  ¦   «         ‚�Œ¦t          dd¬¦  «        }t          j        t"          ¦  «        5  |                     t          t          ¦  «         d d d ¦  «         n# 1 swxY w Y   t          d	d
t%          ¦   «         ¬¦  «        }t          j        t&          d¬¦  «        5  |                     t          t          ¦  «         d d d ¦  «         n# 1 swxY w Y   t          dt)          ¦   «         ¬¦  «        }t          j        t&          d¬¦  «        5  |                     t          t          ¦  «         d d d ¦  «         n# 1 swxY w Y   t          d	t+          dd¬¦  «        ¬¦  «        }t          j        t&          ¦  «        5  |                     t          t          ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N©ÚsolverÚ	shrinkagez	solver %sr   ç      à?ç�íµ ÷Æ°>)ÚrtolÚatolÚerr_msgr   r!   r   çš™™™™™¹?)r%   r&   Úcovariance_estimatorz[covariance_estimator and shrinkage parameters are not None. Only one of the two can be set.©Úmatch)r%   r-   z.covariance estimator is not supported with svdr   )Ú
n_clustersÚn_init)Úsolver_shrinkager	   ÚfitÚXÚyÚpredictr   ÚX1Úpredict_probaÚpredict_log_probar   ÚnpÚexpÚy3ÚanyÚpytestÚraisesÚNotImplementedErrorr   Ú
ValueErrorr   r   )	Ú	test_caser%   r&   ÚclfÚy_predÚy_pred1Úy_proba_pred1Úy_log_proba_pred1Úy_pred3s	            úg/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/tests/test_discriminant_analysis.pyÚtest_lda_predictrJ   F   s÷  € õ &ð ;ñ ;ˆ	Ø%Ñˆ�	Ý(°À)ÐLÑLÔLˆØ—’��A‘”×&Ò&¥qÑ)Ô)ˆÝ˜6¥1 k°FÑ&:Ñ;Ô;Ð;ð —'’'�"�a‘.”.×(Ò(­Ñ,Ô,ˆÝ˜7¥A {°VÑ';Ñ<Ô<Ð<ð ×)Ò)­"Ñ-Ô-ˆÝ˜M¨!¨!¨!¨Q¨$Ô/°#Ò5¸Ñ:½A¸{ÈVÑ?SÑTÔTÐTØ×1Ò1µ"Ñ5Ô5ÐÝÝŒFÐ$Ñ%Ô%ØØØØ &Ñ(ð	
ñ 	
ô 	
ð 	
ð —'’'�!�R‘.”.×(Ò(­Ñ+Ô+ˆåŒv�g¥’mÑ$Ô$Ð:Ð: k°FÑ&:Ñ:Ô:Ð:Ñ:å
$¨E¸VÐ
DÑ
DÔ
D€CÝ	ŒÕ*Ñ	+Ô	+ð ð Ø�Š••1‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ %Ø Õ;KÑ;MÔ;Mðñ ô €Cõ 
ŒÝð.ð
ñ 
ô 
ð ð ð 	�Š••1‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ %¨EÍ
ÉÌÐ
UÑ
UÔ
U€CÝ	ŒÝÐJð
ñ 
ô 
ð ð ð 	�Š••1‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ %Ø­F¸aÈÐ,OÑ,OÔ,Oðñ ô €Cõ 
Œ•zÑ	"Ô	"ð ð Ø�Š••1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð sH   Ç!HÈH	ÈH	É	!I6É6I:É=I:Ê9!K&Ë&K*Ë-K*Ì*!MÍMÍMÚ	n_classesr%   ©r   r   r    c                 ó`  ‡‡‡‡‡— dd„}t          j        ddgddgddgg¦  «        d ‰…         }t          j        ddgddgggt          |¦  «        z  ¦  «        } |d	||d
¬¦  «        \  }}t          | dd ¬¦  «                             ||¦  «        }t          |j        |d¬¦  «         t          |j        |d         d¬¦  «         t          j	        |d         ¦  «        }g Šg Št          t          |¦  «        dz
  ¦  «        D ]¡}	‰                     t          j        |||	         |d         z
  d d …t           j        f         ¦  «        ¦  «         ‰                     t          j        d||	         |d         z   t           j        d d …f         z  ‰d         ¦  «        ¦  «         Œ¢t          j        ddgg¦  «        Šd„ Št          j        ˆˆˆˆˆfd„t          ‰dz
  ¦  «        D ¦   «         ¦  «        }
dt          j        |
¦  «        z
  }t          ddt          ˆˆˆˆfd„t          ‰dz
  ¦  «        D ¦   «         ¦  «        z   z  ¦  «        }|t!          j        |¦  «        k    sJ ‚t          |                     ‰¦  «        t          j        |
|g¦  «        t           j                 d¬¦  «         d S )Nc                 ó  ‡ ‡‡— t          |¦  «        Št          j        ˆˆ ˆfd„t          ‰|¦  «        D ¦   «         ¦  «        }t          j        ˆˆ fd„t          t          ‰¦  «        ¦  «        D ¦   «         ¦  «        }||fS )zNGenerate a multivariate normal data given some centers and
        covariancesc           
      óf   •— g | ]-\  }}‰                      ||‰t          ‰¦  «        z  ¬ ¦  «        ‘Œ.S )©Úsize)Úmultivariate_normalÚlen)Ú.0ÚmeanÚcovÚcentersÚ	n_samplesÚrngs      €€€rI   ú
<listcomp>zDtest_lda_predict_proba.<locals>.generate_dataset.<locals>.<listcomp>�   sM   ø€ ð ð ð á�D˜#ð ×'Ò'¨¨c¸	ÅSÈÁ\Ä\Ñ8QÐ'ÑRÔRðð ð ó    c                 ó<   •— g | ]}|g‰t          ‰¦  «        z  z  ‘ŒS © )rS   )rT   ÚclazzrW   rX   s     €€rI   rZ   zDtest_lda_predict_proba.<locals>.generate_dataset.<locals>.<listcomp>“   s+   ø€ ÐTÐTÐT°uˆeˆW˜	¥S¨¡\¤\Ñ1Ñ2ÐTÐTÐTr[   )r   r:   ÚvstackÚzipÚhstackÚrangerS   )rX   rW   ÚcovariancesÚrandom_stater4   r5   rY   s   ``    @rI   Úgenerate_datasetz0test_lda_predict_proba.<locals>.generate_datasetˆ   s¥   øøø€ õ ! Ñ.Ô.ˆÝŒIðð ð ð ð ð å!$ W¨kÑ!:Ô!:ðñ ô ñ
ô 
ˆõ ŒIØTÐTÐTÐTÐTÅÅcÈ'ÁlÄlÑ@SÔ@SÐTÑTÔTñ
ô 
ˆð �!ˆtˆr[   r   éöÿÿÿé(   iâÿÿÿé   é
   éd   i�_ é*   )rX   rW   rc   rd   T)r%   Ústore_covariancer&   r,   )r*   r   r   ç      à¿iêÿÿÿé   c                 ó’   — t          j        ||         t          j        | ||         ¦  «        z   ¦  «                             ¦   «         S ©N)r:   r;   ÚdotÚitem)ÚsampleÚcoefÚ	interceptr^   s       rI   Údiscriminant_funcz1test_lda_predict_proba.<locals>.discriminant_func·   s8   € ÝŒv�i Ô&­¬°¸¸U¼Ñ)DÔ)DÑDÑEÔE×JÒJÑLÔLÐLr[   c                 óª   •— g | ]O}t           ‰‰‰‰|¦  «        d t          ˆˆˆˆfd„t          ‰d z
  ¦  «        D ¦   «         ¦  «        z   z  ¦  «        ‘ŒPS )r   c                 ó,   •— g | ]} ‰‰‰‰|¦  «        ‘ŒS r]   r]   ©rT   r^   Úalpha_kÚ	alpha_k_0rv   rs   s     €€€€rI   rZ   z5test_lda_predict_proba.<locals>.<listcomp>.<listcomp>Á   s:   ø€ ð ð ð à %ð .Ð-¨f°g¸yÈ%ÑPÔPðð ð r[   )ÚfloatÚsumrb   )rT   r^   rz   r{   rv   rK   rs   s     €€€€€rI   rZ   z*test_lda_predict_proba.<locals>.<listcomp>»   s¤   ø€ ð 	
ð 	
ð 	
ð õ Ø!Ð! &¨'°9¸eÑDÔDàÝðð ð ð ð ð ð å).¨y¸1©}Ñ)=Ô)=ðñ ô ñô ññ	ñô ð	
ð 	
ð 	
r[   c                 ó,   •— g | ]} ‰‰‰‰|¦  «        ‘ŒS r]   r]   ry   s     €€€€rI   rZ   z*test_lda_predict_proba.<locals>.<listcomp>Õ   s:   ø€ ð ð ð àð &Ð% f¨g°yÀ%ÑHÔHðð ð r[   ç{®Gáz„?rp   )r:   ÚarrayrS   r	   r3   r   Úmeans_Úcovariance_r   Úinvrb   Úappendrq   Únewaxisr}   r|   r>   Úapproxr8   ra   )r%   rK   re   Úblob_centersÚ	blob_stdsr4   r5   ÚldaÚ	precisionr^   ÚprobÚprob_refÚ
prob_ref_2rz   r{   rv   rs   s    `           @@@@rI   Útest_lda_predict_probarŽ   …   sN  øøøøø€ ðð ð ð õ ”8˜a ˜V c¨2 Y°°b°	Ð:Ñ;Ô;¸J¸Y¸JÔG€LÝ”˜B ˜8 b¨# YÐ/Ð0µ3°|Ñ3DÔ3DÑDÑEÔE€IØÐØ ¸9ÐSUðñ ô �D€A€qõ %Ø¨¸ðñ ô ç	‚cˆ!ˆQ�i„ið õ
 �C”J °4Ð8Ñ8Ô8Ð8Ý�C”O Y¨q¤\¸Ð:Ñ:Ô:Ð:õ
 ”
˜9 Qœ<Ñ(Ô(€IØ€GØ€IÝ•s˜<Ñ(Ô(¨1Ñ,Ñ-Ô-ð 	
ð 	
ˆØ�ŠÝŒF�9˜|¨EÔ2°\À"Ô5EÑEÀqÀqÀqÍ"Ì*À}ÔUÑVÔVñ	
ô 	
ð 	
ð 	×ÒÝŒFØ˜ UÔ+¨l¸2Ô.>Ñ>ÅÄ
ÈAÈAÈAÀÔNÑNØ˜”ñô ñ	
ô 	
ð 	
ð 	
õ ŒX˜˜R�y�kÑ"Ô"€FðMð Mð Mõ Œ8ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
õ ˜y¨1™}Ñ-Ô-ð	
ñ 	
ô 	
ñô €Dð$ •2”6˜$‘<”<Ñ€Hõ Ø	àÝðð ð ð ð ð ð å!& y°1¡}Ñ!5Ô!5ðñ ô ñô ññ		
ñô €Jð •v”} ZÑ0Ô0Ò0Ð0Ð0Ð0õ Ø×Ò˜&Ñ!Ô!¥2¤9¨d°HÐ-=Ñ#>Ô#>½r¼zÔ#JÐQUðñ ô ð ð ð r[   c                  ó¦  — t          j        ddg¦  «        } t          | ¬¦  «        }d}t          j        t
          |¬¦  «        5  |                     t          t          ¦  «         d d d ¦  «         n# 1 swxY w Y   t          ddg¬¦  «        }|                     t          t          ¦  «         t          j        ddg¦  «        } t          j        ddg¦  «        }t          | ¬¦  «        }t          j	        t          ¦  «        5  |                     t          t          ¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        |d	¦  «         d S )
Nr'   rm   ©Úpriorszpriors must be non-negativer.   ç333333ã?çÍÌÌÌÌÌÜ?gš™™™™™á?r   )r:   r€   r	   r>   r?   rA   r3   r4   r5   ÚwarnsÚUserWarningr   Úpriors_)r‘   rC   ÚmsgÚ
prior_norms       rI   Útest_lda_priorsr™   å   s–  € åŒX�s˜D�kÑ"Ô"€FÝ
$¨FÐ
3Ñ
3Ô
3€CØ
'€Cå	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�Š••1‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ
 %¨S°#¨JÐ
7Ñ
7Ô
7€CØ‡G‚G�A�q�M„M€Mõ ŒX�s˜C�jÑ!Ô!€FÝ”˜4 ˜,Ñ'Ô'€JÝ
$¨FÐ
3Ñ
3Ô
3€Cå	Œ•kÑ	"Ô	"ð ð Ø�Š••1‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ˜cœk¨:°qÑ9Ô9Ð9Ð9Ð9s$   Á!A1Á1A5Á8A5Ä!D0Ä0D4Ä7D4c                  óÄ  — d} d}d}t          || |d¬¦  «        \  }}t          d¬¦  «        }t          d¬¦  «        }t          d¬¦  «        }|                     ||¦  «         |                     ||¦  «         |                     ||¦  «         t          |j        |j        d	¦  «         t          |j        |j        d	¦  «         t          |j        |j        d	¦  «         d S )
Nr   iè  é   ©rX   Ú
n_featuresrW   rd   r   ©r%   r   r    r   )r   r	   r3   r   Úcoef_)r�   rK   rX   r4   r5   Úclf_lda_svdÚclf_lda_lsqrÚclf_lda_eigens           rI   Útest_lda_coefsr£   þ   só   € à€JØ€IØ€IÝØ¨
¸IÐTVðñ ô �D€A€qõ -°EÐ:Ñ:Ô:€KÝ-°VÐ<Ñ<Ô<€LÝ.°gÐ>Ñ>Ô>€Mà‡O‚O�A�qÑÔÐØ×Ò�Q˜ÑÔÐØ×Ò�a˜ÑÔÐå˜kÔ/°Ô1CÀQÑGÔGÐGÝ˜kÔ/°Ô1DÀaÑHÔHÐHÝ˜mÔ1°<Ô3EÀqÑIÔIÐIÐIÐIr[   c                  óx  — t          dd¬¦  «        } |                      t          t          ¦  «                             t          ¦  «        }|j        d         dk    sJ ‚t          dd¬¦  «        } |                      t          t          ¦  «                             t          ¦  «        }|j        d         dk    sJ ‚t          dd¬¦  «        } |                      t          t          ¦  «         d}t          j        t          |¬¦  «        5  |                      t          ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   )r%   Ún_componentsr    r   z$transform not implemented for 'lsqr'r.   )	r	   r3   r4   r5   Ú	transformÚshaper>   r?   r@   )rC   ÚX_transformedr—   s      rI   Útest_lda_transformr©     sJ  € å
$¨EÀÐ
BÑ
BÔ
B€CØ—G’G�A�q‘M”M×+Ò+­AÑ.Ô.€MØÔ˜qÔ! QÒ&Ð&Ð&Ð&Ý
$¨GÀ!Ð
DÑ
DÔ
D€CØ—G’G�A�q‘M”M×+Ò+­AÑ.Ô.€MØÔ˜qÔ! QÒ&Ð&Ð&Ð&å
$¨FÀÐ
CÑ
CÔ
C€CØ‡G‚G�A�q�M„M€MØ
0€Cå	ŒÕ*°#Ð	6Ñ	6Ô	6ð ð Ø�Š•aÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÄD/Ä/D3Ä6D3c                  óx  — t           j                             d¦  «        } |                      ddd¬¦  «        }|                      ddd¬¦  «        }t          d¬	¦  «        }|                     ||¦  «         t          |j         	                    ¦   «         d
d¦  «         |j        j
        dk    s
J d¦   «         ‚t          d¬	¦  «        }|                     ||¦  «         t          |j         	                    ¦   «         d
d¦  «         |j        j
        dk    s
J d¦   «         ‚t          |j        |j        ¦  «         d S )Nr   rj   )rg   é   )ÚlocÚscalerQ   r   )rg   rP   r    rž   ç      ð?)r   z/Unexpected length for explained_variance_ratio_r   )r:   ÚrandomÚRandomStateÚnormalÚrandintr	   r3   r   Úexplained_variance_ratio_r}   r§   r   )Ústater4   r5   r¢   r    s        rI   Ú!test_lda_explained_variance_ratiorµ   %  s\  € õ ŒI×!Ò! !Ñ$Ô$€EØ�Š˜ #¨HˆÑ5Ô5€AØ�Š�a˜ ˆÑ'Ô'€Aå.°gÐ>Ñ>Ô>€MØ×Ò�a˜ÑÔÐÝ˜Ô?×CÒCÑEÔEÀsÈAÑNÔNÐNØÔ2Ô8ð =ò ð ð à8ñô ð õ -°EÐ:Ñ:Ô:€KØ‡O‚O�A�qÑÔÐÝ˜Ô=×AÒAÑCÔCÀSÈ!ÑLÔLÐLØÔ0Ô6ð ;ò ð ð à8ñô ð õ ØÔ-¨}Ô/Vñô ð ð ð r[   c            	      ó’  — t          j        g d¢g d¢g d¢g d¢g¦  «        } t          j        g d¢g d¢g d¢g d¢g d	¢g d
¢g¦  «        }| d d …t           j        d d …f         |t           j        d d …d d …f         z                        d¦  «        }t          j        t          j        | j        d         ¦  «        |j        d         ¦  «        }t          d¬¦  «                             ||¦  «        }| 	                    | ¦  «        }|d         |d         z
  }|d         |d         z
  }|t          j
        t          j        |dz  ¦  «        ¦  «        z  }|t          j
        t          j        |dz  ¦  «        ¦  «        z  }t          t          j        | 	                    |¦  «        j        ¦  «        t          j        d¦  «        ¦  «         t          t          j        t          j        |d d…         ddg¦  «        ¦  «        d¦  «         t          t          j        t          j        |d d…         ddg¦  «        ¦  «        d¦  «         d S )N)r   r   r   )r   r   r   )r   r   r   )r   r   é   )r,   r   r   )çš™™™™™¹¿r   r   )r   r,   r   )r   r¸   r   )r   r   r,   )r   r   r¸   )r   r   r   r   rž   r   r   r   r®   )r:   r€   r…   ÚreshapeÚrepeatÚaranger§   r	   r3   r¦   Úsqrtr}   r   rV   ÚTÚeyeÚabsrq   )ÚmeansÚscatterr4   r5   rC   Úmeans_transformedÚd1Úd2s           rI   Útest_lda_orthogonalityrÅ   B  s  € õ ŒH�j�j�j ) ) )¨Z¨Z¨Z¸¸¸ÐCÑDÔD€Eõ ŒhàˆKˆKØˆLˆLØˆKˆKØˆLˆLØˆKˆKØˆLˆLð	
ñ	ô 	€Gð 
ˆqˆqˆq•"”*˜a˜a˜aÐÔ	  7­2¬:°q°q°q¸!¸!¸!Ð+;Ô#<Ñ	<×EÒEÀgÑNÔN€AÝ
Œ	•"”)˜EœK¨œNÑ+Ô+¨W¬]¸1Ô-=Ñ>Ô>€Aõ %¨EÐ
2Ñ
2Ô
2×
6Ò
6°q¸!Ñ
<Ô
<€CØŸš eÑ,Ô,Ðà	˜1Ô	Ð 1°!Ô 4Ñ	4€BØ	˜1Ô	Ð 1°!Ô 4Ñ	4€BØ�"Œ'•"”&˜˜Q™‘-”-Ñ
 Ô
 Ñ €BØ�"Œ'•"”&˜˜Q™‘-”-Ñ
 Ô
 Ñ €Bõ �œ˜sŸ}š}¨WÑ5Ô5Ô7Ñ8Ô8½"¼&À¹)¼)ÑDÔDÐDõ �œ�rœv b¨¨!¨¤f¨q°!¨fÑ5Ô5Ñ6Ô6¸Ñ<Ô<Ð<õ �œ�rœv b¨¨!¨¤f¨q°!¨fÑ5Ô5Ñ6Ô6¸Ñ<Ô<Ð<Ð<Ð<r[   c                  ó°  — d} t           j                             d¦  «        }|                     dd| df¦  «        g d¢z   }|                     dd| df¦  «        g d¢z   }t          j        ||f¦  «        g d¢z  }dg| z  dg| z  z   }d	D ]M}t          |¬
¦  «        }|                     ||¦  «                             ||¦  «        dk    sJ d|z  ¦   «         ‚ŒNd S )Nrj   iÒ  r   r   r   )rf   r   r   )ri   r   r   )r   rj   i'  rL   rž   r®   zusing covariance: %s)r:   r¯   r°   Úuniformr_   r	   r3   Úscore)ÚnrY   Úx1Úx2Úxr5   r%   rC   s           rI   Útest_lda_scalingrÍ   k  sÿ   € à€AÝ
Œ)×
Ò
 Ñ
%Ô
%€Cð 
�Š�R˜˜Q ˜FÑ	#Ô	# k k kÑ	1€BØ	�Š�R˜˜Q ˜FÑ	#Ô	# j j jÑ	0€BÝ
Œ	�2�r�(ÑÔ˜o˜o˜oÑ-€AØ	ˆˆq‰�A�3˜‘7Ñ€Aà*ð Qð QˆÝ(°Ð7Ñ7Ô7ˆà�wŠw�q˜!‰}Œ}×"Ò" 1 aÑ(Ô(¨CÒ/Ð/Ð/Ð1GÈ&Ñ1PÑ/Ô/Ð/Ð/ðQð Qr[   c            	      óÈ  — dD ]°} t          | ¬¦  «                             t          t          ¦  «        }t	          |d¦  «        sJ ‚t          | d¬¦  «                             t          t          ¦  «        }t	          |d¦  «        sJ ‚t          |j        t          j        ddgddgg¦  «        ¦  «         Œ±t          d	¬¦  «                             t          t          ¦  «        }t	          |d¦  «        rJ ‚t          | d¬¦  «                             t          t          ¦  «        }t	          |d¦  «        sJ ‚t          |j        t          j        ddgddgg¦  «        ¦  «         d S )
N)r   r    rž   r‚   T)r%   rl   g¦µil¯Û?g€aùómÁ¶?g	^á?r   )	r	   r3   ÚX6Úy6Úhasattrr   r‚   r:   r€   )r%   rC   s     rI   Útest_lda_store_covariancerÒ   |  sp  € ð $ð 
ð 
ˆÝ(°Ð7Ñ7Ô7×;Ò;½BÅÑCÔCˆÝ�s˜MÑ*Ô*Ð*Ð*Ð*õ )°ÈÐNÑNÔN×RÒRÝ•ñ
ô 
ˆõ �s˜MÑ*Ô*Ð*Ð*Ð*å!ØŒO�RœX¨°(Ð';¸hÈÐ=QÐ&RÑSÔSñ	
ô 	
ð 	
ð 	
õ
 %¨EÐ
2Ñ
2Ô
2×
6Ò
6µr½2Ñ
>Ô
>€CÝ�s˜MÑ*Ô*Ð*Ð*Ð*õ %¨FÀTÐ
JÑ
JÔ
J×
NÒ
NÍrÕSUÑ
VÔ
V€CÝ�3˜Ñ&Ô&Ð&Ð&Ð&åØŒ�œ H¨hÐ#7¸(ÀHÐ9MÐ"NÑOÔOñô ð ð ð r[   Úseedri   c                 óÂ  — t           j                             | ¦  «        }|                     dd¦  «        }|                     dd¬¦  «        }t          ddd¬¦  «        }t          dt          d¬	¦  «        d¬
¦  «        }|                     ||¦  «         |                     ||¦  «         t          |j	        |j	        ¦  «         t          |j
        |j
        ¦  «         d S )Nrj   ri   r   rP   Tr'   r   ©rl   r&   r%   )r&   ©rl   r-   r%   )r:   r¯   r°   Úrandr²   r	   r   r3   r   r�   r‚   )rÓ   rY   r4   r5   Úc1Úc2s         rI   Útest_lda_shrinkagerÚ   š  sÐ   € õ Œ)×
Ò
 Ñ
%Ô
%€CØ�Š��bÑÔ€AØ�Š�A˜SˆÑ"Ô"€AÝ	#°TÀSÐQWÐ	XÑ	XÔ	X€BÝ	#ØÝ-¸Ð<Ñ<Ô<Øð
ñ 
ô 
€Bð
 ‡F‚Fˆ1ˆa�L„L€LØ‡F‚Fˆ1ˆa�L„L€LÝ�B”I˜rœyÑ)Ô)Ð)Ý�B”N B¤NÑ3Ô3Ð3Ð3Ð3r[   c                  óÐ  —  G d„ d¦  «        } t           j                             d¦  «        }|                     dd¦  «        }|                     dd¬¦  «        }t          d	d
d¬¦  «        }t          d	 | ¦   «         d¬¦  «        }|                     ||¦  «         |                     ||¦  «         t          |j        |j        ¦  «         t          |j	        |j	        ¦  «         d S )Nc                   ó   — e Zd Zd„ ZdS )ú3test_lda_ledoitwolf.<locals>.StandardizedLedoitWolfc                 óø   — t          ¦   «         }|                     |¦  «        }t          |¦  «        d         }|j        d d …t          j        f         |z  |j        t          j        d d …f         z  }|| _        d S )Nr   )r   Úfit_transformr   Úscale_r:   r…   r‚   )Úselfr4   ÚscÚX_scÚss        rI   r3   z7test_lda_ledoitwolf.<locals>.StandardizedLedoitWolf.fit²  sq   € ÝÑ!Ô!ˆBØ×#Ò# AÑ&Ô&ˆDÝ˜DÑ!Ô! !Ô$ˆAà”	˜!˜!˜!�RœZ˜-Ô(¨1Ñ,¨r¬y½¼ÀQÀQÀQ¸Ô/GÑGˆAØ ˆDÔÐÐr[   N)Ú__name__Ú
__module__Ú__qualname__r3   r]   r[   rI   ÚStandardizedLedoitWolfrÝ   ±  s#   € € € € € ð	!ð 	!ð 	!ð 	!ð 	!r[   rè   r   rj   ri   r   )rj   rP   Tr!   r   rÕ   rÖ   )
r:   r¯   r°   r×   r²   r	   r3   r   r�   r‚   )rè   rY   r4   r5   rØ   rÙ   s         rI   Útest_lda_ledoitwolfré   ­  sþ   € ð!ð !ð !ð !ð !ñ !ô !ð !õ Œ)×
Ò
 Ñ
"Ô
"€CØ�Š��bÑÔ€AØ�Š�A˜FˆÑ#Ô#€AÝ	#Ø¨¸ð
ñ 
ô 
€Bõ 
$ØØ3Ð3Ñ5Ô5Øð
ñ 
ô 
€Bð
 ‡F‚Fˆ1ˆa�L„L€LØ‡F‚Fˆ1ˆa�L„L€LÝ�B”I˜rœyÑ)Ô)Ð)Ý�B”N B¤NÑ3Ô3Ð3Ð3Ð3r[   r�   r·   c                 ó.  — t          d¦  «        }d}|                     ||¦  «        }t          j        t	          | ¦  «        || z  dz   ¦  «        d |…         }t          || dz
  ¦  «        }|dz
  d |fD ](}t          |¬¦  «        }|                     ||¦  «         Œ)|dz   t          || dz
  ¦  «        dz   fD ]]}t          |¬¦  «        }d}	t          j
        t          |	¬¦  «        5  |                     ||¦  «         d d d ¦  «         n# 1 swxY w Y   Œ^d S )Nr   ri   r   )r¥   z#n_components cannot be larger than r.   )r   Úrandnr:   Útilerb   Úminr	   r3   Úmaxr>   r?   rA   )
rK   r�   rY   rX   r4   r5   Úmax_componentsr¥   r‰   r—   s
             rI   Útest_lda_dimension_warningrð   Ë  sq  € õ ˜QÑ
Ô
€CØ€IØ�	Š	�)˜ZÑ(Ô(€Aõ 	Œ•�iÑ Ô  )¨yÑ"8¸1Ñ"<Ñ=Ô=¸j¸y¸jÔI€AÝ˜ Y°¡]Ñ3Ô3€Nà'¨!Ñ+¨T°>ÐBð ð ˆå(°lÐCÑCÔCˆØ�Š��1‰Œˆˆà'¨!Ñ+­S°¸YÈ¹]Ñ-KÔ-KÈaÑ-OÐPð ð ˆõ
 )°lÐCÑCÔCˆØ3ˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	ð 	Ø�GŠG�A�q‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	øðð s   Ã&D	Ä	D	ÄD	zdata_type, expected_typec                 óò   — t           D ]n\  }}t          ||¬¦  «        }|                     t                               | ¦  «        t
                               | ¦  «        ¦  «         |j        j        |k    sJ ‚Œod S )Nr$   )r2   r	   r3   r4   Úastyper5   rŸ   r   )Ú	data_typeÚexpected_typer%   r&   rC   s        rI   Útest_lda_dtype_matchrõ   æ  sx   € õ .ð 0ð 0Ñˆ�	Ý(°À)ÐLÑLÔLˆØ�Š•—’˜Ñ#Ô#¥Q§X¢X¨iÑ%8Ô%8Ñ9Ô9Ð9ØŒyŒ -Ò/Ð/Ð/Ð/Ð/ð0ð 0r[   c                  ó  — t           D ]ù\  } }t          | |¬¦  «        }|                     t                               t
          j        ¦  «        t                               t
          j        ¦  «        ¦  «         t          | |¬¦  «        }|                     t                               t
          j        ¦  «        t                               t
          j        ¦  «        ¦  «         d}t          |j
        |j
        |¬¦  «         Œúd S )Nr$   r(   )r)   )r2   r	   r3   r4   rò   r:   Úfloat32r5   Úfloat64r   rŸ   )r%   r&   Úclf_32Úclf_64r)   s        rI   Ú,test_lda_numeric_consistency_float32_float64rû   ö  sÇ   € Ý-ð ?ð ?Ñˆ�	Ý+°6ÀYÐOÑOÔOˆØ�
Š
•1—8’8�BœJÑ'Ô'­¯ªµ"´*Ñ)=Ô)=Ñ>Ô>Ð>Ý+°6ÀYÐOÑOÔOˆØ�
Š
•1—8’8�BœJÑ'Ô'­¯ªµ"´*Ñ)=Ô)=Ñ>Ô>Ð>ð ˆÝ˜œ f¤l¸Ð>Ñ>Ô>Ð>Ð>ð?ð ?r[   c                  ó¢  — t          ¦   «         } |                      t          t          ¦  «                             t          ¦  «        }t          |t          ¦  «         |                      t          t          ¦  «                             t          ¦  «        }t          |t          ¦  «         |                      t          ¦  «        }t          |d d …df         dk    dz   t          ¦  «         |                      t          ¦  «        }t          t          j        |¦  «        |d¦  «         |                      t          t          ¦  «                             t          ¦  «        }t          j        |t          k    ¦  «        sJ ‚t          j        t           ¦  «        5  |                      t          t"          ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r'   r   )r
   r3   rÏ   rÐ   r6   r   ÚX7r8   r9   r   r:   r;   Úy7r=   r>   r?   rA   Úy4)rC   rD   rE   rF   rG   rH   s         rI   Útest_qdar     sœ  € õ (Ñ
)Ô
)€CØ�WŠW•R�‰_Œ_×$Ò$¥RÑ(Ô(€FÝ�v�rÑ"Ô"Ð"ð �gŠg•b�"‰oŒo×%Ò%¥bÑ)Ô)€GÝ�w¥Ñ#Ô#Ð#ð ×%Ò%¥bÑ)Ô)€MÝ˜ a a a¨ dÔ+¨cÒ1°QÑ6½Ñ;Ô;Ð;Ø×-Ò-­bÑ1Ô1ÐÝ�bœfÐ%6Ñ7Ô7¸ÈÑJÔJÐJà�gŠg•b�"‰oŒo×%Ò%¥bÑ)Ô)€GåŒ6�'�R’-Ñ Ô Ð Ð Ð õ 
Œ•zÑ	"Ô	"ð ð Ø�Š••B‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Æ!GÇGÇGc                  óÄ  — t          ¦   «         } |                      t          t          ¦  «                             t          ¦  «        }t          j        |dk    ¦  «        }d}t          t          j        |d|z
  g¦  «        ¬¦  «        } |                      t          t          ¦  «                             t          ¦  «        }t          j        |dk    ¦  «        }||k    sJ ‚d S )Nr   g»½×Ùß|Û=r   r�   )r
   r3   rÏ   rÐ   r6   r:   r}   r€   )rC   rD   Ún_posÚnegÚn_pos2s        rI   Útest_qda_priorsr    s©   € Ý
'Ñ
)Ô
)€CØ�WŠW•R�‰_Œ_×$Ò$¥RÑ(Ô(€FÝŒF�6˜Q’;ÑÔ€Eà
€CÝ
'­r¬x¸¸aÀ#¹g¸Ñ/GÔ/GÐ
HÑ
HÔ
H€CØ�WŠW•R�‰_Œ_×$Ò$¥RÑ(Ô(€FÝŒV�F˜a’KÑ Ô €Fà�EŠ>ˆ>ˆ>ˆ>ˆ>ˆ>r[   Úpriors_type)ÚlistÚtupler€   c                 óö   — ddg}t          t          ddg| ¦  «        ¬¦  «                             t          t          ¦  «        }t          |j        t          j        ¦  «        sJ ‚t          |j        |¦  «         dS )z$Check that priors accept array-like.r'   r�   N)
r
   r   r3   rÏ   rÐ   Ú
isinstancer–   r:   Úndarrayr   )r  r‘   rC   s      rI   Útest_qda_prior_typer  *  sv   € ð �3ˆZ€FÝ
'Ý! 3¨ *¨kÑ:Ô:ðñ ô ç	‚c�"�b�k„kð õ �c”k¥2¤:Ñ.Ô.Ð.Ð.Ð.Ý�s”{ FÑ+Ô+Ð+Ð+Ð+r[   c                  ó  — t          j        ddg¦  «        } t          | ¬¦  «                             t          t
          ¦  «        }t          |j        |j        ¦  «         d| d<   |j        d         |j        d         k    sJ ‚dS )zCCheck that altering `priors` without `fit` doesn't change `priors_`r'   r�   gš™™™™™É?r   N)	r:   r€   r
   r3   r4   r5   r   r–   r‘   )r‘   Úqdas     rI   Útest_qda_prior_copyr  5  sy   € åŒX�s˜C�jÑ!Ô!€FÝ
'¨vÐ
6Ñ
6Ô
6×
:Ò
:½1½aÑ
@Ô
@€Cõ �s”{ C¤JÑ/Ô/Ð/ð €Fˆ1�IØŒ;�qŒ>˜SœZ¨œ]Ò*Ð*Ð*Ð*Ð*Ð*r[   c                  óÎ  — t          ¦   «                              t          t          ¦  «        } t	          | d¦  «        rJ ‚t          d¬¦  «                             t          t          ¦  «        } t	          | d¦  «        sJ ‚t          | j        d         t          j        ddgddgg¦  «        ¦  «         t          | j        d         t          j        dd	gd	d
gg¦  «        ¦  «         d S )Nr‚   T)rl   r   gffffffæ?r“   r   gÚÁQUUÕ?gÚÁQUUÕ¿g“vWUUå?)	r
   r3   rÏ   rÐ   rÑ   r   r‚   r:   r€   )rC   s    rI   Útest_qda_store_covariancer  B  sÜ   € å
'Ñ
)Ô
)×
-Ò
-­bµ"Ñ
5Ô
5€CÝ�s˜MÑ*Ô*Ð*Ð*Ð*õ (¸Ð
>Ñ
>Ô
>×
BÒ
BÅ2ÅrÑ
JÔ
J€CÝ�3˜Ñ&Ô&Ð&Ð&Ð&å˜cœo¨aÔ0µ"´(¸SÀ$¸KÈ$ÐPSÈÐ;UÑ2VÔ2VÑWÔWÐWåØŒ˜ÔÝ
Œ�:˜{Ð+¨k¸:Ð-FÐGÑHÔHñô ð ð ð r[   zcno floating point exceptions, see https://github.com/numpy/numpy/pull/21895#issuecomment-1311525881)Úreasonc                  óì  — d} t          ¦   «         }t          j        t          | ¬¦  «        5  |                     t
          t          ¦  «        }d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                     t
          ¦  «        }d d d ¦  «         n# 1 swxY w Y   t          j
        |t          k    ¦  «        sJ ‚t          d¬¦  «        }t          j        t          | ¬¦  «        5  |                     t
          t          ¦  «         d d d ¦  «         n# 1 swxY w Y   |                     t
          ¦  «        }t          |t          ¦  «         t          d¬¦  «        }t          j        t          | ¬¦  «        5  |                     t          t          ¦  «         d d d ¦  «         n# 1 swxY w Y   |                     t          ¦  «        }t          |t          ¦  «         d S )NzVariables are collinearr.   zdivide by zeror   )Ú	reg_paramr,   )r
   r>   r”   r•   r3   ÚX2rÐ   ÚRuntimeWarningr6   r:   r=   r   ÚX5Úy5)Úcollinear_msgrC   rD   Úy_pred5s       rI   Útest_qda_regularizationr  S  sƒ  € ð .€MÝ
'Ñ
)Ô
)€CÝ	Œ•k¨Ð	7Ñ	7Ô	7ð !ð !Ø—’��R‘”ˆð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !õ 
Œ•nÐ,<Ð	=Ñ	=Ô	=ð !ð !Ø—’�R‘”ˆð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !åŒ6�&�B’,ÑÔÐÐÐõ (°$Ð
7Ñ
7Ô
7€CÝ	Œ•k¨Ð	7Ñ	7Ô	7ð ð Ø�Š••B‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à�[Š[�‰_Œ_€FÝ�v�rÑ"Ô"Ð"õ (°#Ð
6Ñ
6Ô
6€CÝ	Œ•k¨Ð	7Ñ	7Ô	7ð ð Ø�Š••B‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à�kŠk�"‰oŒo€GÝ�w¥Ñ#Ô#Ð#Ð#Ð#sG   ¬!AÁAÁ AÁ?B&Â&B*Â-B*Ã;!D(Ä(D,Ä/D,Æ!F:Æ:F>ÇF>c                  ó„  — t          dddd¬¦  «        \  } }t          j        | t          j        | j        d         dz  ¦  «                             | j        d         | j        d         ¦  «        ¦  «        } t          | d¦  «        }t          ||j        ¦  «         t          | d¦  «        }t          ||j        ¦  «         d S )	Nrj   r·   r   rk   rœ   r   Ú	empiricalr!   )	r   r:   rq   r»   r§   r¹   r   r   r½   )rÌ   r5   Úc_eÚc_ss       rI   Útest_covariancer   ~  s¥   € Ý °¸1È2ÐNÑNÔN�D€A€qõ 	Œˆq•"”)˜AœG AœJ¨!™OÑ,Ô,×4Ò4°Q´W¸Q´ZÀÄÈÄÑLÔLÑMÔM€Aå
ˆq�+Ñ
Ô
€CÝ˜˜SœUÑ#Ô#Ð#å
ˆq�&‰/Œ/€CÝ˜˜SœUÑ#Ô#Ð#Ð#Ð#r[   c                 ó  — t          j        ddgddgg¦  «        }t          j        ddg¦  «        }t          | ¬¦  «        }t          j        t
          d¬¦  «        5  |                     ||¦  «         ddd¦  «         dS # 1 swxY w Y   dS )	zg
    Tests that if the number of samples equals the number
    of classes, a ValueError is raised.
    r'   r’   ÚaÚbrž   z"The number of samples must be morer.   N)r:   r€   r	   r>   r?   rA   r3   )r%   r4   r5   rC   s       rI   Ú=test_raises_value_error_on_same_number_of_classes_and_samplesr$  ‹  sÎ   € õ 	Œ�3˜�*˜s C˜jÐ)Ñ*Ô*€AÝ
Œ�#�s�ÑÔ€AÝ
$¨FÐ
3Ñ
3Ô
3€CÝ	Œ•zÐ)MÐ	NÑ	NÔ	Nð ð Ø�Š��1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁB Â BÂBc                  óX  ‡— t          ¦   «                              t          t          ¦  «        } |                      ¦   «         }d                     ¦   «         Št          j        ˆfd„t          | j	        j
        d         ¦  «        D ¦   «         t          ¬¦  «        }t          ||¦  «         dS )z6Check get_feature_names_out uses class name as prefix.r	   c                 ó   •— g | ]}‰› |› �‘Œ	S r]   r]   )rT   ÚiÚclass_name_lowers     €rI   rZ   z.test_get_feature_names_out.<locals>.<listcomp>   s4   ø€ ð 	
ð 	
ð 	
àð  Ð$ Ð$Ð$ð	
ð 	
ð 	
r[   r   r   N)r	   r3   r4   r5   Úget_feature_names_outÚlowerr:   r€   rb   r³   r§   Úobjectr   )ÚestÚ	names_outÚexpected_names_outr(  s      @rI   Útest_get_feature_names_outr/  ˜  s±   ø€ õ %Ñ
&Ô
&×
*Ò
*­1­aÑ
0Ô
0€CØ×)Ò)Ñ+Ô+€Ià3×9Ò9Ñ;Ô;ÐÝœð	
ð 	
ð 	
ð 	
å˜3Ô8Ô>¸qÔAÑBÔBð	
ñ 	
ô 	
õ ðñ ô Ðõ �yÐ"4Ñ5Ô5Ð5Ð5Ð5r[   )MÚnumpyr:   r>   Úscipyr   Úsklearn.clusterr   Úsklearn.covariancer   r   r   Úsklearn.datasetsr   Úsklearn.discriminant_analysisr	   r
   r   Úsklearn.preprocessingr   Úsklearn.utilsr   Úsklearn.utils._testingr   r   r   r   r   Úsklearn.utils.fixesr   r€   r4   r5   r<   r7   rÏ   rÐ   rþ   rý   r  rÿ   Úc_r»   Úzerosr  r  r2   rJ   ÚmarkÚparametrizerŽ   r™   r£   r©   rµ   rÅ   rÍ   rÒ   rb   rÚ   ré   rð   r÷   rø   Úint32Úint64rõ   rû   r   r  r  r  r  Úxfailr  r   r$  r/  r]   r[   rI   ú<module>rA     s3  ðØ Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð à "Ð "Ð "Ð "Ð "Ð "Ø HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HØ 'Ð 'Ð 'Ð 'Ð 'Ð 'ðð ð ð ð ð ð ð ð ð ð
 1Ð 0Ð 0Ð 0Ð 0Ð 0Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ð ð ð ð ð ð ð ð ð ð )Ð (Ð (Ð (Ð (Ð (ð €B„Hˆr�2ˆh˜˜R˜ 2 r (¨Q°¨F°Q¸°F¸QÀ¸FÐCÈ3ÐOÑOÔO€Ø€B„HÐÐÐÑ Ô €Ø€R„XÐ Ð Ð Ñ!Ô!€ð €R„XØ€TˆBˆ4�"�˜�s˜Q˜C ! Ð%Ø
ðñ ô €ð €R„XØˆ€Vˆb�"ˆX˜˜B�x " b ¨B°¨8°a¸°V¸aÀ¸VÀaÈÀVÈaÐQRÈVÐTñô €ð €R„XÐ)Ð)Ð)Ñ*Ô*€Ø€R„XÐ)Ð)Ð)Ñ*Ô*€ð €R„X�ˆt�b�T˜B˜4 " ¨ s¨Q¨C°!°°q°c¸A¸3Ð?Ñ@Ô@€ð €R„XØˆ!€Wˆr�1ˆg˜˜A�w  Q ¨!¨Q¨°!°Q°¸!¸Q¸À!ÀQÀÈ!ÈQÈÐPñô €ð
 €R„XÐ)Ð)Ð)Ñ*Ô*€ð „Uˆ9ˆ2Œ9�Q‰<Œ<˜˜œ &Ñ)Ô)Ð)Ô*€Ø€R„XÐ&Ð&Ð&Ñ'Ô'€ð
ð 
ð 
Ð ð<ð <ð <ð~ „×Ò˜ q¨! fÑ-Ô-Ø„×Ò˜Ð#;Ð#;Ð#;Ñ<Ô<ð[ð [ñ =Ô<ñ .Ô-ð[ð|:ð :ð :ð2Jð Jð Jð,ð ð ð"ð ð ð:&=ð &=ð &=ðRQð Qð Qð"ð ð ð< „×Ò˜   r¡¤Ñ+Ô+ð4ð 4ñ ,Ô+ð4ð$4ð 4ð 4ð< „×Ò˜¨¨1 vÑ.Ô.Ø„×Ò˜ q¨! fÑ-Ô-ðð ñ .Ô-ñ /Ô.ðð2 „×ÒØà	Œ�R”ZÐ Ø	Œ�R”ZÐ Ø	Œ�2”:ÐØ	Œ�2”:Ðð	ñô ð0ð 0ñô ð0ð	?ð 	?ð 	?ðð ð ð6
ð 
ð 
ð „×Ò˜Ð(BÐ(BÐ(BÑCÔCð,ð ,ñ DÔCð,ð
+ð 
+ð 
+ðð ð ð" „×ÒØð	Mð ñ ô ð!$ð !$ñô ð!$ðH
$ð 
$ð 
$ð „×Ò˜Ð#;Ð#;Ð#;Ñ<Ô<ð	ð 	ñ =Ô<ð	ð6ð 6ð 6ð 6ð 6r[   