§
    ¥˜ºhko  ã                   ó€  — d Z ddlm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mZ ddlmZmZmZmZmZmZ ddlmZmZ ddlmZmZmZmZ dd	lmZm Z  dd
l!m"Z"m#Z#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l0m1Z1m2Z2m3Z3 ddl4m5Z5 ddl6m7Z7m8Z8m9Z9  e¦   «         Z:e:j;        e:j<        cZ=Z> e¦   «         Z?e?j;        e?j<        cZ@ZA edd¬¦  «        \  ZBZC edd¬¦  «        \  ZDZEejF         G                    dd e(ddd¬¦  «        g¦  «        ejF         G                    dd ed¬¦  «        g¦  «        ejF         G                    dddg¦  «        d„ ¦   «         ¦   «         ¦   «         ZHd„ ZId„ ZJd „ ZKejF         G                    dd e'ddd¬¦  «        g¦  «        ejF         G                    d!di f ed¬¦  «        i f e¦   «         d"difg¦  «        ejF         G                    dddg¦  «        d#„ ¦   «         ¦   «         ¦   «         ZLejF         G                    d$g d%¢¦  «        d&„ ¦   «         ZMejF         G                    d$g d%¢¦  «        d'„ ¦   «         ZNd(„ ZO G d)„ d*ee¦  «        ZP G d+„ d,ee¦  «        ZQejF         G                    d-eAd.g ieRd/feAd0 e#¦   «         fd1 e1d2¬3¦  «        fgd4d5œeRd6feAd.d0 e#¦   «         fd7 eQ¦   «         fgieSd8feAd0 e#¦   «         fd7 e2d9d2¬:¦  «        fg eQ¦   «         d;œeSd8fg¦  «        d<„ ¦   «         ZTejF         G                    d-e>d.g ieRd/fe>d.d0 e"¦   «         fd7 eP¦   «         fgieSd8fe>d0 e"¦   «         fd7 e3d9¬=¦  «        fg eP¦   «         d;œeSd8fg¦  «        d>„ ¦   «         ZUejF         G                    d? ed0 e#d¬¦  «        fd1 e2d9d¬@¦  «        fg¬A¦  «        e@ddB…         eAddB…         f ed0 e"¦   «         fd1 e3d9d¬@¦  «        fg¬A¦  «        e=e>fgdCdDg¬E¦  «        dF„ ¦   «         ZVdG„ ZWejF         G                    dH ed0 e#¦   «         fd1 e2d9d¬@¦  «        fg e#¦   «          e'dd¬I¦  «        ¬J¦  «        g ed¬K¦  «        ¢R  ed0 e"¦   «         fd1 e3d9d¬@¦  «        fg e"¦   «          e'dd¬I¦  «        ¬J¦  «        e=e>fgdCdDg¬E¦  «        dL„ ¦   «         ZXdM„ ZYejF         Z                    dN¦  «        ejF         G                    dH ed0 e#¦   «         fd1 e2d9d¬@¦  «        fg e#¦   «         ¬;¦  «        g ed¬K¦  «        ¢R  ed0 e"¦   «         fd1 e3d9d¬@¦  «        fg e"¦   «         ¬;¦  «        e=e>fgdCdDg¬E¦  «        dO„ ¦   «         ¦   «         Z[ejF         G                    dPeed4 e#d¬¦  «        e@eAfeedQ e"¦   «         e=e>fg¦  «        dR„ ¦   «         Z\ejF         G                    dH ed0 e#¦   «         fd1 e1¦   «         fgdS¬T¦  «        e@eAf ed0 e"¦   «         fd1 e3d9¬=¦  «        fgdS¬T¦  «        e=e>fg¦  «        dU„ ¦   «         Z]ejF         G                    dVeee#feee"fg¦  «        dW„ ¦   «         Z^ejF         G                    dX e-d¬¦  «         ed¬¦  «        gdYdZg¬E¦  «        d[„ ¦   «         Z_d\„ Z`ejF         G                    d]d9dQg¦  «        ejF         G                    dddg¦  «        d^„ ¦   «         ¦   «         ZaejF         G                    d_ ed0 e#d¬¦  «        fd1 e2d9d¬@¦  «        fg¬A¦  «        e?jb        e@eAg d`¢f ed0 e#d¬¦  «        fdad1 e2d9d¬@¦  «        fg¬A¦  «        e?jb        e@ddB…         eAddB…         dbdcgf ed0 e"¦   «         fd1 e3d9d¬@¦  «        fg¬A¦  «        e:jb        e=e>dddegfgg df¢¬E¦  «        ejF         G                    dddg¦  «        dg„ ¦   «         ¦   «         Zcdh„ ZddS )iz+Test the stacking classifier and regressor.é    )ÚMockN)Úassert_array_equal)ÚBaseEstimatorÚClassifierMixinÚRegressorMixinÚclone)Úload_breast_cancerÚload_diabetesÚ	load_irisÚmake_classificationÚmake_multilabel_classificationÚmake_regression)ÚDummyClassifierÚDummyRegressor)ÚRandomForestClassifierÚRandomForestRegressorÚStackingClassifierÚStackingRegressor)ÚConvergenceWarningÚNotFittedError)ÚLinearRegressionÚLogisticRegressionÚRidgeÚRidgeClassifier)ÚKFoldÚStratifiedKFoldÚtrain_test_split)ÚKNeighborsClassifier)ÚMLPClassifier)Úscale)ÚSVCÚ	LinearSVCÚ	LinearSVR)ÚCheckingClassifier)Úassert_allcloseÚassert_allclose_dense_sparseÚignore_warningsé   é*   )Ú	n_classesÚrandom_stateé   ÚcvT)Ún_splitsÚshuffler+   Úfinal_estimator©r+   ÚpassthroughFc                 óž  — t          t          t          ¦  «        t          t          d¬¦  «        \  }}}}dt	          ¦   «         fdt          d¬¦  «        fg}t          ||| |¬¦  «        }|                     ||¦  «         |                     |¦  «         | 	                    |¦  «         | 
                    ||¦  «        dk    sJ ‚|                     |¦  «        }	|rd	nd
}
|	j        d         |
k    sJ ‚|rt          ||	d d …dd …f         ¦  «         |                     d¬¦  «         |                     ||¦  «         |                     |¦  «         | 	                    |¦  «         |€|                     |¦  «         |                     |¦  «        }	|rdnd}|	j        d         |k    sJ ‚|rt          ||	d d …dd …f         ¦  «         d S d S )Nr)   ©Ústratifyr+   ÚlrÚsvcÚauto©Údual©Ú
estimatorsr0   r-   r2   çš™™™™™é?é
   é   é   éüÿÿÿÚdrop©r6   é   r(   )r   r    ÚX_irisÚy_irisr   r"   r   ÚfitÚpredictÚpredict_probaÚscoreÚ	transformÚshaper%   Ú
set_paramsÚdecision_function)r-   r0   r2   ÚX_trainÚX_testÚy_trainÚy_testr<   ÚclfÚX_transÚexpected_column_countÚexpected_column_count_drops               úl/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/sklearn/ensemble/tests/test_stacking.pyÚtest_stacking_classifier_irisrX   :   s  € õ (8Ý�f‰Œ•v­¸Rð(ñ (ô (Ñ$€GˆV�W˜fð Õ+Ñ-Ô-Ð.°½	ÀvÐ8NÑ8NÔ8NÐ0OÐP€JÝ
ØØ'ØØð	ñ ô €Cð ‡G‚GˆG�WÑÔÐØ‡K‚K�ÑÔÐØ×Ò�fÑÔÐØ�9Š9�V˜VÑ$Ô$ sÒ*Ð*Ð*Ð*à�mŠm˜FÑ#Ô#€GØ"-Ð4˜B˜B°1ÐØŒ=˜ÔÐ4Ò4Ð4Ð4Ð4Øð 1Ý˜ ¨¨¨¨2¨3¨3¨¤Ñ0Ô0Ð0à‡N‚N�f€NÑÔÐØ‡G‚GˆG�WÑÔÐØ‡K‚K�ÑÔÐØ×Ò�fÑÔÐØÐà×Ò˜fÑ%Ô%Ð%à�mŠm˜FÑ#Ô#€GØ&1Ð!8  °qÐØŒ=˜ÔÐ9Ò9Ð9Ð9Ð9Øð 1Ý˜ ¨¨¨¨2¨3¨3¨¤Ñ0Ô0Ð0Ð0Ð0ð1ð 1ó    c                  óD  — t          d¬¦  «        \  } }t          t          | ¦  «        ||d¬¦  «        \  }}}}dt          ¦   «         fdt	          d¬¦  «        fg}t          |d¬	¦  «        }|                     ||¦  «         |                     |¦  «        }|j        d
         dk    sJ ‚dt          ¦   «         fdt          d¬¦  «        fg}| 
                    |¬¦  «         |                     ||¦  «         |                     |¦  «        }|j        d
         dk    sJ ‚d S )NT©Ú
return_X_yr)   r4   r6   Úrfr1   r(   ©r<   r-   r@   r,   r7   r8   r9   ©r<   )r	   r   r    r   r   r   rG   rK   rL   r"   rM   )	ÚXÚyrO   rP   rQ   Ú_r<   rS   rT   s	            rW   Ú:test_stacking_classifier_drop_column_binary_classificationrc   h   s>  € å¨Ð.Ñ.Ô.�D€A€qÝ"2Ýˆa‰Œ�!˜a¨bð#ñ #ô #Ñ€GˆV�W˜að 
Õ!Ñ#Ô#Ð$Ø	Õ%°2Ð6Ñ6Ô6Ð7ð€Jõ ¨
°qÐ
9Ñ
9Ô
9€Cà‡G‚GˆG�WÑÔÐØ�mŠm˜FÑ#Ô#€GØŒ=˜Ô˜qÒ Ð Ð Ð ð Õ+Ñ-Ô-Ð.°½	ÀvÐ8NÑ8NÔ8NÐ0OÐP€JØ‡N‚N˜j€NÑ)Ô)Ð)à‡G‚GˆG�WÑÔÐØ�mŠm˜FÑ#Ô#€GØŒ=˜Ô˜qÒ Ð Ð Ð Ð Ð rY   c                  óÂ  — t          t          t          ¦  «        t          t          d¬¦  «        \  } }}}ddt	          dd¬¦  «        fg}t          dd¬	¦  «        }t          dt	          dd¬¦  «        fg|d
¬¦  «        }t          ||d
¬¦  «        }|                     | |¦  «         |                     | |¦  «         t          | 	                    |¦  «        | 	                    |¦  «        ¦  «         t          | 
                    |¦  «        | 
                    |¦  «        ¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «         d S )Nr)   r4   ©r6   rB   r7   r8   r   ©r:   r+   r>   ©Ún_estimatorsr+   é   ©r<   r0   r-   )r   r    rE   rF   r"   r   r   rG   r%   rH   rI   rK   )rO   rP   rQ   rb   r<   r]   rS   Úclf_drops           rW   Ú'test_stacking_classifier_drop_estimatorrl   ƒ   sW  € õ #3Ý�f‰Œ•v­¸Rð#ñ #ô #Ñ€GˆV�W˜að ! 5­)¸ÈaÐ*PÑ*PÔ*PÐ"QÐR€JÝ	¨R¸bÐ	AÑ	AÔ	A€BÝ
Ø�I¨6ÀÐBÑBÔBÐCÐDØØðñ ô €Cõ
 "¨ZÈÐPQÐRÑRÔR€Hà‡G‚GˆG�WÑÔÐØ‡L‚L�˜'Ñ"Ô"Ð"Ý�C—K’K Ñ'Ô'¨×)9Ò)9¸&Ñ)AÔ)AÑBÔBÐBÝ�C×%Ò% fÑ-Ô-¨x×/EÒ/EÀfÑ/MÔ/MÑNÔNÐNÝ�C—M’M &Ñ)Ô)¨8×+=Ò+=¸fÑ+EÔ+EÑFÔFÐFÐFÐFrY   c                  óJ  — t          t          t          ¦  «        t          d¬¦  «        \  } }}}ddt	          dd¬¦  «        fg}t          dd¬	¦  «        }t          dt	          dd¬¦  «        fg|d
¬¦  «        }t          ||d
¬¦  «        }|                     | |¦  «         |                     | |¦  «         t          | 	                    |¦  «        | 	                    |¦  «        ¦  «         t          | 
                    |¦  «        | 
                    |¦  «        ¦  «         d S )Nr)   r1   re   Úsvrr8   r   rf   r>   rg   ri   rj   )r   r    Ú
X_diabetesÚ
y_diabetesr#   r   r   rG   r%   rH   rK   )rO   rP   rQ   rb   r<   r]   ÚregÚreg_drops           rW   Ú&test_stacking_regressor_drop_estimatorrs   ™   s*  € õ #3Ý�jÑÔ�:°Bð#ñ #ô #Ñ€GˆV�W˜að ! 5­)¸ÈaÐ*PÑ*PÔ*PÐ"QÐR€JÝ	¨B¸RÐ	@Ñ	@Ô	@€BÝ
Ø�I¨6ÀÐBÑBÔBÐCÐDØØðñ ô €Cõ
 !¨JÈÈqÐQÑQÔQ€Hà‡G‚GˆG�WÑÔÐØ‡L‚L�˜'Ñ"Ô"Ð"Ý�C—K’K Ñ'Ô'¨×)9Ò)9¸&Ñ)AÔ)AÑBÔBÐBÝ�C—M’M &Ñ)Ô)¨8×+=Ò+=¸fÑ+EÔ+EÑFÔFÐFÐFÐFrY   zfinal_estimator, predict_paramsÚ
return_stdc                 ó  — t          t          t          ¦  «        t          d¬¦  «        \  }}}}dt	          ¦   «         fdt          d¬¦  «        fg}t          ||| |¬¦  «        }	|	                     ||¦  «          |	j        |fi |¤Ž}
|rdnd	}|rt          |
¦  «        |k    sJ ‚|	 
                    |¦  «        }|rd
nd}|j        d	         |k    sJ ‚|rt          ||d d …dd …f         ¦  «         |	                     d¬¦  «         |	                     ||¦  «         |	                     |¦  «         |	 
                    |¦  «        }|rdnd	}|j        d	         |k    sJ ‚|rt          ||d d …dd …f         ¦  «         d S d S )Nr)   r1   r6   rn   r8   r9   r;   r,   r@   é   éöÿÿÿrB   rC   é   )r   r    ro   rp   r   r#   r   rG   rH   ÚlenrK   rL   r%   rM   )r-   r0   Úpredict_paramsr2   rO   rP   rQ   rb   r<   rq   ÚresultÚexpected_result_lengthrT   rU   rV   s                  rW   Ú test_stacking_regressor_diabetesr}   ®   sä  € õ #3Ý�jÑÔ�:°Bð#ñ #ô #Ñ€GˆV�W˜að Õ)Ñ+Ô+Ð,¨uµiÀVÐ6LÑ6LÔ6LÐ.MÐN€JÝ
ØØ'ØØð	ñ ô €Cð ‡G‚GˆG�WÑÔÐØˆSŒ[˜Ð2Ð2 >Ð2Ð2€FØ"0Ð7˜Q˜Q°aÐØð 5Ý�6‰{Œ{Ð4Ò4Ð4Ð4Ð4à�mŠm˜FÑ#Ô#€GØ"-Ð4˜B˜B°1ÐØŒ=˜ÔÐ4Ò4Ð4Ð4Ð4Øð 2Ý˜ ¨¨¨¨3¨4¨4¨Ô 0Ñ1Ô1Ð1à‡N‚N�f€NÑÔÐØ‡G‚GˆG�WÑÔÐØ‡K‚K�ÑÔÐà�mŠm˜FÑ#Ô#€GØ'2Ð!9  ¸ÐØŒ=˜ÔÐ9Ò9Ð9Ð9Ð9Øð 2Ý˜ ¨¨¨¨3¨4¨4¨Ô 0Ñ1Ô1Ð1Ð1Ð1ð2ð 2rY   Úfmt)ÚcscÚcsrÚcooc                 ó  — t          t          j        t          t          ¦  «        ¦  «                             | ¦  «        t          d¬¦  «        \  }}}}dt          ¦   «         fdt          d¬¦  «        fg}t          dd¬¦  «        }t          ||d	d
¬¦  «        }|                     ||¦  «         |                     |¦  «        }t          ||d d …dd …f         ¦  «         t          j        |¦  «        sJ ‚|j        |j        k    sJ ‚d S )Nr)   r1   r6   rn   r8   r9   r>   rg   ri   Tr;   rw   )r   ÚsparseÚ
coo_matrixr    ro   Úasformatrp   r   r#   r   r   rG   rK   r&   ÚissparseÚformat©	r~   rO   rP   rQ   rb   r<   r]   rS   rT   s	            rW   Ú*test_stacking_regressor_sparse_passthroughr‰   Ü   s  € õ #3ÝÔ�%¥
Ñ+Ô+Ñ,Ô,×5Ò5°cÑ:Ô:½JÐUWð#ñ #ô #Ñ€GˆV�W˜að Õ)Ñ+Ô+Ð,¨uµiÀVÐ6LÑ6LÔ6LÐ.MÐN€JÝ	¨B¸RÐ	@Ñ	@Ô	@€BÝ
Ø¨r°aÀTðñ ô €Cð ‡G‚GˆG�WÑÔÐØ�mŠm˜FÑ#Ô#€GÝ  ¨°°°°C°D°D°Ô)9Ñ:Ô:Ð:ÝŒ?˜7Ñ#Ô#Ð#Ð#Ð#ØŒ=˜GœNÒ*Ð*Ð*Ð*Ð*Ð*rY   c                 ó  — t          t          j        t          t          ¦  «        ¦  «                             | ¦  «        t          d¬¦  «        \  }}}}dt          ¦   «         fdt          d¬¦  «        fg}t          dd¬¦  «        }t          ||d	d
¬¦  «        }|                     ||¦  «         |                     |¦  «        }t          ||d d …dd …f         ¦  «         t          j        |¦  «        sJ ‚|j        |j        k    sJ ‚d S )Nr)   r1   r6   r7   r8   r9   r>   rg   ri   Tr;   rA   )r   rƒ   r„   r    rE   r…   rF   r   r"   r   r   rG   rK   r&   r†   r‡   rˆ   s	            rW   Ú+test_stacking_classifier_sparse_passthroughr‹   î   s  € õ #3ÝÔ�%¥™-œ-Ñ(Ô(×1Ò1°#Ñ6Ô6½ÈRð#ñ #ô #Ñ€GˆV�W˜að Õ+Ñ-Ô-Ð.°½	ÀvÐ8NÑ8NÔ8NÐ0OÐP€JÝ	¨R¸bÐ	AÑ	AÔ	A€BÝ
Ø¨r°aÀTðñ ô €Cð ‡G‚GˆG�WÑÔÐØ�mŠm˜FÑ#Ô#€GÝ  ¨°°°°B°C°C°¬Ñ9Ô9Ð9ÝŒ?˜7Ñ#Ô#Ð#Ð#Ð#ØŒ=˜GœNÒ*Ð*Ð*Ð*Ð*Ð*rY   c                  ó8  — t          t          d d…         ¦  «        t          d d…         }} dt          ¦   «         fdt	          ¦   «         fg}t          |¬¦  «        }|                     | |¦  «         |                     | ¦  «        }|j        d         dk    sJ ‚d S )Néd   r6   r]   r_   r@   r,   )	r    rE   rF   r   r   r   rG   rK   rL   )ÚX_Úy_r<   rS   ÚX_metas        rW   Ú)test_stacking_classifier_drop_binary_probr‘      s–   € õ
 •6˜$˜3˜$”<Ñ Ô ¥&¨¨#¨¤,ˆ€BàÕ+Ñ-Ô-Ð.°Õ7MÑ7OÔ7OÐ0PÐQ€JÝ
¨
Ð
3Ñ
3Ô
3€CØ‡G‚GˆB��O„O€OØ�]Š]˜2ÑÔ€FØŒ<˜Œ?˜aÒÐÐÐÐÐrY   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚNoWeightRegressorc                 ó^   — t          ¦   «         | _        | j                             ||¦  «        S ©N)r   rq   rG   ©Úselfr`   ra   s      rW   rG   zNoWeightRegressor.fit  s%   € Ý!Ñ#Ô#ˆŒØŒx�|Š|˜A˜qÑ!Ô!Ð!rY   c                 ó@   — t          j        |j        d         ¦  «        S )Nr   )ÚnpÚonesrL   )r—   r`   s     rW   rH   zNoWeightRegressor.predict  s   € ÝŒw�q”w˜q”zÑ"Ô"Ð"rY   N)Ú__name__Ú
__module__Ú__qualname__rG   rH   © rY   rW   r“   r“     s2   € € € € € ð"ð "ð "ð#ð #ð #ð #ð #rY   r“   c                   ó   — e Zd Zd„ ZdS )ÚNoWeightClassifierc                 ób   — t          d¬¦  «        | _        | j                             ||¦  «        S )NÚ
stratified)Ústrategy)r   rS   rG   r–   s      rW   rG   zNoWeightClassifier.fit  s*   € Ý"¨LÐ9Ñ9Ô9ˆŒØŒx�|Š|˜A˜qÑ!Ô!Ð!rY   N)r›   rœ   r�   rG   rž   rY   rW   r    r      s#   € € € € € ð"ð "ð "ð "ð "rY   r    zy, params, type_err, msg_errr<   zInvalid 'estimators' attribute,r6   ÚsvmiPÃ  ©Úmax_iterrI   )r<   Ústack_methodz+does not implement the method predict_probaÚcorzdoes not support sample weightr8   ©r:   r¦   ©r<   r0   c           	      ó  — t          j        ||¬¦  «        5  t          di |¤ddi¤Ž}|                     t	          t
          ¦  «        | t          j        t
          j        d         ¦  «        ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©N©Úmatchr-   r(   r   ©Úsample_weightrž   )	ÚpytestÚraisesr   rG   r    rE   r™   rš   rL   )ra   ÚparamsÚtype_errÚmsg_errrS   s        rW   Útest_stacking_classifier_errorr¶     sÞ   € õT 
Œ�x wÐ	/Ñ	/Ô	/ð Jð JÝ Ð0Ð0 6Ð0Ð0¨aÐ0Ð0Ð0ˆØ�Š••f‘”˜qµ´½¼ÀQ¼Ñ0HÔ0HˆÑIÔIÐIðJð Jð Jñ Jô Jð Jð Jð Jð Jð Jð Jð Jøøøð Jð Jð Jð Jð Jð Jó   —ABÂBÂBr9   c           	      ó  — t          j        ||¬¦  «        5  t          di |¤ddi¤Ž}|                     t	          t
          ¦  «        | t          j        t
          j        d         ¦  «        ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r¬   )	r±   r²   r   rG   r    ro   r™   rš   rL   )ra   r³   r´   rµ   rq   s        rW   Útest_stacking_regressor_errorr¹   L  sá   € õ2 
Œ�x wÐ	/Ñ	/Ô	/ð Rð RÝÐ/Ð/ &Ð/Ð/¨QÐ/Ð/Ð/ˆØ�Š••jÑ!Ô! 1µB´G½JÔ<LÈQÔ<OÑ4PÔ4PˆÑQÔQÐQðRð Rð Rñ Rô Rð Rð Rð Rð Rð Rð Rð Røøøð Rð Rð Rð Rð Rð Rr·   zestimator, X, yrf   r_   r�   r   r   )Úidsc                 óJ  — t          | ¦  «        }|                     t          dt          j                             d¦  «        ¬¦  «        ¬¦  «         t          | ¦  «        }|                     d¬¦  «         |                     t          dt          j                             d¦  «        ¬¦  «        ¬¦  «         t          |                     ||¦  «                             |¦  «        d d …dd …f         |                     ||¦  «                             |¦  «        ¦  «         d S )NTr   ©r/   r+   ©r-   rB   rC   r@   )	r   rM   r   r™   ÚrandomÚRandomStater%   rG   rK   )Ú	estimatorr`   ra   Úestimator_fullÚestimator_drops        rW   Útest_stacking_randomnessrÃ   j  s"  € õ: ˜9Ñ%Ô%€NØ×ÒÝ˜­B¬I×,AÒ,AÀ!Ñ,DÔ,DÐEÑEÔEð ñ ô ð õ ˜9Ñ%Ô%€NØ×Ò ÐÑ(Ô(Ð(Ø×ÒÝ˜­B¬I×,AÒ,AÀ!Ñ,DÔ,DÐEÑEÔEð ñ ô ð õ Ø×Ò˜1˜aÑ Ô ×*Ò*¨1Ñ-Ô-¨a¨a¨a°°°¨eÔ4Ø×Ò˜1˜aÑ Ô ×*Ò*¨1Ñ-Ô-ñô ð ð ð rY   c                  ó¬   — t          dt          d¬¦  «        fdt          dd¬¦  «        fg¬¦  «        } |                      t          t
          ¦  «         d S )Nr6   i'  r¥   r¤   r8   r©   r_   )r   r   r"   rG   rE   rF   )rS   s    rW   Ú)test_stacking_classifier_stratify_defaultrÅ   ˜  s`   € å
àÕ%¨vÐ6Ñ6Ô6Ð7Ø•I 6°FÐ;Ñ;Ô;Ð<ð
ðñ ô €Cð ‡G‚G�F•FÑÔÐÐÐrY   zstacker, X, yr¼   rj   r[   c                 ó€  — t          |¦  «        dz  }t          j        dg|z  dgt          |¦  «        |z
  z  z   ¦  «        }t          |||d¬¦  «        \  }}}}}	}t	          t
          ¬¦  «        5  |                      ||¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |¦  «        }
t	          t
          ¬¦  «        5  |                      ||t          j        |j	        ¦  «        ¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |¦  «        }t          |
|¦  «         t	          t
          ¬¦  «        5  |                      |||	¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |¦  «        }t          j        |
|z
  ¦  «                             ¦   «         dk    sJ ‚d S )	Nr,   gš™™™™™¹?gÍÌÌÌÌÌì?r)   r1   )Úcategoryr¯   r   )ry   r™   Úarrayr   r'   r   rG   rH   rš   rL   r%   ÚabsÚsum)Ústackerr`   ra   Ún_half_samplesÚtotal_sample_weightrO   rP   rQ   rb   Úsample_weight_trainÚy_pred_no_weightÚy_pred_unit_weightÚy_pred_biaseds                rW   Ú test_stacking_with_sample_weightrÒ   ¥  sš  € õB ˜‘V”V˜q‘[€NÝœ(Ø	ˆ�Ñ # ­#¨a©&¬&°>Ñ*AÑ!BÑBñô Ðõ ;KØ	ˆ1Ð!°ð;ñ ;ô ;Ñ7€GˆV�W˜aÐ!4°aõ 
Õ"4Ð	5Ñ	5Ô	5ð &ð &Ø�Š�G˜WÑ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &à—’ vÑ.Ô.Ðå	Õ"4Ð	5Ñ	5Ô	5ð Lð LØ�Š�G˜WµB´G¸G¼MÑ4JÔ4JˆÑKÔKÐKðLð Lð Lñ Lô Lð Lð Lð Lð Lð Lð Løøøð Lð Lð Lð Là Ÿš¨Ñ0Ô0ÐåÐ$Ð&8Ñ9Ô9Ð9å	Õ"4Ð	5Ñ	5Ô	5ð Ið IØ�Š�G˜WÐ4GˆÑHÔHÐHðIð Ið Iñ Iô Ið Ið Ið Ið Ið Ið Iøøøð Ið Ið Ið Ià—O’O FÑ+Ô+€MåŒ6Ð" ]Ñ2Ñ3Ô3×7Ò7Ñ9Ô9¸AÒ=Ð=Ð=Ð=Ð=Ð=s6   Á1BÂBÂBÃ	0DÄD	ÄD	Å
E/Å/E3Å6E3c                  óî   — t          dt          d¬¦  «        fgt          d¬¦  «        ¬¦  «        } |                      t          t          t          j        t          j        d         ¦  «        ¬¦  «         d S )Nr6   T)Úexpected_sample_weightrª   r   r¯   )r   r$   rG   rE   rF   r™   rš   rL   )rË   s    rW   Ú0test_stacking_classifier_sample_weight_fit_paramrÕ   ß  sk   € å ØÕ-ÀTÐJÑJÔJÐKÐLÝ*À$ÐGÑGÔGðñ ô €Gð ‡K‚K•�­b¬gµf´lÀ1´oÑ.FÔ.F€KÑGÔGÐGÐGÐGrY   z-ignore::sklearn.exceptions.ConvergenceWarningc                 ó  — t          | ¦  «        }t          | ¦  «        }|                     d¬¦  «         |                     d¬¦  «         |                     ||¦  «         |                     ||¦  «         t          |j        |j        ¦  «        D ]\  }}t          |j        |j        ¦  «         Œ t          j        t          d¬¦  «        5  t          |j
        j        |j
        j        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr(   r½   ri   z	Not equalr­   )r   rM   rG   ÚzipÚestimators_r%   Úcoef_r±   r²   ÚAssertionErrorÚfinal_estimator_)rË   r`   ra   Ústacker_cv_3Ústacker_cv_5Úest_cv_3Úest_cv_5s          rW   Útest_stacking_cv_influencerà   è  sP  € õB ˜‘>”>€LÝ˜‘>”>€Là×Ò˜qÐÑ!Ô!Ð!Ø×Ò˜qÐÑ!Ô!Ð!à×Ò�Q˜ÑÔÐØ×Ò�Q˜ÑÔÐõ " ,Ô":¸LÔ<TÑUÔUð 8ð 8Ñˆ�(Ý˜œ¨¬Ñ7Ô7Ð7Ð7õ 
Œ•~¨[Ð	9Ñ	9Ô	9ð 
ð 
ÝØÔ)Ô/°Ô1NÔ1Tñ	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   Ã%C>Ã>DÄDz7Stacker, Estimator, stack_method, final_estimator, X, yrH   c                 ót  — t          ||dd¬¦  «        \  }}}}	d |¦   «                              ||¦  «        fd |¦   «                              ||¦  «        fg}
|
D ]R\  }}t          d¬¦  «        |_        t          ||¦  «        }t          |¬¦  «        }||_        t          |||¦  «         ŒS | |
d	|¬
¦  «        }|                     ||	¦  «         |j        d„ |
D ¦   «         k    sJ ‚t          d„ |j        D ¦   «         ¦  «        sJ ‚|j        D ]'}t          ||¦  «        }|                     |¦  «         Œ(dS )z2Check the behaviour of stacking when `cv='prefit'`r)   g      à?)r+   Ú	test_sizeÚd0Úd1rG   )Úname)Úside_effectÚprefit)r<   r-   r0   c                 ó   — g | ]\  }}|‘ŒS rž   rž   )Ú.0rb   rÀ   s      rW   ú
<listcomp>z(test_stacking_prefit.<locals>.<listcomp>K  s   € Ð"LÐ"LÐ"L±°°I 9Ð"LÐ"LÐ"LrY   c              3   ó6   K  — | ]}|j         j        d k    V — ŒdS )r   N)rG   Ú
call_count)ré   rÀ   s     rW   ú	<genexpr>z'test_stacking_prefit.<locals>.<genexpr>M  s,   è è € ÐRÐR°ˆyŒ}Ô'¨1Ò,ÐRÐRÐRÐRÐRÐRrY   N)	r   rG   r   Úgetattrr›   ÚsetattrrØ   ÚallÚassert_called_with)ÚStackerÚ	Estimatorr§   r0   r`   ra   ÚX_train1ÚX_train2Úy_train1Úy_train2r<   rb   rÀ   Ú
stack_funcÚpredict_method_mockedrË   Ústack_func_mocks                    rW   Útest_stacking_prefitrû     s•  € õ. .>Ø	ˆ1˜2¨ð.ñ .ô .Ñ*€Hˆh˜ (ð 
ˆyˆy‰{Œ{�Š˜x¨Ñ2Ô2Ð3Ø	ˆyˆy‰{Œ{�Š˜x¨Ñ2Ô2Ð3ð€Jð #ð @ð @‰ˆˆ9Ý %Ð(Ñ(Ô(ˆ	ŒÝ˜Y¨Ñ5Ô5ˆ
Ý $°Ð <Ñ <Ô <Ðð *6ÐÔ&Ý�	˜<Ð)>Ñ?Ô?Ð?Ð?àˆgØ (¸Oðñ ô €Gð ‡K‚K�˜(Ñ#Ô#Ð#àÔÐ"LÐ"LÀÐ"LÑ"LÔ"LÒLÐLÐLÐLåÐRÐR¸gÔ>QÐRÑRÔRÑRÔRÐRÐRÐRð Ô(ð 5ð 5ˆ	Ý! )¨\Ñ:Ô:ˆØ×*Ò*¨8Ñ4Ô4Ð4Ð4ð5ð 5rY   rç   r^   c                 ó–   — t          j        t          ¦  «        5  |                      ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r•   )r±   r²   r   rG   )rË   r`   ra   s      rW   Útest_stacking_prefit_errorrý   U  sŒ   € õ6 
Œ•~Ñ	&Ô	&ð ð Ø�Š�A�qÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   š>¾AÁAz!make_dataset, Stacking, Estimatorc                 óž  —  G d„ d|¦  «        } | dd¬¦  «        \  }} |d |¦   «         fg¬¦  «        }|j         › d�}t          j        t          |¬	¦  «        5  |j         d d d ¦  «         n# 1 swxY w Y   |                     ||¦  «         d
}t          j        t          |¬	¦  «        5  |j         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                   ó"   ‡ — e Zd ZdZˆ fd„Zˆ xZS )ú8test_stacking_without_n_features_in.<locals>.MyEstimatorz Estimator without n_features_in_c                 óP   •— t          ¦   «                              ||¦  «         | `d S r•   )ÚsuperrG   Ún_features_in_)r—   r`   ra   Ú	__class__s      €rW   rG   z<test_stacking_without_n_features_in.<locals>.MyEstimator.fit‚  s'   ø€ Ý‰GŒG�KŠK˜˜1ÑÔÐØÐ#Ð#Ð#rY   )r›   rœ   r�   Ú__doc__rG   Ú__classcell__)r  s   @rW   ÚMyEstimatorr     s>   ø€ € € € € Ø.Ð.ð	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$rY   r  r   r�   )r+   Ú	n_samplesr6   r_   z' object has no attribute n_features_in_r­   z6'MyEstimator' object has no attribute 'n_features_in_')r›   r±   r²   ÚAttributeErrorr  rG   )Úmake_datasetÚStackingró   r  r`   ra   rË   Úmsgs           rW   Ú#test_stacking_without_n_features_inr  t  s‡  € ð$ð $ð $ð $ð $�iñ $ô $ð $ð ˆ< Q°#Ð6Ñ6Ô6�D€A€qØˆh D¨+¨+©-¬-Ð#8Ð"9Ð:Ñ:Ô:€GàÔÐ
GÐ
GÐ
G€CÝ	Œ•~¨SÐ	1Ñ	1Ô	1ð ð ØÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ‡K‚K��1ÑÔÐà
B€CÝ	Œ•~¨SÐ	1Ñ	1Ô	1ð ð ØÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s$   ÁA/Á/A3Á6A3Â-CÃCÃ	CrÀ   r   r   c                 óâ  — t          t          t          t          d¬¦  «        \  }}}}d}d| fg}t          |t	          ¦   «         d¬¦  «                             ||¦  «        }|                     |¦  «        }|j        |j        d         |fk    sJ ‚t          t          j
        |                     d¬	¦  «        d
¦  «        ¦  «        rJ ‚|                     |¦  «        }	|	j        |j        k    sJ ‚dS )zÚCheck the behaviour for the multilabel classification case and the
    `predict_proba` stacking method.

    Estimators are not consistent with the output arrays and we need to ensure that
    we handle all cases.
    r)   r4   r(   ÚestrI   ©r<   r0   r§   r   r@   )Úaxisg      ð?N)r   ÚX_multilabelÚy_multilabelr   r   rG   rK   rL   Úanyr™   ÚiscloserÊ   rH   )
rÀ   rO   rP   rQ   rR   Ú	n_outputsr<   rË   rT   Úy_preds
             rW   Ú1test_stacking_classifier_multilabel_predict_probar  •  s  € õ$ (8Ý•l­\Èð(ñ (ô (Ñ$€GˆV�W˜fð €Ià˜)Ð$Ð%€JÝ ØÝ,Ñ.Ô.Ø$ðñ ô ÷ 
‚cˆ'�7ÑÔð	 ð ×Ò Ñ'Ô'€GØŒ=˜Vœ\¨!œ_¨iÐ8Ò8Ð8Ð8Ð8å•2”:˜gŸkšk¨q˜kÑ1Ô1°3Ñ7Ô7Ñ8Ô8Ð8Ð8Ð8à�_Š_˜VÑ$Ô$€FØŒ<˜6œ<Ò'Ð'Ð'Ð'Ð'Ð'rY   c                  óŠ  — t          t          t          t          d¬¦  «        \  } }}}d}dt          ¦   «         fg}t	          |t          ¦   «         d¬¦  «                             | |¦  «        }|                     |¦  «        }|j        |j        d         |fk    sJ ‚| 	                    |¦  «        }|j        |j        k    sJ ‚dS )	zŸCheck the behaviour for the multilabel classification case and the
    `decision_function` stacking method. Only `RidgeClassifier` supports this
    case.
    r)   r4   r(   r  rN   r  r   N)
r   r  r  r   r   r   rG   rK   rL   rH   )	rO   rP   rQ   rR   r  r<   rË   rT   r  s	            rW   Ú5test_stacking_classifier_multilabel_decision_functionr  ¼  sÚ   € õ
 (8Ý•l­\Èð(ñ (ô (Ñ$€GˆV�W˜fð €Ià�/Ñ+Ô+Ð,Ð-€JÝ ØÝ,Ñ.Ô.Ø(ðñ ô ÷ 
‚cˆ'�7ÑÔð	 ð ×Ò Ñ'Ô'€GØŒ=˜Vœ\¨!œ_¨iÐ8Ò8Ð8Ð8Ð8à�_Š_˜VÑ$Ô$€FØŒ<˜6œ<Ò'Ð'Ð'Ð'Ð'Ð'rY   r§   c                 ó  — t          t          t          t          d¬¦  «        \  }}}}|                     ¦   «         }d}dt	          d¬¦  «        fdt          d¬¦  «        fdt          ¦   «         fg}t          ¦   «         }	t          ||	|| ¬¦  «         	                    ||¦  «        }
t          ||¦  «         |
                     |¦  «        }|j        |j        k    sJ ‚| d	k    rg d
¢}ndgt          |¦  «        z  }|
j        |k    sJ ‚|t          |¦  «        z  }|r||j        d         z  }|
                     |¦  «        }|j        |j        d         |fk    sJ ‚t          |
j        t#          j        ddg¦  «        g|z  ¦  «         dS )zŽCheck the behaviour for the multilabel classification case for stack methods
    supported for all estimators or automatically picked up.
    r)   r4   r(   Úmlpr1   r]   Úridge)r<   r0   r2   r§   r8   )rI   rI   rN   rH   r@   r   N)r   r  r  Úcopyr   r   r   r   r   rG   r   rH   rL   ry   Ústack_method_rK   Úclasses_r™   rÈ   )r§   r2   rO   rP   rQ   rR   Úy_train_before_fitr  r<   r0   rS   r  Úexpected_stack_methodsÚn_features_X_transrT   s                  rW   Ú0test_stacking_classifier_multilabel_auto_predictr$  Ô  sÂ  € õ (8Ý•l­\Èð(ñ (ô (Ñ$€GˆV�W˜fð !Ÿš™œÐØ€Ið 
•¨2Ð.Ñ.Ô.Ð/Ø	Õ%°2Ð6Ñ6Ô6Ð7Ø	•/Ñ#Ô#Ð$ð€Jõ
 +Ñ,Ô,€Oå
ØØ'ØØ!ð	ñ ô ÷
 
‚cˆ'�7ÑÔð õ Ð)¨7Ñ3Ô3Ð3à�[Š[˜Ñ Ô €FØŒ<˜6œ<Ò'Ð'Ð'Ð'à�vÒÐØ!XÐ!XÐ!XÐÐà"+ ­s°:©¬Ñ!>ÐØÔÐ 6Ò6Ð6Ð6Ð6à"¥S¨¡_¤_Ñ4ÐØð /Ø˜gœm¨AÔ.Ñ.ÐØ�mŠm˜FÑ#Ô#€GØŒ=˜Vœ\¨!œ_Ð.@ÐAÒAÐAÐAÐAå�s”|¥b¤h°°1¨vÑ&6Ô&6Ð%7¸)Ñ%CÑDÔDÐDÐDÐDrY   z,stacker, feature_names, X, y, expected_names)Ústackingclassifier_lr0Ústackingclassifier_lr1Ústackingclassifier_lr2Ústackingclassifier_svm0Ústackingclassifier_svm1Ústackingclassifier_svm2)ÚotherrB   Ústackingclassifier_lrÚstackingclassifier_svmÚstackingregressor_lrÚstackingregressor_svm)ÚStackingClassifier_multiclassÚStackingClassifier_binaryr   c                 óò   — |                       |¬¦  «         |                      t          |¦  «        |¦  «         |rt          j        ||f¦  «        }|                      |¦  «        }t          ||¦  «         dS )z/Check get_feature_names_out works for stacking.)r2   N)rM   rG   r    r™   ÚconcatenateÚget_feature_names_outr   )rË   Úfeature_namesr`   ra   Úexpected_namesr2   Ú	names_outs          rW   Útest_get_feature_names_outr8    s|   € ðD ×Ò ;ÐÑ/Ô/Ð/Ø‡K‚K•�a‘”˜!ÑÔÐàð IÝœ¨¸Ð(GÑHÔHˆà×-Ò-¨mÑ<Ô<€IÝ�y .Ñ1Ô1Ð1Ð1Ð1rY   c                  ód  — t          t          t          ¦  «        t          t          d¬¦  «        \  } }}}t	          dt          ¦   «         fg¬¦  «        }|                     | |¦  «         |                     |¦  «         |                     |¦  «         | 	                    ||¦  «        dk    sJ ‚dS )zNCheck that a regressor can be used as the first layer in `StackingClassifier`.r)   r4   r  r_   r=   N)
r   r    rE   rF   r   r   rG   rH   rI   rJ   )rO   rP   rQ   rR   rS   s        rW   Ú'test_stacking_classifier_base_regressorr:  O  s«   € å'7Ý�f‰Œ•v­¸Rð(ñ (ô (Ñ$€GˆV�W˜fõ ¨'µ5±7´7Ð);Ð(<Ð
=Ñ
=Ô
=€CØ‡G‚GˆG�WÑÔÐØ‡K‚K�ÑÔÐØ×Ò�fÑÔÐØ�9Š9�V˜VÑ$Ô$ sÒ*Ð*Ð*Ð*Ð*Ð*rY   )er  Úunittest.mockr   Únumpyr™   r±   Úscipy.sparserƒ   Únumpy.testingr   Úsklearn.baser   r   r   r   Úsklearn.datasetsr	   r
   r   r   r   r   Úsklearn.dummyr   r   Úsklearn.ensembler   r   r   r   Úsklearn.exceptionsr   r   Úsklearn.linear_modelr   r   r   r   Úsklearn.model_selectionr   r   r   Úsklearn.neighborsr   Úsklearn.neural_networkr   Úsklearn.preprocessingr    Úsklearn.svmr!   r"   r#   Úsklearn.utils._mockingr$   Úsklearn.utils._testingr%   r&   r'   ÚdiabetesÚdataÚtargetro   rp   ÚirisrE   rF   r  r  ÚX_binaryÚy_binaryÚmarkÚparametrizerX   rc   rl   rs   r}   r‰   r‹   r‘   r“   r    Ú
ValueErrorÚ	TypeErrorr¶   r¹   rÃ   rÅ   rÒ   rÕ   Úfilterwarningsrà   rû   rý   r  r  r  r$  r5  r8  r:  rž   rY   rW   ú<module>rW     s  ðØ 1Ð 1ð
 Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,à NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ Nðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð :Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9ðð ð ð ð ð ð ð ð ð ð ð ð BÐ AÐ AÐ AÐ AÐ AÐ AÐ Aðð ð ð ð ð ð ð ð ð ð ð ð MÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5ðð ð ð ð ð ð ð ð ð ð ˆ=‰?Œ?€Ø!œ¨¬Ð €
ˆJØ€y�{„{€Ø”˜DœK€€ˆØ;Ð;Ø˜bðñ ô Ñ €ˆlð )Ð(°1À2ÐFÑFÔFÑ €ˆ(ð „×ÒØˆ1ˆoˆo q°$ÀRÐHÑHÔHÐ
Iñô ð „×ÒØ˜Ð4Ð4À"ÐEÑEÔEÐFñô ð „×Ò˜¨°¨Ñ6Ô6ð$1ð $1ñ 7Ô6ñô ñô ð$1ðN!ð !ð !ð6Gð Gð Gð,Gð Gð Gð* „×Ò˜  5 5°!¸TÐPRÐ#SÑ#SÔ#SÐTÑUÔUØ„×ÒØ%à	ˆrˆ
Ø	Ð	¨BÐ	/Ñ	/Ô	/°Ð4Ø	ˆÑ	Ô	˜L¨$Ð/Ð0ðñô ð „×Ò˜¨°¨Ñ6Ô6ð!2ð !2ñ 7Ô6ñô ñ VÔUð!2ðH „×Ò˜Ð 5Ð 5Ð 5Ñ6Ô6ð+ð +ñ 7Ô6ð+ð" „×Ò˜Ð 5Ð 5Ð 5Ñ6Ô6ð+ð +ñ 7Ô6ð+ð" ð  ð  ð#ð #ð #ð #ð #˜¨ñ #ô #ð #ð"ð "ð "ð "ð "˜¨-ñ "ô "ð "ð „×ÒØ"à	�, Ð# ZÐ1RÐSàð Ð-Ð-Ñ/Ô/Ð0Ø˜C˜C¨Ð0Ñ0Ô0Ð1ðð !0ðð ð Ø9ð	
ð àØÐ-Ð-Ñ/Ô/Ð0ØÐ.Ð.Ñ0Ô0Ð1ððð Ø,ð
	
ð ð Ð-Ð-Ñ/Ô/Ð0Ø˜I˜I¨6¸FÐCÑCÔCÐDðð $6Ð#5Ñ#7Ô#7ðð ð Ø,ð	
ð3%ñ(ô (ðRJð JñS(ô (ðRJð „×ÒØ"à	�l BÐ'¨Ð5VÐWàØ˜TÐ#3Ð#3Ñ#5Ô#5Ð6¸Ð@QÐ@QÑ@SÔ@SÐ8TÐUÐVØØ,ð		
ð ð Ð+Ð+Ñ-Ô-Ð.Ø˜I˜I¨6Ð2Ñ2Ô2Ð3ðð $5Ð#4Ñ#6Ô#6ðð ð Ø,ð	
ðñô ð0Rð Rñ1ô ð0Rð „×ÒØð ÐàÐ-Ð-¸1Ð=Ñ=Ô=Ð>Ø˜I˜I¨6ÀÐBÑBÔBÐCððñ ô ð �4�C�4ŒLØ�4�C�4ŒLð		
ð ÐàÐ+Ð+Ñ-Ô-Ð.Ø˜I˜I¨6ÀÐBÑBÔBÐCððñ ô ð Øð		
ðð, 
Ð2Ð3ð1 ñ ô ð4ð ñ5ô ð4ð(
ð 
ð 
ð „×ÒØð ÐàÐ-Ð-Ñ/Ô/Ð0Ø˜I˜I¨6ÀÐCÑCÔCÐDðð !3Ð 2Ñ 4Ô 4Ø�5 °BÐ7Ñ7Ô7ðñ ô ð
	
ð  Ð¨4Ð0Ñ0Ô0ð
	
ð 
	
ð ÐàÐ+Ð+Ñ-Ô-Ð.Ø˜I˜I¨6ÀÐCÑCÔCÐDðð !1Ð 0Ñ 2Ô 2Ø�5 °BÐ7Ñ7Ô7ðñ ô ð Øð	
ðð2 
Ð2Ð3ð7 ñ ô ð:>ð >ñ;ô ð:>ð:Hð Hð Hð „×ÒÐKÑLÔLØ„×ÒØð ÐàÐ-Ð-Ñ/Ô/Ð0Ø˜I˜I¨6ÀÐCÑCÔCÐDðð !3Ð 2Ñ 4Ô 4ðñ ô ð		
ð  Ð¨4Ð0Ñ0Ô0ð		
ð 		
ð ÐàÐ+Ð+Ñ-Ô-Ð.Ø˜I˜I¨6ÀÐCÑCÔCÐDðð !1Ð 0Ñ 2Ô 2ðñ ô ð Øð
	
ðð. 
Ð2Ð3ð3 ñ ô ð6
ð 
ñ7ô ñ MÔLð8
ð2 „×ÒØ=ð ØØØÐ¨BÐ/Ñ/Ô/ØØð	
ð ØØØÐÑÔØØð	
ðñô ð* 5ð  5ñ+ô ð* 5ðF „×ÒØð ÐØ!Ð#5Ð#5Ñ#7Ô#7Ð8¸5À#À#Á%Ä%¸.ÐIØðñ ô ð Øð	
ð ÐàÐ+Ð+Ñ-Ô-Ð.Ø˜I˜I¨6Ð2Ñ2Ô2Ð3ðð ðñ ô ð Øð
	
ðñô ð0ð ñ1ô ð0ð „×ÒØ'à	Ð0Ð2DÐEØ	Ð+Ð-=Ð>ðñô ðð ñô ðð4 „×ÒØð 	ˆ 2Ð&Ñ&Ô&ð 	Ð¨BÐ/Ñ/Ô/ðð 
Ð2Ð3ð ñ 
ô 
ð(ð (ñ
ô 
ð(ð8(ð (ð (ð0 „×Ò˜¨&°)Ð)<Ñ=Ô=Ø„×Ò˜¨°¨Ñ6Ô6ð*Eð *Eñ 7Ô6ñ >Ô=ð*EðZ „×ÒØ2ð ÐàÐ-Ð-¸1Ð=Ñ=Ô=Ð>Ø˜I˜I¨6ÀÐBÑBÔBÐCððñ ô ð ÔØØðð ð ð	
ð( ÐàÐ-Ð-¸1Ð=Ñ=Ô=Ð>Ø%Ø˜I˜I¨6ÀÐBÑBÔBÐCððñ ô ð ÔØ�4�C�4ŒLØ�4�C�4ŒLà'Ø(ðð	
ð" ÐàÐ+Ð+Ñ-Ô-Ð.Ø˜I˜I¨6ÀÐBÑBÔBÐCððñ ô ð Ô"ØØà&Ø'ðð	
ðI3ðh	ð 	ð 	ðm ñ ;ô ;ðx „×Ò˜¨¨u¨Ñ6Ô6ð2ð 2ñ 7Ô6ñy;ô ;ðz2ð	+ð 	+ð 	+ð 	+ð 	+rY   