Ë
    ÷Q(h—>  ã                   óš  — d dl 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 d dlmZ d dlmZmZ d dlmZ d d	lmZmZmZmZ d d
lmZ d„ Zej6                  j9                  de«      d„ «       Zej6                  j9                  de«      d„ «       Zej6                  j9                  de«      d„ «       Zej6                  j9                  de«      d„ «       Z ej6                  j9                  de«      d„ «       Z!d„ Z"ej6                  j9                  dd«      d„ «       Z#d„ Z$d„ Z%eej6                  j9                  de«      ej6                  j9                  dd«      d„ «       «       «       Z&eej6                  j9                  de«      d„ «       «       Z'd„ Z(ej6                  j9                  dd«      ej6                  j9                  de«      d„ «       «       Z)ej6                  j9                  dd«      ej6                  j9                  de«      d„ «       «       Z*ej6                  j9                  de«      d„ «       Z+ej6                  j9                  de«      d„ «       Z,ej6                  j9                  de«      d„ «       Z-ej6                  j9                  de«      d „ «       Z.d!„ Z/d"„ Z0ej6                  j9                  d#g d$¢«      ej6                  j9                  de«      d%„ «       «       Z1ej6                  j9                  de«      d&„ «       Z2ej6                  j9                  d'd(«      d)„ «       Z3ej6                  j9                  d'd(«      d*„ «       Z4y)+é    N)ÚStringIO)Úassert_array_equal)Ú
block_diag)Úpsi)ÚLatentDirichletAllocation)Ú_dirichlet_expectation_1dÚ_dirichlet_expectation_2d)ÚNotFittedError)Úassert_allcloseÚassert_almost_equalÚassert_array_almost_equalÚ!if_safe_multiprocessing_with_blas)ÚCSR_CONTAINERSc                 ór   — d}t        j                  d|t        ¬«      }|g|z  }t        |Ž } | |«      }||fS )Né   )r   r   )Údtype)ÚnpÚfullÚintr   )Úcsr_containerÚn_componentsÚblockÚblocksÚXs        úi/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/decomposition/tests/test_online_lda.pyÚ_build_sparse_arrayr      sF   € ð €LÜ�G‰G�F˜L´Ô4€EØˆW�|Ñ#€FÜ�FÐ€AÙ�aÓ€AØ˜!ÐÐó    r   c                 ó¾   — t        | «      \  }}d|z  }t        |||d¬«      }t        |d¬«      }|j                  |«      }|j                  |«      }t        ||«       y )Ng      ð?r   )r   Údoc_topic_priorÚtopic_word_priorÚrandom_state©r   r!   )r   r   Úfit_transformr   )r   r   r   ÚpriorÚlda_1Úlda_2Útopic_distr_1Útopic_distr_2s           r   Útest_lda_default_prior_paramsr)   $   sj   € ô *¨-Ó8�O€L�!Ø�,Ñ€EÜ%Ø!ØØØô	€Eô &°<ÈaÔP€EØ×'Ñ'¨Ó*€MØ×'Ñ'¨Ó*€MÜ˜ }Õ5r   c                 ó<  — t         j                  j                  d«      }t        | «      \  }}t	        |dd|¬«      }|j                  |«       g d¢}|j                  D ]<  }t        |j                  «       dd  d d d…   «      }t        t        |«      «      |v rŒ<J ‚ y )Nr   é   Úbatch)r   Úevaluate_everyÚlearning_methodr!   ©)r   r+   é   )r   é   é   )é   é   é   éýÿÿÿéÿÿÿÿ©r   ÚrandomÚRandomStater   r   ÚfitÚcomponents_ÚsetÚargsortÚtupleÚsorted©r   Úrngr   r   ÚldaÚcorrect_idx_grpsÚ	componentÚtop_idxs           r   Útest_lda_fit_batchrG   6   s�   € ô �)‰)×
Ñ
 Ó
"€CÜ)¨-Ó8�O€L�!Ü
#Ø!ØØØô	€Cð ‡G�GˆA„Jâ8ÐØ—_‘_ò :ˆ	ä�i×'Ñ'Ó)¨"¨#Ð.©t°¨tÑ4Ó5ˆÜ”V˜G“_Ó%Ð)9Ò9Ð9Ð9ñ:r   c                 ó>  — t         j                  j                  d«      }t        | «      \  }}t	        |ddd|¬«      }|j                  |«       g d¢}|j                  D ]<  }t        |j                  «       dd  d d d…   «      }t        t        |«      «      |v rŒ<J ‚ y )	Nr   ç      $@r+   Úonline)r   Úlearning_offsetr-   r.   r!   r/   r6   r7   r8   rA   s           r   Útest_lda_fit_onlinerL   J   s    € ô �)‰)×
Ñ
 Ó
"€CÜ)¨-Ó8�O€L�!Ü
#Ø!ØØØ Øô€Cð ‡G�GˆA„Jâ8ÐØ—_‘_ò :ˆ	ä�i×'Ñ'Ó)¨"¨#Ð.©t°¨tÑ4Ó5ˆÜ”V˜G“_Ó%Ð)9Ò9Ð9Ð9ñ:r   c                 ó\  — t         j                  j                  d«      }t        | «      \  }}t	        |dd|¬«      }t        d«      D ]  }|j                  |«       Œ g d¢}|j                  D ]<  }t        |j                  «       dd  d d d…   «      }t        t        |«      «      |v rŒ<J ‚ y )	Nr   rI   éd   ©r   rK   Útotal_samplesr!   r   r/   r6   r7   ©r   r9   r:   r   r   ÚrangeÚpartial_fitr<   r=   r>   r?   r@   ©	r   rB   r   r   rC   ÚirD   ÚcrF   s	            r   Útest_lda_partial_fitrW   _   s°   € ô �)‰)×
Ñ
 Ó
"€CÜ)¨-Ó8�O€L�!Ü
#Ø!ØØØô	€Cô �1‹Xò ˆØ�‰˜Õðò 9ÐØ�_‰_ò :ˆÜ�a—i‘i“k " #Ð&¡t¨ tÑ,Ó-ˆÜ”V˜G“_Ó%Ð)9Ò9Ð9Ð9ñ:r   c                 óV  — t         j                  j                  d«      }t        | «      \  }}t	        |d|¬«      }|j                  |j                  «       «       g d¢}|j                  D ]<  }t        |j                  «       dd  d d d…   «      }t        t        |«      «      |v rŒ<J ‚ y )Nr   r,   ©r   r.   r!   r/   r6   r7   )r   r9   r:   r   r   r;   Útoarrayr<   r=   r>   r?   r@   rA   s           r   Útest_lda_dense_inputr[   t   sŸ   € ô �)‰)×
Ñ
 Ó
"€CÜ)¨-Ó8�O€L�!Ü
#Ø!°7Èô€Cð ‡G�GˆA�I‰I‹KÔâ8ÐØ—_‘_ò :ˆ	ä�i×'Ñ'Ó)¨"¨#Ð.©t°¨tÑ4Ó5ˆÜ”V˜G“_Ó%Ð)9Ò9Ð9Ð9ñ:r   c                  óâ  — t         j                  j                  d«      } | j                  dd¬«      }d}t	        || ¬«      }|j                  |«      }|dkD  j                  «       sJ ‚t        t        j                  |d¬	«      t        j                  |j                  d   «      «       |j                  |d
¬«      }t        |||j                  d¬	«      d d …t         j                  f   z  «       y )Nr   r2   ©é   é
   ©Úsizer   r"   g        r+   ©ÚaxisF)Ú	normalize)r   r9   r:   Úrandintr   r#   Úanyr   ÚsumÚonesÚshapeÚ	transformÚnewaxis)rB   r   r   rC   ÚX_transÚX_trans_unnormalizeds         r   Útest_lda_transformrn   …   sÊ   € ô �)‰)×
Ñ
 Ó
"€CØ�‰�A˜HˆÓ%€AØ€LÜ
#°ÈCÔ
P€CØ×Ñ Ó"€GØ�c‰M×ÑÔ Ð Ð ÜœbŸf™f W°1Ô5´r·w±w¸w¿}¹}ÈQÑ?OÓ7PÔQàŸ=™=¨°e˜=Ó<ÐÜØÐ%Ð(<×(@Ñ(@ÀaÐ(@Ó(HÊÌBÏJÉJÈÑ(WÑWõr   Úmethod)rJ   r,   c                 óâ   — t         j                  j                  d«      }|j                  dd¬«      }t	        d| |¬«      }|j                  |«      }|j                  |«      }t        ||d«       y )Nr   r_   )é2   r^   r`   r2   rY   r1   )r   r9   r:   re   r   r#   rj   r   )ro   rB   r   rC   ÚX_fitrl   s         r   Útest_lda_fit_transformrs   –   sg   € ô �)‰)×
Ñ
 Ó
"€CØ�‰�B˜XˆÓ&€AÜ
#Ø¨¸Sô€Cð ×Ñ˜aÓ €EØ�m‰m˜AÓ€GÜ˜e W¨aÕ0r   c                  óÊ   — t        j                  dd«      } t        «       }d}t        j                  t
        |¬«      5  |j                  | «       d d d «       y # 1 sw Y   y xY w)N)r2   r_   ç      ð¿z^Negative values in data passed©Úmatch)r   r   r   ÚpytestÚraisesÚ
ValueErrorr;   )r   rC   Úregexs      r   Útest_lda_negative_inputr|   ¤   sM   € ä
�‰�˜Ó€AÜ
#Ó
%€CØ.€EÜ	�‰”z¨Ô	/ñ Ø�‰�Œ
÷÷ ñ ús   ¾AÁA"c                  ó  — t         j                  j                  d«      } | j                  dd¬«      }t	        «       }d}t        j                  t        |¬«      5  |j                  |«       d d d «       y # 1 sw Y   y xY w)Nr   r1   r]   r`   z}This LatentDirichletAllocation instance is not fitted yet. Call 'fit' with appropriate arguments before using this estimator.rv   )	r   r9   r:   re   r   rx   ry   r
   Ú
perplexity)rB   r   rC   r{   s       r   Útest_lda_no_component_errorr   ­   sk   € ä
�)‰)×
Ñ
 Ó
"€CØ�‰�A˜HˆÓ%€AÜ
#Ó
%€Cð	ð 
ô
 
�‰”~¨UÔ	3ñ Ø�‰�qÔ÷÷ ñ ús   ÁA5Á5A>c                 ó>  — t        |«      \  }}t        j                  j                  d«      }t	        |d| d|¬«      }|j                  |«       g d¢}|j                  D ]<  }t        |j                  «       dd  d d d…   «      }t        t        |«      «      |v rŒ<J ‚ y )Nr   r0   r+   )r   Ún_jobsr.   r-   r!   r/   r6   r7   )r   r   r9   r:   r   r;   r<   r=   r>   r?   r@   )	ro   r   r   r   rB   rC   rD   rV   rF   s	            r   Útest_lda_multi_jobsr‚   »   s�   € ô *¨-Ó8�O€L�!ä
�)‰)×
Ñ
 Ó
"€CÜ
#Ø!ØØØØô€Cð ‡G�GˆA„Jâ8ÐØ�_‰_ò :ˆÜ�a—i‘i“k " #Ð&¡t¨ tÑ,Ó-ˆÜ”V˜G“_Ó%Ð)9Ò9Ð9Ð9ñ:r   c                 ó^  — t         j                  j                  d«      }t        | «      \  }}t	        |ddd|¬«      }t        d«      D ]  }|j                  |«       Œ g d¢}|j                  D ]<  }t        |j                  «       dd  d d d…   «      }t        t        |«      «      |v rŒ<J ‚ y )	Nr   r0   ç      @é   )r   r�   rK   rP   r!   r/   r6   r7   rQ   rT   s	            r   Útest_lda_partial_fit_multi_jobsr†   Ñ   s³   € ô �)‰)×
Ñ
 Ó
"€CÜ)¨-Ó8�O€L�!Ü
#Ø!ØØØØô€Cô �1‹Xò ˆØ�‰˜Õðò 9ÐØ�_‰_ò :ˆÜ�a—i‘i“k " #Ð&¡t¨ tÑ,Ó-ˆÜ”V˜G“_Ó%Ð)9Ò9Ð9Ð9ñ:r   c                  óx  — t         j                  j                  d«      } | j                  dd«      }| j                  dd«      }t         j                  j                  d|df¬«      }t	        |dd| ¬	«      }|j                  |«       | j                  d|d
z   |f¬«      }t        j                  t        d¬«      5  |j                  ||«       d d d «       | j                  d||d
z   f¬«      }t        j                  t        d¬«      5  |j                  ||«       d d d «       y # 1 sw Y   ŒXxY w# 1 sw Y   y xY w)Nr   r   r3   r_   r1   r`   r„   r^   rO   r+   zNumber of samplesrv   zNumber of topics)
r   r9   r:   re   r   r;   rx   ry   rz   Ú_perplexity_precomp_distr)rB   r   Ú	n_samplesr   rC   Úinvalid_n_samplesÚinvalid_n_componentss          r   Útest_lda_preplexity_mismatchrŒ   ç   s   € ä
�)‰)×
Ñ
 Ó
"€CØ—;‘;˜q !Ó$€LØ—‘˜A˜rÓ"€IÜ
�	‰	×Ñ˜! 9¨b /ÐÓ2€AÜ
#Ø!ØØØô	€Cð ‡G�GˆA„JàŸ™ A¨Y¸©]¸LÐ,I˜ÓJÐÜ	�‰”zÐ)=Ô	>ñ <Ø×%Ñ% aÐ):Ô;÷<ð Ÿ;™; q°	¸<È!Ñ;KÐ/L˜;ÓMÐÜ	�‰”zÐ)<Ô	=ñ ?Ø×%Ñ% aÐ)=Ô>÷?ð ?÷	<ð <ú÷?ð ?ús   Â:D$ÄD0Ä$D-Ä0D9c                 óX  — t        |«      \  }}t        |d| dd¬«      }t        |d| dd¬«      }|j                  |«       |j                  |d¬«      }|j                  |«       |j                  |d¬«      }||k\  sJ ‚|j                  |d¬«      }|j                  |d¬«      }	||	k\  sJ ‚y )	Nr+   rN   r   ©r   Úmax_iterr.   rP   r!   r_   F©Úsub_samplingT)r   r   r;   r~   )
ro   r   r   r   r%   r&   Úperp_1Úperp_2Úperp_1_subsamplingÚperp_2_subsamplings
             r   Útest_lda_perplexityr–   þ   sÑ   € ô
 *¨-Ó8�O€L�!Ü%Ø!ØØØØô€Eô &Ø!ØØØØô€Eð 
‡I�Iˆa„LØ×Ñ˜a¨eÐÓ4€Fà	‡I�Iˆa„LØ×Ñ˜a¨eÐÓ4€FØ�VÒÐÐà×)Ñ)¨!¸$Ð)Ó?ÐØ×)Ñ)¨!¸$Ð)Ó?ÐØÐ!3Ò3Ð3Ñ3r   c                 óö   — t        |«      \  }}t        |d| dd¬«      }t        |d| dd¬«      }|j                  |«       |j                  |«      }|j                  |«       |j                  |«      }||k\  sJ ‚y )Nr+   rN   r   rŽ   r_   )r   r   r#   Úscore)ro   r   r   r   r%   r&   Úscore_1Úscore_2s           r   Útest_lda_scorer›     sŒ   € ô
 *¨-Ó8�O€L�!Ü%Ø!ØØØØô€Eô &Ø!ØØØØô€Eð 
×Ñ˜ÔØ�k‰k˜!‹n€Gà	×Ñ˜ÔØ�k‰k˜!‹n€GØ�gÒÐÑr   c                 óÚ   — t        | «      \  }}t        |dddd¬«      }|j                  |«       |j                  |«      }|j                  |j	                  «       «      }t        ||«       y )Nr+   r,   rN   r   rŽ   )r   r   r;   r~   rZ   r   )r   r   r   rC   r’   r“   s         r   Útest_perplexity_input_formatr�   :  sd   € ô *¨-Ó8�O€L�!Ü
#Ø!ØØØØô€Cð ‡G�GˆA„JØ�^‰^˜AÓ€FØ�^‰^˜AŸI™I›KÓ(€FÜ˜ Õ'r   c                 ó.  — t        | «      \  }}t        |dd¬«      }|j                  |«       |j                  |d¬«      }|j	                  |«      }t        j                  d|t        j                  |j                  «      z  z  «      }t        ||«       y )Nr_   r   )r   r�   r!   Fr�   ru   )
r   r   r;   r~   r˜   r   Úexprg   Údatar   )r   r   r   rC   Úperplexity_1r˜   Úperplexity_2s          r   Útest_lda_score_perplexityr£   L  s}   € ô *¨-Ó8�O€L�!Ü
#Ø!¨B¸Qô€Cð ‡G�GˆA„JØ—>‘> !°%�>Ó8€Là�I‰I�a‹L€EÜ—6‘6˜$ %¬"¯&©&°·±«.Ñ"8Ñ9Ó:€LÜ˜ lÕ3r   c                 ó´   — t        | «      \  }}t        |dddd¬«      }|j                  |«       |j                  }|j	                  |«      }t        ||«       y )Nr+   r,   r   )r   r�   r.   r!   r-   )r   r   r;   Úbound_r~   r   )r   r   r   rC   Úperplexity1Úperplexity2s         r   Útest_lda_fit_perplexityr¨   [  s]   € ô *¨-Ó8�O€L�!Ü
#Ø!ØØØØô€Cð ‡G�GˆA„Jð —*‘*€Kð —.‘. Ó#€Kä˜ [Õ1r   c                 ó"  — t        j                  d«      }| | |«      fD ]m  }t        d¬«      j                  |«      }t	        |j
                  j                  d¬«      t        j                  |j
                  j                  d   «      «       Œo y)z+Test LDA on empty document (all-zero rows).)r2   r1   iî  )r�   r   rb   r+   N)	r   Úzerosr   r;   r   r<   rg   rh   ri   )r   ÚZr   rC   s       r   Útest_lda_empty_docsr¬   r  sw   € ô 	�‰�Ó€AØ‘˜qÓ!Ð"ò 
ˆÜ'°Ô5×9Ñ9¸!Ó<ˆÜØ�O‰O×Ñ QÐÓ'¬¯©°·±×1FÑ1FÀqÑ1IÓ)Jõ	
ñ
r   c                  óÚ  — t        j                  ddd«      } t        j                  | «      }t        | d|«       t	        |t        j
                  t        | «      t        t        j                  | «      «      z
  «      d¬«       | j                  dd«      } t	        t        | «      t        | «      t        t        j                  | d¬	«      d
d
…t         j                  f   «      z
  dd¬«       y
)z9Test Cython version of Dirichlet expectation calculation.iœÿÿÿr_   i'  r   g¬Ò¶OÉƒý;)ÚatolrN   r+   rb   Ng•dyáý¥=gßA:ÜÅ)>)Úrtolr®   )r   ÚlogspaceÚ
empty_liker   r   rŸ   r   rg   Úreshaper	   rk   )ÚxÚexpectations     r   Útest_dirichlet_expectationrµ   }  s§   € ä
�‰�D˜"˜eÓ$€AÜ—-‘- Ó"€KÜ˜a  KÔ0Ü�K¤§¡¬¨A«´´R·V±V¸A³Y³Ñ(?Ó!@ÀuÕMà	�	‰	�#�sÓ€AÜÜ! !Ó$ÜˆA‹””R—V‘V˜A AÔ&¢q¬"¯*©* }Ñ5Ó6Ñ6ØØö	r   c                 ó€  — t        |«      \  }}t        |dd| |d¬«      }t        «       }t        j                  |c}	t        _        	 |j                  |«       |	t        _        |j                  «       j                  d«      }
|j                  «       j                  d«      }||
k(  sJ ‚||k(  sJ ‚y # |	t        _        w xY w)Nr   r,   r   )r   r�   r.   Úverboser-   r!   ú
r~   )r   r   r   ÚsysÚstdoutr;   ÚgetvalueÚcount)r·   r-   Úexpected_linesÚexpected_perplexitiesr   r   r   rC   ÚoutÚold_outÚn_linesÚn_perplexitys               r   Úcheck_verbosityrÃ   �  s³   € ô *¨-Ó8�O€L�!Ü
#Ø!ØØØØ%Øô€Cô ‹*€CÜŸ*™* cÐ€GŒSŒZðØ�‰�Œ
àŒŒ
à�l‰l‹n×"Ñ" 4Ó(€GØ—<‘<“>×'Ñ'¨Ó5€LØ˜WÒ$Ð$Ð$Ø  LÒ0Ð0Ñ0øð Œ�
ús   ÁB0 Â0B=z;verbose,evaluate_every,expected_lines,expected_perplexities))Fr+   r   r   )Fr   r   r   )Tr   r   r   )Tr+   r   r   )Tr0   r   r+   c                 ó"   — t        | ||||«       y )N)rÃ   )r·   r-   r½   r¾   r   s        r   Útest_verbosityrÅ   ¦  s   € ô Ø� Ð1FÈõr   c                 óÌ   — t        | «      \  }}t        |¬«      j                  |«      }|j                  «       }t	        t        |«      D �cg c]  }d|› �‘Œ	 c}|«       yc c}w )z6Check feature names out for LatentDirichletAllocation.)r   ÚlatentdirichletallocationN)r   r   r;   Úget_feature_names_outr   rR   )r   r   r   rC   ÚnamesrU   s         r   Útest_lda_feature_names_outrÊ   ¹  s]   € ô *¨-Ó8�O€L�!Ü
#°Ô
>×
BÑ
BÀ1Ó
E€Cà×%Ñ%Ó'€EÜÜ27¸Ó2EÖF¨QÐ$ Q CÒ	(ÒFÈõùÚFs   ÁA!r.   )r,   rJ   c                 ó2  — t         j                  j                  d«      }|j                  d¬«      j	                  |d¬«      }t        dd| ¬«      }|j                  |«       |j                  j                  |k(  sJ ‚|j                  j                  |k(  sJ ‚y)	z2Check data type preservation of fitted attributes.r   r]   r`   F)Úcopyr2   ©r   r!   r.   N)
r   r9   r:   ÚuniformÚastyper   r;   r<   r   Úexp_dirichlet_component_)r.   Úglobal_dtyperB   r   rC   s        r   Útest_lda_dtype_matchrÒ   Å  sˆ   € ô �)‰)×
Ñ
 Ó
"€CØ�‰˜ˆÓ"×)Ñ)¨,¸UÐ)ÓC€Aä
#Ø Q¸ô€Cð ‡G�GˆA„JØ�?‰?× Ñ  LÒ0Ð0Ð0Ø×'Ñ'×-Ñ-°Ò=Ð=Ñ=r   c                 ó¬  — t         j                  j                  |«      }|j                  d¬«      }|j	                  t         j
                  «      }t        d|| ¬«      j                  |«      }t        d|| ¬«      j                  |«      }t        |j                  |j                  «       t        |j                  |«      |j                  |«      «       y)z>Check numerical consistency between np.float32 and np.float64.r]   r`   r2   rÍ   N)r   r9   r:   rÎ   rÏ   Úfloat32r   r;   r   r<   rj   )r.   Úglobal_random_seedrB   ÚX64ÚX32Úlda_64Úlda_32s          r   Útest_lda_numerical_consistencyrÚ   Ó  s±   € ô �)‰)×
Ñ
Ð 2Ó
3€CØ
�+‰+˜8ˆ+Ó
$€CØ
�*‰*”R—Z‘ZÓ
 €Cä&ØÐ%7Èôç	�cˆ#ƒhð ô 'ØÐ%7Èôç	�cˆ#ƒhð ô �F×&Ñ&¨×(:Ñ(:Ô;Ü�F×$Ñ$ SÓ)¨6×+;Ñ+;¸CÓ+@ÕAr   )5r¹   Úior   Únumpyr   rx   Únumpy.testingr   Úscipy.linalgr   Úscipy.specialr   Úsklearn.decompositionr   Ú&sklearn.decomposition._online_lda_fastr   r	   Úsklearn.exceptionsr
   Úsklearn.utils._testingr   r   r   r   Úsklearn.utils.fixesr   r   ÚmarkÚparametrizer)   rG   rL   rW   r[   rn   rs   r|   r   r‚   r†   rŒ   r–   r›   r�   r£   r¨   r¬   rµ   rÃ   rÅ   rÊ   rÒ   rÚ   © r   r   ú<module>rè      s{  ðÛ 
Ý ã Û Ý ,Ý #Ý å ;÷õ .÷ó õ /òð ‡�×Ñ˜¨.Ó9ñ6ó :ð6ð" ‡�×Ñ˜¨.Ó9ñ:ó :ð:ð& ‡�×Ñ˜¨.Ó9ñ:ó :ð:ð( ‡�×Ñ˜¨.Ó9ñ:ó :ð:ð( ‡�×Ñ˜¨.Ó9ñ:ó :ð:ò ð" ‡�×Ñ˜Ð#6Ó7ñ
1ó 8ð
1òòð #Ø‡�×Ñ˜¨.Ó9Ø‡�×Ñ˜Ð#6Ó7ñ:ó 8ó :ó #ð:ð& #Ø‡�×Ñ˜¨.Ó9ñ:ó :ó #ð:ò(?ð. ‡�×Ñ˜Ð#6Ó7Ø‡�×Ñ˜¨.Ó9ñ4ó :ó 8ð4ð< ‡�×Ñ˜Ð#6Ó7Ø‡�×Ñ˜¨.Ó9ñó :ó 8ðð4 ‡�×Ñ˜¨.Ó9ñ(ó :ð(ð" ‡�×Ñ˜¨.Ó9ñ4ó :ð4ð ‡�×Ñ˜¨.Ó9ñ2ó :ð2ð, ‡�×Ñ˜¨.Ó9ñ
ó :ð
òò 1ð2 ‡�×ÑØAòó	ð ‡�×Ñ˜¨.Ó9ñó :ó	ðð ‡�×Ñ˜¨.Ó9ñó :ðð ‡�×ÑÐ*Ð,?Ó@ñ
>ó Að
>ð ‡�×ÑÐ*Ð,?Ó@ñBó AñBr   