Ë
    uwjÍk  ã                   óB  — d Z ddlZddlZddlZddlmZ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 ddlmZmZmZmZ dd	lmZ dd
lmZ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% ddl&m'Z' ddl(m)Z) ddl*m+Z+m,Z,m-Z-m.Z. ddl/m0Z0m1Z1 ddl2m3Z3m4Z4m5Z5  ejl                  «       Z7e7jp                  dd…dd…f   e7jr                  cZ:Z; e'«       jy                  e:«      Z= ej|                  d¬«      \  Z?Z@ej‚                  j…                  ddg idfd e«       gidfdd e«       fgidfd e«       fgddgdœdfg«      d „ «       ZCd!„ ZDd"„ ZEd#„ ZFd$„ ZGd%„ ZHd&„ ZId'„ ZJd(„ ZKd)„ ZLd*„ ZMd+„ ZNd,„ ZOd-„ ZPd.„ ZQd/„ ZRd0„ ZSd1„ ZTej‚                  j…                  d2e:e; ed e«       fd3 ed4¬5«      fg«      fe?e@ ed e«       fd3 ed4¬5«      fg«      fg«      d6„ «       ZUej‚                  j…                  d7 ed e«       fd8 e1d¬9«      fg¬:«       ed ed¬9«      fd8 e0d¬9«      fg¬:«      gd;d<g¬=«      d>„ «       ZVej‚                  j…                  d? ed e«       fd3 ed@¬9«      fgd¬A«       ed ed@¬9«      fd3 ed@¬9«      fgd¬A«      g«      dB„ «       ZWdC„ ZXej‚                  j…                  dDdEddFœg dG¢fdHdIidJdKgfg«      dL„ «       ZYdM„ ZZej‚                  j…                  dNee+fee,fg«      dO„ «       Z[ej‚                  j…                  dNee+fee,fg«       ed¬P«      dQ„ «       «       Z\ej‚                  j…                  dNee+fee,fg«      ej‚                  j…                  dRdSdTg«       ed¬P«      dU„ «       «       «       Z]ej‚                  j…                  dNee+fee,fg«       ed¬P«      dV„ «       «       Z^y)Wz4Testing for the VotingClassifier and VotingRegressoré    N)Úconfig_contextÚdatasets)ÚBaseEstimatorÚClassifierMixinÚclone)ÚCalibratedClassifierCV)Úmake_multilabel_classification)ÚDummyRegressor)ÚRandomForestClassifierÚRandomForestRegressorÚVotingClassifierÚVotingRegressor)ÚNotFittedError)ÚLinearRegressionÚLogisticRegression)ÚGridSearchCVÚcross_val_scoreÚtrain_test_split)ÚOneVsRestClassifier)Ú
GaussianNB)ÚKNeighborsClassifier)ÚStandardScaler)ÚSVC)ÚConsumingClassifierÚConsumingRegressorÚ	_RegistryÚcheck_recorded_metadata)ÚDecisionTreeClassifierÚDecisionTreeRegressor)Úassert_almost_equalÚassert_array_almost_equalÚassert_array_equalé   é   T)Ú
return_X_yzparams, err_msgÚ
estimatorszGInvalid 'estimators' attribute, 'estimators' should be a non-empty listéÕ   Úlré   )r&   Úweightsz0Number of `estimators` and weights must be equalc                 ó®   — t        di | ¤Ž}t        j                  t        |¬«      5  |j	                  t
        t        «       d d d «       y # 1 sw Y   y xY w)N©Úmatch© )r   ÚpytestÚraisesÚ
ValueErrorÚfitÚXÚy)ÚparamsÚerr_msgÚensembles      úg/var/www/html/newmanjeet/manjet/venv/lib/python3.12/site-packages/sklearn/ensemble/tests/test_voting.pyÚ%test_voting_classifier_estimator_initr9   1   s9   € ô,  Ñ) &Ñ)€HÜ	�‰”z¨Ö	1Ø�‰”QœÔ÷ 
2×	1Ñ	1ús   §AÁAc                  óÈ  — t        dt        «       fdt        «       fgd¬«      } d}d}t        j                  t        |¬«      5 }| j
                   d d d «       t        j                  j                  t        «      sJ ‚|t        |j                  j                  «      v sJ ‚t        | d«      rJ ‚| j                  t        t        «       t        | d«      rJ ‚y # 1 sw Y   Œ‰xY w)	NÚlr1Úlr2Úhard©r&   Úvotingú1predict_proba is not available when voting='hard'ú3'VotingClassifier' has no attribute 'predict_proba'r,   Úpredict_proba)r   r   r/   r0   ÚAttributeErrorrB   Ú
isinstanceÚvalueÚ	__cause__ÚstrÚhasattrr2   ÚX_scaledr4   )ÚeclfÚ	inner_msgÚ	outer_msgÚ	exec_infos       r8   Útest_predictproba_hardvotingrN   L   sÅ   € ÜØÔ.Ó0Ð1°EÔ;MÓ;OÐ3PÐQØô€Dð
 D€IØE€IÜ	�‰”~¨YÕ	7¸9Ø×Ò÷ 
8ä�i—o‘o×/Ñ/´Ô@Ð@Ð@Øœ˜IŸO™O×5Ñ5Ó6Ñ6Ð6Ð6ä�t˜_Ô-Ð-Ð-Ø‡H�HŒX”qÔÜ�t˜_Ô-Ð-Ð-Ð-÷ 
8Ð	7ús   ÁCÃC!c                  óJ  — t        dt        «       fdt        «       fgd¬«      } t        dt        «       fg«      }d}t	        j
                  t        |dz  ¬«      5  | j                  t        «       d d d «       t	        j
                  t        |dz  ¬«      5  | j                  t        «       d d d «       t	        j
                  t        |dz  ¬«      5  | j                  t        «       d d d «       t	        j
                  t        |d	z  ¬«      5  |j                  t        «       d d d «       t	        j
                  t        |d	z  ¬«      5  |j                  t        «       d d d «       y # 1 sw Y   ŒúxY w# 1 sw Y   ŒÊxY w# 1 sw Y   ŒšxY w# 1 sw Y   ŒjxY w# 1 sw Y   y xY w)
Nr;   r<   Úsoftr>   ÚdrzfThis %s instance is not fitted yet. Call 'fit' with appropriate arguments before using this estimator.r   r,   r   )r   r   r   r
   r/   r0   r   Úpredictr3   rB   Ú	transformÚX_r)rJ   ÚeregÚmsgs      r8   Útest_notfittedrW   ^   s5  € ÜØÔ.Ó0Ð1°EÔ;MÓ;OÐ3PÐQØô€Dô ˜T¤>Ó#3Ð4Ð5Ó6€Dð	Cð ô 
�‰”~¨SÐ3EÑ-EÖ	FØ�‰”QŒ÷ 
Gä	�‰”~¨SÐ3EÑ-EÖ	FØ×Ñœ1Ô÷ 
Gä	�‰”~¨SÐ3EÑ-EÖ	FØ�‰”qÔ÷ 
Gä	�‰”~¨SÐ3DÑ-DÖ	EØ�‰”SÔ÷ 
Fä	�‰”~¨SÐ3DÑ-DÖ	EØ�‰”sÔ÷ 
FÐ	E÷ 
GÐ	Fúç	FÐ	Fúç	FÐ	Fúç	EÐ	Eúç	EÐ	Eús<   ÁE)ÂE5ÃFÄFÅ
FÅ)E2Å5E>ÆF
ÆFÆF"c                 óÎ   — t        | ¬«      }t        d| ¬«      }t        «       }t        d|fd|fd|fgd¬«      }t	        |t
        t        d	¬
«      }|j                  «       dk\  sJ ‚y)z7Check classification by majority label on dataset iris.©Úrandom_stateé
   ©Ún_estimatorsrZ   r(   ÚrfÚgnbr=   r>   Úaccuracy©ÚscoringçÍÌÌÌÌÌì?N)r   r   r   r   r   r3   r4   Úmean©Úglobal_random_seedÚclf1Úclf2Úclf3rJ   Úscoress         r8   Útest_majority_label_irisrk   t   si   € äÐ+=Ô>€DÜ!¨rÐ@RÔS€DÜ‹<€DÜØ˜4�L 4¨ ,°¸°Ð>Àvô€Dô ˜T¤1¤a°Ô<€Fà�;‰;‹=˜CÒÐÑó    c                  ó˜  — t        d¬«      } t        d¬«      }t        d| fd|fgd¬«      }| j                  t        t
        «      j                  t        «      d   dk(  sJ ‚|j                  t        t
        «      j                  t        «      d   d	k(  sJ ‚|j                  t        t
        «      j                  t        «      d   d	k(  sJ ‚y
)zECheck voting classifier selects smaller class label in tie situation.é{   rY   r(   r^   r=   r>   é4   r)   r#   N)r   r   r   r2   r3   r4   rR   )rg   rh   rJ   s      r8   Útest_tie_situationrp   �   s§   € ä¨3Ô/€DÜ!¨sÔ3€DÜ¨¨t¨°t¸T°lÐ'CÈFÔS€DØ�8‰8”A”q‹>×!Ñ!¤!Ó$ RÑ(¨AÒ-Ð-Ð-Ø�8‰8”A”q‹>×!Ñ!¤!Ó$ RÑ(¨AÒ-Ð-Ð-Ø�8‰8”A”q‹>×!Ñ!¤!Ó$ RÑ(¨AÒ-Ð-Ñ-rl   c                 óÔ   — t        | ¬«      }t        d| ¬«      }t        «       }t        d|fd|fd|fgdg d¢¬	«      }t	        |t
        t        d
¬«      }|j                  «       dk\  sJ ‚y)z>Check classification by average probabilities on dataset iris.rY   r[   r\   r(   r^   r_   rP   ©r#   r)   r[   ©r&   r?   r*   r`   ra   rc   N)r   r   r   r   r   rI   r4   rd   re   s         r8   Útest_weights_irisrt   ‹   sm   € äÐ+=Ô>€DÜ!¨rÐ@RÔS€DÜ‹<€DÜØ˜4�L 4¨ ,°¸°Ð>ØÚô€Dô
 ˜T¤8¬Q¸
ÔC€FØ�;‰;‹=˜CÒÐÑrl   c                  ó<  — t        d¬«      } t        d¬«      }t        dd¬«      }t        d| fd|fd|fgg d¢¬«      }t        t        t        d	¬
«      \  }}}}| j                  ||«      j                  |«      }|j                  ||«      j                  |«      }	|j                  ||«      j                  |«      }
|j                  ||«      j                  |«      }t        j                  t        j                  ||	|
g«      dg d¢¬«      }t        ||d¬«       t        d| fd|fd|fgd¬«      }t        d| fd|fd|fgg d¢¬«      }|j                  ||«       |j                  ||«       |j                  |«      }|j                  |«      }t        ||d¬«       y)zACheck weighted average regression prediction on diabetes dataset.rd   )ÚstrategyÚmedianÚquantileçš™™™™™É?)rv   rx   rr   )r*   g      Ð?)Ú	test_sizer   )Úaxisr*   r)   ©ÚdecimalN©r#   r#   r#   )r
   r   r   rT   Úy_rr2   rR   ÚnpÚaverageÚasarrayr    )Úreg1Úreg2Úreg3rU   Ú	X_r_trainÚX_r_testÚ	y_r_trainÚy_r_testÚ	reg1_predÚ	reg2_predÚ	reg3_predÚ	ereg_predÚavgÚereg_weights_noneÚereg_weights_equalÚereg_none_predÚereg_equal_preds                    r8   Útest_weights_regressorr“   ™   sž  € ä 6Ô*€DÜ 8Ô,€DÜ :¸Ô<€DÜØ
�$ˆ˜( DÐ)¨J¸Ð+=Ð>Ê
ô€Dô 0@ÜŒS˜Dô0Ñ,€Iˆx˜ Hð —‘˜ IÓ.×6Ñ6°xÓ@€IØ—‘˜ IÓ.×6Ñ6°xÓ@€IØ—‘˜ IÓ.×6Ñ6°xÓ@€IØ—‘˜ IÓ.×6Ñ6°xÓ@€Iä
�*‰*Ü
�
‰
�I˜y¨)Ð4Ó5¸AÂzô€Cô ˜	 3°Õ2ä'Ø
�$ˆ˜( DÐ)¨J¸Ð+=Ð>ÈôÐô )Ø
�$ˆ˜( DÐ)¨J¸Ð+=Ð>Ê	ôÐð ×Ñ˜) YÔ/Ø×Ñ˜9 iÔ0Ø&×.Ñ.¨xÓ8€NØ(×0Ñ0°Ó:€OÜ˜¨ÀÖCrl   c           	      óì  — t        | ¬«      }t        d| ¬«      }t        «       }t        j                  ddgddgdd	gd
dgddgddgg«      }t        j                  g d¢«      }t        |j                  ||«      j                  |«      g d¢«       t        |j                  ||«      j                  |«      g d¢«       t        |j                  ||«      j                  |«      g d¢«       t        d|fd|fd|fgdg d¢¬«      }t        |j                  ||«      j                  |«      g d¢«       t        d|fd|fd|fgdg d¢¬«      }t        |j                  ||«      j                  |«      g d¢«       y)z6Manually check predicted class labels for toy dataset.rY   r[   r\   çš™™™™™ñ¿ç      ø¿ç333333ó¿çffffffö¿ç333333Àçš™™™™™Àçš™™™™™ñ?ç333333ó?gÍÌÌÌÌÌ @gffffffö?gÍÌÌÌÌÌ@gffffff@)r#   r#   r#   r)   r)   r)   r(   r^   r_   r=   r~   rs   rP   N)	r   r   r   r€   Úarrayr"   r2   rR   r   )rf   rg   rh   ri   r3   r4   rJ   s          r8   Útest_predict_on_toy_problemrž   ½   sY  € äÐ+=Ô>€DÜ!¨rÐ@RÔS€DÜ‹<€Dä
�‰Ø
�ˆ˜˜d�| d¨D \°C¸°:ÀÀS¸zÈCÐQTÈ:ÐVó	€Aô 	�‰Ò#Ó$€Aä�t—x‘x  1“~×-Ñ-¨aÓ0Ò2DÔEÜ�t—x‘x  1“~×-Ñ-¨aÓ0Ò2DÔEÜ�t—x‘x  1“~×-Ñ-¨aÓ0Ò2DÔEäØ˜4�L 4¨ ,°¸°Ð>ØÚô€Dô
 �t—x‘x  1“~×-Ñ-¨aÓ0Ò2DÔEäØ˜4�L 4¨ ,°¸°Ð>ØÚô€Dô
 �t—x‘x  1“~×-Ñ-¨aÓ0Ò2DÕErl   c                  óú  — t        d¬«      } t        d¬«      }t        «       }t        j                  ddgddgddgd	d
gg«      }t        j                  g d¢«      }t        j                  ddgddgddgddgg«      }t        j                  ddgddgddgddgg«      }t        j                  ddgddgddgddgg«      }d|d   d   z  |d   d   z   |d   d   z   d z  }d|d!   d!   z  |d!   d!   z   |d!   d!   z   d z  }	d|d   d!   z  |d   d!   z   |d   d!   z   d z  }
d|d"   d!   z  |d"   d!   z   |d"   d!   z   d z  }t        d#| fd$|fd%|fgd&g d'¢¬(«      }|j                  ||«      j                  |«      }t        ||d   d   d!¬)«       t        |	|d!   d!   d!¬)«       t        |
|d   d!   d!¬)«       t        ||d"   d!   d!¬)«       d*}d+}t        j                  t        |¬,«      5 }t        d#| fd$|fd%|fgd-¬.«      }|j                  ||«      j                  |«       d/d/d/«       t        j                  j                  t        «      sJ ‚|t        |j                  j                  «      v sJ ‚y/# 1 sw Y   ŒSxY w)0z1Calculate predicted probabilities on toy dataset.rn   rY   r•   r–   r—   r˜   r™   rš   r›   rœ   ©r#   r#   r)   r)   g…7sa"ã?gö�=ñ»Ù?g�½¤Rhpâ?gâ„¶Z/Û?glç^Ô¬;à?g(1BW¦ˆß?gµU(V6ÁÙ?g&ÕëÔdã?gš™™™™™é?ry   ç333333Ó?çffffffæ?gá5ùwÇóï?g9=”qX?gè_óï?g$ö/ÐAY?ç        ç      ð?r)   r   é   r#   r$   r(   r^   r_   rP   )r)   r#   r#   rs   r|   r@   rA   r,   r=   r>   N)r   r   r   r€   r�   r   r2   rB   r    r/   r0   rC   rD   rE   rF   rG   )rg   rh   ri   r3   r4   Úclf1_resÚclf2_resÚclf3_resÚt00Út11Út21Út31rJ   Úeclf_resrK   rL   rM   s                    r8   Ú!test_predict_proba_on_toy_problemr®   Ü   sÏ  € ä¨3Ô/€DÜ!¨sÔ3€DÜ‹<€DÜ
�‰�4˜�,  t ¨t°T¨l¸SÀ#¸JÐGÓH€AÜ
�‰’Ó€Aä�x‰xà˜Ð$Ø˜Ð$Ø˜Ð$Ø˜Ð$ð		
ó€Hô �x‰x˜#˜s˜ c¨3 Z°#°s°¸cÀ3¸ZÐHÓI€Hä�x‰xØ
�YÐ	 *¨jÐ!9¸CÀ¸:ÈÈSÀzÐRó€Hð ˆx˜‰{˜1‰~Ñ ¨¡¨A¡Ñ.°¸!±¸Q±Ñ?À1Ñ
D€CØˆx˜‰{˜1‰~Ñ ¨¡¨A¡Ñ.°¸!±¸Q±Ñ?À1Ñ
D€CØˆx˜‰{˜1‰~Ñ ¨¡¨A¡Ñ.°¸!±¸Q±Ñ?À1Ñ
D€CØˆx˜‰{˜1‰~Ñ ¨¡¨A¡Ñ.°¸!±¸Q±Ñ?À1Ñ
D€CäØ˜4�L 4¨ ,°¸°Ð>ØÚô€Dð
 �x‰x˜˜1‹~×+Ñ+¨AÓ.€Hä˜˜X a™[¨™^°QÕ7Ü˜˜X a™[¨™^°QÕ7Ü˜˜X a™[¨™^°QÕ7Ü˜˜X a™[¨™^°QÕ7àC€IØE€IÜ	�‰”~¨YÕ	7¸9ÜØ˜t˜ t¨T l°U¸D°MÐBÈ6ô
ˆð 	�‰��A‹×$Ñ$ QÔ'÷	 
8ô �i—o‘o×/Ñ/´Ô@Ð@Ð@Øœ˜IŸO™O×5Ñ5Ó6Ñ6Ð6Ñ6÷ 
8Ð	7ús   Ç'8I1É1I:c                  ó¶   — t        dddd¬«      \  } }t        t        d¬«      «      }t        d|fgd	¬
«      }	 |j	                  | |«       y# t
        $ r Y yw xY w)z7Check if error is raised for multilabel classification.r)   r#   Frn   )Ú	n_classesÚn_labelsÚallow_unlabeledrZ   Úlinear)ÚkernelÚovrr=   r>   N)r	   r   r   r   r2   ÚNotImplementedError)r3   r4   ÚclfrJ   s       r8   Útest_multilabelr¸     s`   € ä)Ø˜a°ÀSô�D€A€qô œc¨Ô2Ó
3€Cä¨°¨ ~¸fÔE€DðØ�‰��A�øÜò Ùðús   ¹A Á	AÁAc                  óæ   — t        d¬«      } t        dd¬«      }t        «       }t        d| fd|fd|fgd¬	«      }d
dgddgg d¢g d¢gdœ}t	        ||d¬«      }|j                  t        t        «       y)zCheck GridSearch support.r#   rY   r$   )rZ   r]   r(   r^   r_   rP   r>   r¤   g      Y@r=   )ç      à?rº   rº   )r¤   rº   rº   )Úlr__Cr?   r*   r)   )Ú	estimatorÚ
param_gridÚcvN)r   r   r   r   r   r2   rI   r4   )rg   rh   ri   rJ   r5   Úgrids         r8   Útest_gridsearchrÀ     s   € ä¨1Ô-€DÜ!¨q¸qÔA€DÜ‹<€DÜØ˜4�L 4¨ ,°¸°Ð>Àvô€Dð
 �u�Ø˜6Ð"Ú#¢_Ð5ñ€Fô  $°6¸aÔ@€DØ‡H�HŒX”qÕrl   c                 óþ  — t        | ¬«      }t        d| ¬«      }t        «       }t        j                  ddgddgdd	gd
dgg«      }t        j                  g d¢«      }t        d|fd|fd|fgdd¬«      j                  ||«      }t        d|fd|fd|fgdd¬«      j                  ||«      }t        |j                  |«      |j                  |«      «       t        |j                  |«      |j                  |«      «       y)z:Check parallel backend of VotingClassifier on toy dataset.rY   r[   r\   r•   r–   r—   r˜   r™   rš   r›   rœ   r    r(   r^   r_   rP   r#   )r&   r?   Ún_jobsr)   N)r   r   r   r€   r�   r   r2   r"   rR   r!   rB   )rf   rg   rh   ri   r3   r4   Úeclf1Úeclf2s           r8   Útest_parallel_fitrÅ   2  sü   € äÐ+=Ô>€DÜ!¨rÐ@RÔS€DÜ‹<€DÜ
�‰�4˜�,  t ¨t°T¨l¸SÀ#¸JÐGÓH€AÜ
�‰’Ó€AäØ˜4�L 4¨ ,°¸°Ð>ÀvÐVWôç	�cˆ!ˆQƒið 
ô Ø˜4�L 4¨ ,°¸°Ð>ÀvÐVWôç	�cˆ!ˆQƒið 
ô �u—}‘} QÓ'¨¯©°qÓ)9Ô:Ü˜e×1Ñ1°!Ó4°e×6IÑ6IÈ!Ó6LÕMrl   c           	      ó¤  — t        | ¬«      }t        d| ¬«      }t        t        | ¬«      d¬«      }t	        d|fd|fd|fgd	¬
«      j                  t        t        t        j                  t        t        «      f«      ¬«      }t	        d|fd|fd|fgd	¬
«      j                  t        t        «      }t        |j                  t        «      |j                  t        «      «       t        |j                  t        «      |j                  t        «      «       t        j                  j!                  | «      j#                  t        t        «      f¬«      }t	        d|fgd	¬
«      }|j                  t        t        |¬«       |j                  t        t        |«       t        |j                  t        «      |j                  t        «      «       t        |j                  t        «      |j                  t        «      «       t%        «       }t	        d|fd|fd|fgd	¬
«      }d}	t'        j(                  t*        |	¬«      5  |j                  t        t        |¬«       ddd«        G d„ dt,        t.        «      }
 |
«       }t'        j(                  t*        d¬«      5  |j                  t        t        |¬«       ddd«       y# 1 sw Y   ŒexY w# 1 sw Y   yxY w)z1Tests sample_weight parameter of VotingClassifierrY   r[   r\   F)r7   r(   r^   ÚsvcrP   r>   ©Úsample_weight)ÚsizeÚknnzJUnderlying estimator KNeighborsClassifier does not support sample weights.r,   Nc                   ó   — e Zd Zd„ Zy)ú.test_sample_weight.<locals>.ClassifierErrorFitc                 ó   — t        d«      ‚)Nz!Error unrelated to sample_weight.)Ú	TypeError)ÚselfrI   r4   rÉ   s       r8   r2   z2test_sample_weight.<locals>.ClassifierErrorFit.fitj  s   € ÜÐ?Ó@Ð@rl   N)Ú__name__Ú
__module__Ú__qualname__r2   r.   rl   r8   ÚClassifierErrorFitrÍ   i  s   „ ó	Arl   rÔ   z Error unrelated to sample_weight)r   r   r   r   r   r2   rI   r4   r€   ÚonesÚlenr"   rR   r!   rB   ÚrandomÚRandomStateÚuniformr   r/   r0   rÏ   r   r   )rf   rg   rh   ri   rÃ   rÄ   rÉ   Úeclf3Úclf4rV   rÔ   r·   s               r8   Útest_sample_weightrÜ   E  s4  € äÐ+=Ô>€DÜ!¨rÐ@RÔS€DÜ!¤#Ð3EÔ"FÐQVÔW€DÜØ˜4�L 4¨ ,°¸°Ð>Àvôç	�cŒ(”A¤R§W¡W¬c´!«f¨YÓ%7€cÓ8ð 
ô Ø˜4�L 4¨ ,°¸°Ð>Àvôç	�cŒ(”AÓð 
ô �u—}‘}¤XÓ.°·±¼hÓ0GÔHÜØ×ÑœHÓ% u×':Ñ':¼8Ó'Dôô —I‘I×)Ñ)Ð*<Ó=×EÑEÌCÔPQËFÈ9ÐEÓU€MÜ¨$°¨¨¸vÔF€EØ	‡I�IŒhœ¨€IÔ7Ø‡H�HŒX”q˜-Ô(Ü�u—}‘}¤XÓ.°·±¼XÓ0FÔGÜØ×ÑœHÓ% t×'9Ñ'9¼(Ó'Côô  Ó!€DÜØ˜4�L 5¨$ -°%¸°Ð?Èô€Eð W€CÜ	�‰”y¨Ö	,Ø�	‰	”(œA¨]ˆ	Ô;÷ 
-ô
Aœ_¬mô Añ Ó
€CÜ	�‰”yÐ(JÖ	KØ�‰”œ!¨=ˆÔ9÷ 
LÐ	K÷ 
-Ð	,ú÷ 
LÐ	Kús   È9J:ÊKÊ:KËKc            	      óÔ   —  G d„ dt         t        «      }  | «       }t        d|fgd¬«      }|j                  t        t
        t        j                  t        t
        «      f«      ¬«       y)z:Check that VotingClassifier passes sample_weight as kwargsc                   ó   — e Zd ZdZd„ Zy)ú1test_sample_weight_kwargs.<locals>.MockClassifierzAMock Classifier to check that sample_weight is received as kwargsc                 ó   — d|v sJ ‚y )NrÉ   r.   )rÐ   r3   r4   ÚargsrÉ   s        r8   r2   z5test_sample_weight_kwargs.<locals>.MockClassifier.fitx  s   € Ø" mÑ3Ð3Ñ3rl   N)rÑ   rÒ   rÓ   Ú__doc__r2   r.   rl   r8   ÚMockClassifierrß   u  s
   „ ÙOó	4rl   rã   ÚmockrP   r>   rÈ   N)	r   r   r   r2   r3   r4   r€   rÕ   rÖ   )rã   r·   rJ   s      r8   Útest_sample_weight_kwargsrå   r  sO   € ô4œ¬-ô 4ñ Ó
€CÜ¨°¨ ¸vÔF€Dð 	‡H�HŒQ”¤§¡¬#¬a«&¨Ó!3€HÕ4rl   c                 ó¼  — t        | ¬«      }t        d| d ¬«      }t        «       }t        d|fd|fgdddg¬	«      j	                  t
        t        «      }t        d|fd
|fgdddg¬	«      }|j                  |¬«      j	                  t
        t        «       t        |j                  t
        «      |j                  t
        «      «       t        |j                  t
        «      |j                  t
        «      «       |j                  d   d   j                  «       |j                  «       k(  sJ ‚|j                  d   d   j                  «       |j                  «       k(  sJ ‚y )NrY   r[   )r]   rZ   Ú	max_depthr(   r^   rP   r#   r)   )r?   r*   Únb)rè   r   )r   r   r   r   r2   rI   r4   Ú
set_paramsr"   rR   r!   rB   r&   Ú
get_params)rf   rg   rh   ri   rÃ   rÄ   s         r8   Ú!test_voting_classifier_set_paramsrë   ‚  s:  € äÐ+=Ô>€DÜ!ØÐ&8ÀDô€Dô ‹<€DäØ
�ˆ˜˜d�|Ð$¨V¸aÀ¸Vôç	�cŒ(”AÓð 
ô Ø
�ˆ˜˜d�|Ð$¨V¸aÀ¸Vô€Eð 
×Ñ˜ÐÓ×!Ñ!¤(¬AÔ.ä�u—}‘}¤XÓ.°·±¼hÓ0GÔHÜØ×ÑœHÓ% u×':Ñ':¼8Ó'Dôð ×Ñ˜AÑ˜qÑ!×,Ñ,Ó.°$·/±/Ó2CÒCÐCÐCØ×Ñ˜AÑ˜qÑ!×,Ñ,Ó.°$·/±/Ó2CÒCÐCÑCrl   c            	      ó´  — t        d¬«      } t        dd¬«      }t        «       }t        d| fd|fd|fgdg d	¢¬
«      j	                  t
        t        «      }t        d| fd|fd|fgdg d¢¬
«      }|j                  d¬«      j	                  t
        t        «       t        |j                  t
        «      |j                  t
        «      «       t        |j                  «      d   dk(  sJ ‚t        |j                  «      dk(  sJ ‚t        d„ |j                  D «       «      sJ ‚|j                  «       d   dk(  sJ ‚|j                  d¬«      j	                  t
        t        «       |j                  d¬«      j	                  t
        t        «       t        |j                  t
        «      |j                  t
        «      «       t!        |j#                  t
        «      |j#                  t
        «      «       d}t%        j&                  t(        |¬«      5  |j                  ddd¬«      j	                  t
        t        «       d d d «       t+        j,                  dgdgg«      }t+        j,                  ddg«      }t        d|fd|fgdddgd¬«      j	                  ||«      }t        d|fd|fgdddgd¬«      }|j                  d¬«      j	                  ||«       t!        |j/                  |«      t+        j,                  ddgddggddgddggg«      «       t!        |j/                  |«      t+        j,                  ddgddggg«      «       |j                  d¬«       |j                  d¬«       t        |j/                  |«      t+        j,                  ddgddgg«      «       t        |j/                  |«      t+        j,                  dgdgg«      «       y # 1 sw Y   �Œ–xY w)Nrn   rY   r[   r\   r(   r^   rè   r=   )r#   r   rº   rs   )r#   r#   rº   Údrop)r^   r)   c              3   óH   K  — | ]  }t        |t        t        f«      –— Œ y ­w)N)rD   r   r   )Ú.0Úests     r8   Ú	<genexpr>z*test_set_estimator_drop.<locals>.<genexpr>±  s"   è ø€ ð ÙEV¸cŒ
�3Ô+¬ZÐ8×9ÑEVùs   ‚ "rP   )r?   z4All estimators are dropped. At least one is requiredr,   )r(   r^   rè   r#   r   rº   F)r&   r?   r*   Úflatten_transformr¢   r¡   r¤   r£   )r   r   r   r   r2   r3   r4   ré   r"   rR   Údictr&   rÖ   Úestimators_Úallrê   r!   rB   r/   r0   r1   r€   r�   rS   )rg   rh   ri   rÃ   rÄ   rV   ÚX1Úy1s           r8   Útest_set_estimator_droprø   š  sw  € ô ¨3Ô/€DÜ!¨rÀÔD€DÜ‹<€DÜØ˜4�L 4¨ ,°°t°Ð=ØÚô÷ 
�cŒ!ŒQƒið	 
ô Ø˜4�L 4¨ ,°°t°Ð=ØÚô€Eð
 
×Ñ˜ÐÓ×#Ñ#¤A¤qÔ)ä�u—}‘}¤QÓ'¨¯©´qÓ)9Ô:ä�× Ñ Ó! $Ñ'¨6Ò1Ð1Ð1Üˆu× Ñ Ó! QÒ&Ð&Ð&Üñ ØEJ×EVÒEVóô ð ð ð ×ÑÓ˜dÑ# vÒ-Ð-Ð-à	×Ñ˜FÐÓ#×'Ñ'¬¬1Ô-Ø	×Ñ˜FÐÓ#×'Ñ'¬¬1Ô-ä�u—}‘}¤QÓ'¨¯©´qÓ)9Ô:Ü˜e×1Ñ1´!Ó4°e×6IÑ6IÌ!Ó6LÔMØ
@€CÜ	�‰”z¨Ö	-Ø×Ñ˜F v°&ÐÓ9×=Ñ=¼aÄÔC÷ 
.ô 
�‰�A�3˜˜�*Ó	€BÜ	�‰�1�a�&Ó	€BÜØ˜4�L 4¨ ,Ð/ØØ�C�Øô	÷
 
�cˆ"ˆbƒkð 
ô Ø˜4�L 4¨ ,Ð/ØØ�C�Øô	€Eð 
×Ñ˜ÐÓ×#Ñ# B¨Ô+ÜØ�‰˜ÓÜ
�‰�C˜�:  S˜zÐ*¨c°3¨Z¸#¸s¸Ð,DÐEÓFôô ˜eŸo™o¨bÓ1´2·8±8¸sÀC¸jÈ3ÐPSÈ*Ð=UÐ<VÓ3WÔXØ	×Ñ˜FÐÔ#Ø	×Ñ˜FÐÔ#Ü�u—‘ rÓ*¬B¯H©H°q¸!°f¸qÀ!¸fÐ5EÓ,FÔGÜ�u—‘ rÓ*¬B¯H©H°q°c¸A¸3°ZÓ,@ÕA÷9 
.Ñ	-ús   È-OÏOc                 ó|  — t        | ¬«      }t        d| ¬«      }t        d|fd|fgddgd¬	«      }t        d|fd|fgt        j                  d
«      d¬	«      }|j                  t        t        «       |j                  t        t        «       t        |j                  t        «      |j                  t        «      «       y )NrY   r[   r\   r(   r^   r#   r)   rP   )r&   r*   r?   )r#   r)   )
r   r   r   r€   r�   r2   rI   r4   r!   rB   )rf   rg   rh   rÃ   rÄ   s        r8   Útest_estimator_weights_formatrú   Û  s§   € äÐ+=Ô>€DÜ!¨rÐ@RÔS€DÜØ˜4�L 4¨ ,Ð/¸!¸Q¸Èô€Eô Ø˜4�L 4¨ ,Ð/¼¿¹À&Ó9IÐRXô€Eð 
‡I�IŒhœÔØ	‡I�IŒhœÔÜØ×ÑœHÓ% u×':Ñ':¼8Ó'Dõrl   c                 óf  — t        | ¬«      }t        d| ¬«      }t        «       }t        j                  ddgddgdd	gd
dgg«      }t        j                  g d¢«      }t        d|fd|fd|fgd¬«      j                  ||«      }t        d|fd|fd|fgdd¬«      j                  ||«      }t        d|fd|fd|fgdd¬«      j                  ||«      }t        |j                  |«      j                  d«       t        |j                  |«      j                  d«       t        |j                  |«      j                  d«       t        |j                  |«      |j                  |«      «       t        |j                  |«      j                  dd«      j                  d«      |j                  |«      «       y)z:Check transform method of VotingClassifier on toy dataset.rY   r[   r\   r•   r–   r—   r˜   r™   rš   r›   rœ   r    r(   r^   r_   rP   r>   T©r&   r?   rò   F)r¥   é   )r$   r¥   r)   r   r#   N)r   r   r   r€   r�   r   r2   r"   rS   Úshaper!   ÚswapaxesÚreshape)	rf   rg   rh   ri   r3   r4   rÃ   rÄ   rÚ   s	            r8   Útest_transformr  ì  s–  € äÐ+=Ô>€DÜ!¨rÐ@RÔS€DÜ‹<€DÜ
�‰�4˜�,  t ¨t°T¨l¸SÀ#¸JÐGÓH€AÜ
�‰’Ó€AäØ˜4�L 4¨ ,°¸°Ð>Àvôç	�cˆ!ˆQƒið 
ô Ø˜4�L 4¨ ,°¸°Ð>ØØô÷ 
�cˆ!ˆQƒið	 
ô
 Ø˜4�L 4¨ ,°¸°Ð>ØØô÷ 
�cˆ!ˆQƒið	 
ô �u—‘ qÓ)×/Ñ/°Ô8Ü�u—‘ qÓ)×/Ñ/°Ô8Ü�u—‘ qÓ)×/Ñ/°Ô;Ü˜eŸo™o¨aÓ0°%·/±/À!Ó2DÔEÜØ�‰˜Ó×#Ñ# A qÓ)×1Ñ1°&Ó9¸5¿?¹?È1Ó;Mõrl   zX, y, voterr^   é   )r]   c                 óŒ  — t        |«      }t        «       j                  | «      }|j                  ||t	        j
                  |j                  «      ¬«       |j                  d¬«       |j                  ||t	        j
                  |j                  «      ¬«       |j                  |«      }|j                  |j                  k(  sJ ‚y )NrÈ   rí   )r(   )	r   r   Úfit_transformr2   r€   rÕ   rþ   ré   rR   )r3   r4   ÚvoterrI   Úy_preds        r8   Ú test_none_estimator_with_weightsr    s“   € ô: �%‹L€EäÓ×-Ñ-¨aÓ0€HØ	‡I�Iˆh˜¬¯©°·±Ó)9€IÔ:Ø	×Ñ˜ÐÔØ	‡I�Iˆh˜¬¯©°·±Ó)9€IÔ:Ø�]‰]˜8Ó$€FØ�<‰<˜1Ÿ7™7Ò"Ð"Ñ"rl   rð   ÚtreerY   ©r&   r   r   )Úidsc                 óš   — t        | «      } ddgddgddgg}g d¢}t        | d«      rJ ‚| j                  ||«       | j                  dk(  sJ ‚y )	Nr#   r)   r$   r¥   r  rý   ©r   r#   r)   Ún_features_in_)r   rH   r2   r  )rð   r3   r4   s      r8   Útest_n_features_inr  2  s\   € ô& �‹*€CØ
ˆQˆ�!�Q�˜!˜Q˜Ð €AÚ€Aä�sÐ,Ô-Ð-Ð-Ø‡G�GˆAˆq„MØ×Ñ Ò"Ð"Ñ"rl   r¼   rn   )r&   Úverbosec                 ó   — t        j                  ddgddgddgddgg«      }t        j                  g d	¢«      }d
}t        | «      j                  ||«       t	        j
                  ||j                  «       d   «      sJ ‚y )Nr•   r–   r—   r˜   r™   rš   r›   rœ   r    za\[Voting\].*\(1 of 2\) Processing lr, total=.*\n\[Voting\].*\(2 of 2\) Processing rf, total=.*\n$r   )r€   r�   r   r2   Úrer-   Ú
readouterr)r¼   Úcapsysr3   r4   Úpatterns        r8   Útest_voting_verboser  N  s|   € ô( 	�‰�4˜�,  t ¨t°T¨l¸SÀ#¸JÐGÓH€AÜ
�‰’Ó€Að	=ð ô 
ˆ)Ó×Ñ˜˜AÔÜ�8‰8�G˜V×.Ñ.Ó0°Ñ3Ô4Ð4Ñ4rl   c                  óÐ   — ddgddgddgg} g d¢}t        dt        «       fd	t        d
¬«      fdg¬«      }|j                  | |«       |j	                  «       }ddg}t        ||«       y)z1Check get_feature_names_out output for regressor.r#   r)   r$   r¥   r  rý   r  r(   r  r   rY   )Úignorerí   r	  Úvotingregressor_lrÚvotingregressor_treeN)r   r   r   r2   Úget_feature_names_outr"   )r3   r4   r?   Ú	names_outÚexpected_namess        r8   Ú%test_get_features_names_out_regressorr  m  s€   € ð ˆQˆ�!�Q�˜!˜Q˜Ð €AÚ€AäàÔ#Ó%Ð&ØÔ*¸Ô:Ð;Øð
ô€Fð ‡J�Jˆq�!Ôà×,Ñ,Ó.€IØ*Ð,BÐC€NÜ�y .Õ1rl   zkwargs, expected_namesrP   )r?   rò   )Úvotingclassifier_lr0Úvotingclassifier_lr1Úvotingclassifier_lr2Úvotingclassifier_tree0Úvotingclassifier_tree1Úvotingclassifier_tree2r?   r=   Úvotingclassifier_lrÚvotingclassifier_treec           	      ó.  — ddgddgddgddgg}g d¢}t        dd	d
t        d¬«      fdt        d¬«      fgi| ¤Ž}|j                  ||«       |j	                  |«      }|j                  «       }|j                  d   t        |«      k(  sJ ‚t        ||«       y)zBCheck get_feature_names_out for classifier for different settings.r#   r)   r$   r¥   r  rý   rœ   )r   r#   r)   r   r&   r(   r   rY   r  Nr.   )	r   r   r   r2   rS   r  rþ   rÖ   r"   )Úkwargsr  r3   r4   r?   ÚX_transr  s          r8   Ú&test_get_features_names_out_classifierr)  �  sµ   € ð& ˆQˆ�!�Q�˜!˜Q˜ ! S Ð*€AÚ€Aäñ àÔ%°1Ô5Ð6ØÔ+¸Ô;Ð<ð
ðð
 ñ€Fð ‡J�Jˆq�!ÔØ×Ñ˜qÓ!€GØ×,Ñ,Ó.€Ià�=‰=˜Ñœs >Ó2Ò2Ð2Ð2Ü�y .Õ1rl   c                  ó  — ddgddgddgg} g d¢}t        dt        d	¬
«      fdt        d	¬
«      fgdd¬«      }|j                  | |«       d}t	        j
                  t        |¬«      5  |j                  «        ddd«       y# 1 sw Y   yxY w)zJCheck that error is raised when voting="soft" and flatten_transform=False.r#   r)   r$   r¥   r  rý   r  r(   r   rY   r  rP   Frü   zYget_feature_names_out is not supported when `voting='soft'` and `flatten_transform=False`r,   N)r   r   r   r2   r/   r0   r1   r  )r3   r4   r?   rV   s       r8   Ú,test_get_features_names_out_classifier_errorr+  ¦  s”   € à
ˆQˆ�!�Q�˜!˜Q˜Ð €AÚ€AäàÔ%°1Ô5Ð6ØÔ+¸Ô;Ð<ð
ð Øô€Fð ‡J�Jˆq�!Ôð	$ð ô 
�‰”z¨Ö	-Ø×$Ñ$Ô&÷ 
.×	-Ñ	-ús   Á'BÂB
zEstimator, Childc                 óð   — t        j                  ddgddgddgg«      }g d¢}t        j                  t        d¬«      5   | d	 |«       g«      j                  ||g d
¢d¬«       ddd«       y# 1 sw Y   yxY w)z�Test that the right error message is raised when metadata is passed while
    not supported when `enable_metadata_routing=False`.r   r#   r)   r¥   rý   ©r#   r)   r$   z1is only supported if enable_metadata_routing=Truer,   r·   r~   Úa©rÉ   ÚmetadataN)r€   r�   r/   r0   r1   r2   )Ú	EstimatorÚChildr3   r4   s       r8   Ú*test_routing_passed_metadata_not_supportedr3  Á  sr   € ô 	�‰�1�a�&˜1˜a˜& 1 a &Ð)Ó*€AÚ€Aä	�‰ÜÐMö
ñ 	�5™%›'Ð"Ó#×'Ñ'¨¨1ºIÐPSÐ'ÔT÷
÷ 
ñ 
ús   ¾%A,Á,A5)Úenable_metadata_routingc                 óD   —  | d |«       fg«      }|j                  «        y )NÚsub_est)Úget_metadata_routing)r1  r2  rð   s      r8   Ú%test_get_metadata_routing_without_fitr8  Ò  s$   € ñ �i¡£Ð)Ð*Ó
+€CØ×ÑÕrl   ÚproprÉ   r0  c           
      óÐ  — t        j                  ddgddgddgg«      }g d¢}g d¢d}} | d	  |t        «       ¬
«      j                  di |di¤Žfd  |t        «       ¬
«      j                  di |di¤Žfg«      } |j                  ||fi ||dk(  r|n|i¤Ž |j
                  D ]B  }|dk(  r||i}	n||i}	|d   j                  }
t        |
«      sJ ‚|
D ]  }t        d|dddœ|	¤Ž Œ ŒD y)z3Test that metadata is routed correctly for Voting*.r   r#   r)   r¥   rý   r-  r~   r.  Úsub_est1)ÚregistryTÚsub_est2rÉ   r2   )ÚobjÚmethodÚparentNr.   )	r€   r�   r   Úset_fit_requestr2   r&   r<  rÖ   r   )r1  r2  r9  r3   r4   rÉ   r0  rð   r¼   r'  r<  r6  s               r8   Ú+test_metadata_routing_for_voting_estimatorsrB  Ý  s  € ô 	�‰�1�a�&˜1˜a˜& 1 a &Ð)Ó*€AÚ€AÚ'¨�8€Má
ð Ø;‘œy›{Ô+×;Ñ;ÑK¸tÀT¸lÑKðð
 Ø;‘œy›{Ô+×;Ñ;ÑK¸tÀT¸lÑKðð		
ó€Cð €C‡G�GˆAˆqÑS�T¨D°OÒ,C™=ÈÐRÒSà—^”^ˆ	Ø�?Ò"Ø˜MÐ*‰Fà˜HÐ%ˆFà˜Q‘<×(Ñ(ˆÜ�8Œ}Ðˆ}ÛˆGÜ#ÐV¨¸ÀeÑVÈvÓVñ  ñ $rl   c                 óD  — t        j                  ddgddgddgg«      }g d¢}g d¢d}} | d	 |«       fg«      }d
|j                  › d�}t        j                  t
        t        j                  |«      ¬«      5  |j                  ||||¬«       ddd«       y# 1 sw Y   yxY w)zCTest that the right error is raised when metadata is not requested.r   r#   r)   r¥   rý   r-  r~   r.  r6  zb[sample_weight, metadata] are passed but are not explicitly set as requested or not requested for z.fitr,   r/  N)	r€   r�   rÑ   r/   r0   r1   r  Úescaper2   )r1  r2  r3   r4   rÉ   r0  rð   Úerror_messages           r8   Ú1test_metadata_routing_error_for_voting_estimatorsrF    sœ   € ô 	�‰�1�a�&˜1˜a˜& 1 a &Ð)Ó*€AÚ€AÚ'¨�8€Má
�i¡£Ð)Ð*Ó
+€Cð	!Ø!&§¡Ð 0°ð	6ð ô
 
�‰”z¬¯©°=Ó)AÖ	BØ�‰��1 M¸HˆÔE÷ 
C×	BÑ	Bús   Á7BÂB)_râ   r  Únumpyr€   r/   Úsklearnr   r   Úsklearn.baser   r   r   Úsklearn.calibrationr   Úsklearn.datasetsr	   Úsklearn.dummyr
   Úsklearn.ensembler   r   r   r   Úsklearn.exceptionsr   Úsklearn.linear_modelr   r   Úsklearn.model_selectionr   r   r   Úsklearn.multiclassr   Úsklearn.naive_bayesr   Úsklearn.neighborsr   Úsklearn.preprocessingr   Úsklearn.svmr   Ú%sklearn.tests.metadata_routing_commonr   r   r   r   Úsklearn.treer   r   Úsklearn.utils._testingr    r!   r"   Ú	load_irisÚirisÚdataÚtargetr3   r4   r  rI   Úload_diabetesrT   r   ÚmarkÚparametrizer9   rN   rW   rk   rp   rt   r“   rž   r®   r¸   rÀ   rÅ   rÜ   rå   rë   rø   rú   r  r  r  r  r  r)  r+  r3  r8  rB  rF  r.   rl   r8   Ú<module>r`     sô  ðÙ :ã 	ã Û ç ,ß >Ñ >Ý 6Ý ;Ý (÷ó õ .ß Eß SÑ SÝ 2Ý *Ý 2Ý 0Ý ÷ó ÷ G÷ñ ð €x×ÑÓ€Ø‡y�y’�A�a�C�Ñ˜$Ÿ+™+€€€1áÓ×)Ñ)¨!Ó,€à!ˆ8×!Ñ!¨TÔ2�€€Sð ‡�×ÑØð ˜2ÐØUð	
ð
 Ñ.Ó0Ð1Ð2ØUð	
ð
 ˜SÑ"4Ó"6Ð7Ð8Ð9ØUð	
ð
 "Ñ#5Ó#7Ð8Ð9ÀqÈ!ÀfÑMØ>ð	
ðóñ*ó+ð*ò.ò$ò,
 ò.ò ò!DòHFò>17òhòò&Nò&*:òZ5ò Dò0>BòBò"ð> ‡�×ÑØð ØÙàÑ-Ó/Ð0ØÑ1¸qÔAÐBðóð		
ð ØÙàÑ+Ó-Ð.ØÑ0¸aÔ@ÐAðóð		
ðóñ2#ó3ð2#ð ‡�×ÑØ	áàÑ'Ó)Ð*ØÑ.¸AÔ>Ð?ðô	
ñ 	àÑ)°qÔ9Ð:ØÑ/¸QÔ?Ð@ðô	
ðð 
Ð.Ð/ð! ó ñ$#ó%ð$#ð ‡�×ÑØáàÑ'Ó)Ð*ØÑ,¸#Ô>Ð?ðð ô	
ñ 	àÑ)°sÔ;Ð<ØÑ-¸3Ô?Ð@ðð ô	
ðóñ&	5ó'ð&	5ò2ð( ‡�×ÑØð °DÑ9òð
	
ð �FÐ	Ð3Ð5LÐMÐNðóñ"2ó#ð"2ò('ð6 ‡�×ÑØØÐ+Ð,¨Ð@RÐ.SÐTóñ
Uó	ð
Uð ‡�×ÑØØÐ+Ð,¨Ð@RÐ.SÐTóñ ¨Ô-ñó .ó	ð
ð ‡�×ÑØØÐ+Ð,¨Ð@RÐ.SÐTóð ‡�×Ñ˜ /°:Ð!>Ó?Ù¨Ô-ñWó .ó @ó	ðWðB ‡�×ÑØØÐ+Ð,¨Ð@RÐ.SÐTóñ ¨Ô-ñFó .ó	ñ
Frl   