U
    ÎZjÞ]  ã                   @   sB  d dl Zd dl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 dd„ Zdd„ Zej d	d
ddg¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zej de d¡ d¡ d¡e	dddd�e	dddd� d¡g¡ej dd d g¡d!d"„ ƒƒZd#d$„ Zd%d&„ Zd'd(„ Zej d)d*d+d,d-g¡d.d/„ ƒZd0d1„ Z d2d3„ Z!ej d4dee"d5ƒe"d6d7ƒd8d7d9d:d;gd<œe#d=�gd
eej$gd5 d>gd5 d?d@dAdBdCgd<œƒgdeej$gd5 dDgd5 dEdFdGdHdIgd<œƒgg¡dJdK„ ƒZ%dLdM„ Z&dNdO„ Z'ej dPdQdRdSdTgdUgdQdRdRdVgdWgg¡dXdY„ ƒZ(dZd[„ Z)d\d]„ Z*d^d_„ Z+ej d`eej$dadbgƒdWdUej$dcdagfeej$dadbgƒdWdWej$dcdagfeej$dadbgƒdUdUej$dcddgfeej$dadbgƒdUdWej$dcddgfedaej$dbgƒdWdUdeej$dagfedaej$dbgƒdWdWdcej$dagfedaej$dbgƒdUdUdeej$ddgfedaej$dbgƒdUdWdcej$ddgfeej$daej$ej$dbej$gƒdWdUej$dfej$ej$daej$gfeej$daej$ej$dbej$gƒdWdWej$dcej$ej$daej$gfeej$daej$ej$dbej$gƒdUdUej$dfej$ej$ddej$gfeej$daej$ej$dbej$gƒdUdWej$dcej$ej$ddej$gfedaej$dbdggƒdWdUdfej$dcdagfedaej$dbdggƒdWdWdeej$dcdagfedaej$dbdggƒdUdUdfej$dhdigfedaej$dbdggƒdUdWdeej$dhddgfg¡djdk„ ƒZ,dldm„ Z-dndo„ Z.ej d	dd
dg¡dpdq„ ƒZ/ej dd drg¡ej dsddd
g¡dtdu„ ƒƒZ0ej dsdvdwg¡dxdy„ ƒZ1ej dd drd g¡ej dsdvdwg¡dzd{„ ƒƒZ2ej dsdvdwg¡d|d}„ ƒZ3ej dsdd
dg¡d~d„ ƒZ4ej dsdd
dg¡d€d�„ ƒZ5d‚dƒ„ Z6d„d…„ Z7d†d‡„ Z8ej dˆdvdwg¡d‰dŠ„ ƒZ9d‹dŒ„ Z:ej d�dwdvg¡ej dŽdWdUg¡d�d�„ ƒƒZ;ej d‘e<e=g¡d’d“„ ƒZ>ej d�dwdvg¡ej dŽdWdUg¡ej d‘e<e=g¡d”d•„ ƒƒƒZ?dS )–é    N)ÚUnsupportedFunctionCall)Ú	DataFrameÚDatetimeIndexÚSeriesÚ
date_range)ÚExponentialMovingWindowc                  C   s0   t ddddtjdgiƒ} |  | jdd� ¡  d S )NÚBr   é   é   é   ç      à?©Úcom)r   ÚnpÚnanÚewmÚmean)Údf© r   ú_/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/pandas/tests/window/test_ewm.pyÚtest_doc_string   s    r   c              
   C   s€  | t dƒƒj}|dd� |dd� |dd� |dd� |dd d	� |dd d
� |dd d� d}tjt|d�� |ddd� W 5 Q R X tjt|d�� |ddd� W 5 Q R X tjt|d�� |ddd� W 5 Q R X d}tjt|d�� |dd� W 5 Q R X d}tjt|d�� |dd� W 5 Q R X d}tjt|d�� |dd� W 5 Q R X d}dD ]*}tjt|d�� ||d� W 5 Q R X �qPd S )Né   r   r   ç      ø?©Úspan©Úalphag      è?©Úhalflife©r   r   )r   r   ©r   r   ú8comass, span, halflife, and alpha are mutually exclusive©Úmatch©r   r   ©r   r   )r   r   ú comass must satisfy: comass >= 0ç      à¿úspan must satisfy: span >= 1ú#halflife must satisfy: halflife > 0r   ú"alpha must satisfy: 0 < alpha <= 1)r'   r   )Úranger   ÚpytestÚraisesÚ
ValueError)Zframe_or_seriesÚcÚmsgr   r   r   r   Útest_constructor   s8    



r1   ÚmethodÚstdr   Úvarc              
   C   s¾   t tdddgƒdd�}d}d| › �}tjt|d��2 tjt|d�� t|| ƒd	dd
ƒ W 5 Q R X W 5 Q R X d| › �}tjt|d��2 tjt|d�� t|| ƒt	j
d� W 5 Q R X W 5 Q R X d S )Nr
   r   é   r   r   z2numpy operations are not valid with window objectsz3Passing additional args to ExponentialMovingWindow.r"   r	   é   z5Passing additional kwargs to ExponentialMovingWindow.©Údtype)r   r   ÚtmÚassert_produces_warningÚFutureWarningr,   r-   r   Úgetattrr   Úfloat64)r2   ÚeÚ	error_msgZwarn_msgr   r   r   Útest_numpy_compatC   s    
&
r@   c               	   C   s<   d} t jt| d��  ttdƒƒjt d¡d� W 5 Q R X d S )Nz%times must be datetime64\[ns\] dtype.r"   r   ©Útimes)r,   r-   r.   r   r+   r   r   Úarange©r0   r   r   r   Ú!test_ewma_times_not_datetime_typeT   s    rE   c               	   C   sB   d} t jt| d��& ttdƒƒjt d¡ d¡d� W 5 Q R X d S )Nz,times must be the same length as the object.r"   r   r   údatetime64[ns]rA   ©	r,   r-   r.   r   r+   r   r   rC   ÚastyperD   r   r   r   Útest_ewma_times_not_same_lengthZ   s    rI   c               	   C   sD   d} t jt| d��( ttdƒƒjdt d¡ d¡d� W 5 Q R X d S )Nz/halflife must be a timedelta convertible objectr"   r   r	   rF   ©r   rB   rG   rD   r   r   r   Ú#test_ewma_halflife_not_correct_type`   s    rK   c              	   C   s6   d}t jt|d�� ttdƒƒj| d� W 5 Q R X d S )NzKhalflife can only be a timedelta convertible argument if times is not None.r"   r   r   )r,   r-   r.   r   r+   r   )Úhalflife_with_timesr0   r   r   r   Ú test_ewma_halflife_without_timesf   s    rM   rB   é
   zdatetime64[D]rF   Ú2000ÚD©ÚfreqZperiodsÚUTCÚmin_periodsr
   c              	   C   s†   | }t  d¡}t j|d d d…< t|tdddd�dœƒ}tjtdd	��, |j|||d
� 	¡ }|jd|d� 	¡ }W 5 Q R X t 
||¡ d S )Nç      $@r
   rO   rP   rN   rQ   ©ÚAÚtime_colznuisance columnsr"   ©r   rT   rB   ç      ð?©r   rT   ©r   rC   r   r   r   r9   r:   r;   r   r   Úassert_frame_equal)rL   rB   rT   r   Údatar   ÚresultÚexpectedr   r   r   Ú"test_ewma_with_times_equal_spacingl   s    

ra   c                 C   s^   | }d}t dddgƒ |¡}t d¡}t|ƒ}|j||d� ¡ }tddd	gƒ}t ||¡ d S )
Nz23 daysz
2020-01-01z2020-01-10T00:04:05z2020-02-23T05:00:23r6   rJ   ç        gÐÇþE(â?gÁ*‡M¹ø?)	r   Útz_localizer   rC   r   r   r   r9   r]   )Ztz_aware_fixtureÚtzr   rB   r^   r   r_   r`   r   r   r   Ú%test_ewma_with_times_variable_spacing�   s    ÿþ
re   c              	   C   sD   t tdƒƒ}tdgƒ}tjtdd�� |jd| |d� W 5 Q R X d S )Nr	   ZNaTz$Cannot convert NaT values to integerr"   çš™™™™™¹?)r   r   rB   )r   r+   r   r,   r-   r.   r   )rL   ÚserrB   r   r   r   Útest_ewm_with_nat_raisesŽ   s    
rh   c                 C   st   | }t  d¡}t j|d d d…< tdddd�}t||dœƒ}|j||d�d	  ¡ }|jd
d�d	  ¡ }t ||¡ d S )NrU   r
   rO   rP   rN   rQ   ©rW   r   rJ   rW   rZ   r   )	r   rC   r   r   r   r   r   r9   Úassert_series_equal)rL   r   r^   rB   r   r_   r`   r   r   r   Útest_ewm_with_times_getitem–   s    
rk   Úargr   r   r   r   c                    sn   | dd|d|i}t tdƒtdƒdœƒjf |Ž‰ ‡ fdd„ˆ jD ƒ}ˆ d }‡ fdd„|jD ƒ}||ksjt‚d S )	Nr	   ÚadjustÚ	ignore_nari   c                    s   i | ]}|t ˆ |ƒ“qS r   ©r<   ©Ú.0Úattr©r   r   r   Ú
<dictcomp>§   s      z8test_ewm_getitem_attributes_retained.<locals>.<dictcomp>rW   c                    s   i | ]}|t ˆ |ƒ“qS r   ro   rp   rs   r   r   rt   ©   s      )r   r+   r   Ú_attributesÚAssertionError)rl   rm   rn   Úkwargsr`   Z	ewm_slicer_   r   rs   r   Ú$test_ewm_getitem_attributes_retained¢   s    rx   c               	   C   sR   t tdƒƒ} t t¡� | jdd� ¡ }W 5 Q R X | jdd� ¡ }t ||¡ d S )Nr	   rf   r   )	r   r+   r9   r:   r;   r   Zvolr3   rj   )rg   r_   r`   r   r   r   Útest_ewm_vol_deprecated­   s
    ry   c                	   C   s@   t jtdd��( ttdƒƒjddtdddd�d	� W 5 Q R X d S )
Nz)times is not supported with adjust=False.r"   r	   rf   FrO   rP   rQ   )rm   rB   )r,   r-   ÚNotImplementedErrorr   r+   r   r   r   r   r   r   Ú#test_ewma_times_adjust_false_raisesµ   s     ÿ  ÿr{   zfunc, expectedr   r   é	   gZôPÛ¶@gÓø…W’$%@gd~�$I(@g7ûå¶m+@©r   r	   r
   r7   gÉ¬Þávø@g‡§WÊ2„@g.äÜÈ@gÿ>ãÂ� @g ‰°áé…@g›äGüŠõ@g      2@g—=Ô¶m5@é   gË�jÛ¶@@gÎþ@¹m[D@gg Ü¶mH@c                 C   sP   t tdƒtddƒtdddƒdœ|d�}|jd	d
d�}t|| ƒƒ }t ||¡ d S )Nr   r5   é   rN   é   r
   r}   r7   r   r	   )r   Zaxis)r   r+   r   r<   r9   r]   )Úfuncr`   Zfloat_numpy_dtyper   r>   r_   r   r   r   Útest_float_dtype_ewma¿   s    ' ÿr‚   c               	   C   s‚   t  d¡} t j| d d d…< t| tdddd�dœƒ}tjtdd	��, |jd
ddd� 	¡ }|jddd� 	¡ }W 5 Q R X t 
||¡ d S )NrU   r
   rO   rP   rN   rQ   rV   zSpecifying timesr"   z1 dayr   rX   rY   rZ   r[   r\   )r^   r   r_   r`   r   r   r   Ú test_times_string_col_deprecatedï   s    
rƒ   c               	   C   s<   t tdƒƒjddd�} tjtdd�� |  ¡  W 5 Q R X d S )Nr	   F©r   rm   z
sum is notr"   )r   r+   r   r,   r-   rz   Úsum)r^   r   r   r   Ú(test_ewm_sum_adjust_false_notimplementedú   s    r†   zexpected_data, ignorerU   g      @g      @g     €&@Fg      )@Tc                 C   s<   t ddtjdgƒ}|jd|d� ¡ }t | ƒ}t ||¡ d S )NrN   r   r   )r   rn   )r   r   r   r   r…   r9   rj   )Zexpected_dataÚignorer^   r_   r`   r   r   r   Útest_ewm_sum   s    rˆ   c                  C   sF   t t d¡ƒ} d| d< | jddd� ¡  ¡ }t |d ¡dk sBt‚d S )Niè  r	   r   éd   F)r   rm   g{®Gáz„?)r   r   Zzerosr   r   r…   Úabsrv   )Úvalsr_   r   r   r   Útest_ewma_adjust  s    rŒ   c                 C   sZ   t ddddgƒ}| r&t ddddgƒ}nt ddd	d
gƒ}|jd| |d� ¡ }t ||¡ d S )NrZ   ç       @g      @g       @gš™™™™™ù?gÊ�"kå@gYÂÚ;±@gR×ÚûTUõ?g�óSÇ@g	ßû´—@©r   rm   rn   )r   r   r   r9   rj   )rm   rn   Úsr`   r_   r   r   r   Útest_ewma_cases  s    r�   c                  C   s¤   t dgtjgd  dg ƒ} | jdd� ¡ }t |t dgt| ƒ ƒ¡ t tjgd dg tjgd  dg ƒ} | jdd� ¡ }t |t tjgd dgd  ƒ¡ d S )NrZ   r   r   r
   r   )r   r   r   r   r   r9   rj   Úlen)r�   r_   r   r   r   Útest_ewma_nan_handling"  s    (r’   zs, adjust, ignore_na, wrZ   g     @Y@gVUUUUUå?gUUUUUUÕ?gÇqÇqÜ?gj/¡½„öÒ?g      I@gÇqÇqÌ?g|	í%´—Ð?c                 C   sl   |   |¡ ¡ t|ƒ ¡  jdd�}| jd||d� ¡ }t ||¡ |dkrh| jd|d� ¡ }t ||¡ d S )NZffill)r2   r�   rŽ   Fr„   )ÚmultiplyZcumsumr   Zfillnar   r   r9   rj   )r�   rm   rn   Úwr`   r_   r   r   r   Útest_ewma_nan_handling_cases,  s     "r•   c                  C   s’   t j d¡} t  dd¡}t j| |< t| ƒ}|jdd� ¡ }|jdd� ¡ }|jdd	� ¡ }|jd
d� ¡ }t 	||¡ t 	||¡ t 	||¡ d S )Nr‰   r€   é(   gŽVÎÕRÀã?r   g¿Æ·CØã?r   g‚_ãÛ!ì@r   gXlWYíç?r   )
r   ÚrandomÚrandnrC   ÚNaNr   r   r   r9   rj   )ÚarrÚlocsr�   ÚaÚbr/   Údr   r   r   Útest_ewm_alphaÀ  s    
rŸ   c               	   C   sè  t j d¡} t  dd¡}t j| |< t| ƒ}d}tjt|d�� |j	dd� W 5 Q R X |j	dd� |j	d	d� d
}tjt|d�� |j	dd� W 5 Q R X tjt|d�� |j	dd� W 5 Q R X tjt|d�� |j	dd� W 5 Q R X |j	dd� |j	dd� d}tjt|d�� |j	dd� W 5 Q R X tjt|d�� |j	dd� W 5 Q R X |j	d	d� d}tjt|d�� |j	dd� W 5 Q R X tjt|d�� |j	dd� W 5 Q R X |j	d	d� |j	dd� tjt|d�� |j	dd� W 5 Q R X d S )Nr‰   r€   r–   r&   r"   gš™™™™™¹¿r   rb   rf   r(   r   gÍÌÌÌÌÌì?rZ   gš™™™™™ñ?r)   r   r*   r   )
r   r—   r˜   rC   r™   r   r,   r-   r.   r   )rš   r›   r�   r0   r   r   r   Útest_ewm_domain_checksÐ  sB    
r    c                 C   s4   t g tjd�}| d¡}t|| ƒƒ }t ||¡ d S )Nr7   r6   )r   r   r=   r   r<   r9   Úassert_almost_equal)r2   r‹   r   r_   r   r   r   Útest_ew_empty_seriesù  s    
r¢   r	   Únamec                 C   s¦  t j d¡}t j|d d…< t j|dd …< t|ƒ}t|jddd�|ƒƒ }|d d…  ¡  ¡ s^t	‚|dd …  ¡  
¡ rvt	‚t|jd| d�|ƒƒ }|dkrÆ|d d…  ¡  ¡ s¬t	‚|dd …  ¡  
¡ röt	‚n0|d d…  ¡  ¡ sÞt	‚|dd …  ¡  
¡ röt	‚tttd�jd| d�|ƒƒ }t |td	d�¡ ttd
gƒjd| d�|ƒƒ }|dk�r^t |td
gƒ¡ nt |tt jgƒ¡ ttt  d¡ƒjdd�|ƒƒ }|jt jk�s¢t	‚d S )Né2   rN   éöÿÿÿr
   ©r   rT   r   r   r7   r=   rZ   )rT   r   )r   r—   r˜   r™   r   r<   r   ZisnaÚallrv   ÚanyÚobjectr9   rj   rC   r8   Zfloat_)rT   r£   rš   r�   r_   Zresult2r   r   r   Útest_ew_min_periods  s*    
rª   ZcovZcorrc                 C   s¢   t tj d¡tdƒd�}|dd … tj d¡ }tj|d d…< tj|jdd …< t|jddd	�| ƒ|ƒ}t 	|j
d d
… ¡ ¡ s‚t‚t 	|j
d
d … ¡ ¡ ržt‚d S )Nr¤   ©Úindexr
   é0   rN   r¥   r€   r   r¦   é   )r   r   r—   r˜   r+   r™   Úilocr<   r   ÚisnanÚvaluesr§   rv   r¨   )r£   rW   r   r_   r   r   r   Útest_ewm_corr_cov-  s    r²   c                 C   s  t tj d¡tdƒd�}|dd … tj d¡ }tj|d d…< tj|jdd …< t|jd|d�| ƒ|ƒ}t 	|j
d d	… ¡ ¡ s‚t‚t 	|j
d	d … ¡ ¡ ržt‚t g tjd
�}t|jd|d�| ƒ|ƒ}t ||¡ tt dgƒjd|d�| ƒt dgƒƒ}t |t tjgƒ¡ d S )Nr¤   r«   r
   r­   rN   r¥   r€   r¦   r   r7   rZ   )r   r   r—   r˜   r+   r™   r¯   r<   r   r°   r±   r§   rv   r¨   r=   r9   rj   )r£   rT   rW   r   r_   Úemptyr   r   r   Útest_ewm_corr_cov_min_periods:  s    ÿr´   c              	   C   sh   t tj d¡tdƒd�}tj|d d…< d}tjt|d��& t	|j
ddd�| ƒtj d¡ƒ W 5 Q R X d S )	Nr¤   r«   rN   z#other must be a DataFrame or Seriesr"   r€   r   r¦   )r   r   r—   r˜   r+   r™   r,   r-   r.   r<   r   )r£   rW   r0   r   r   r   Ú*test_different_input_array_raise_exceptionV  s
    rµ   c                 C   s&   t | jdd�|ƒƒ }t|tƒs"t‚d S ©NrN   r   )r<   r   Ú
isinstancer   rv   )Úseriesr£   Zseries_resultr   r   r   Útest_ewma_seriesa  s    r¹   c                 C   s&   t | jdd�|ƒƒ }t|tƒs"t‚d S r¶   )r<   r   r·   r   rv   )Úframer£   Zframe_resultr   r   r   Útest_ewma_frameg  s    r»   c              	   C   s†   | j dd� ¡ }| j dd� ¡ }t ||¡ d}tjt|d�� | j ddd� W 5 Q R X d}tjt|d�� |   ¡  ¡  W 5 Q R X d S )	Nç      #@r   r€   r   r!   r"   r   ú1Must pass one of comass, span, halflife, or alpha©r   r   r9   r¡   r,   r-   r.   ©r¸   rW   r   r0   r   r   r   Útest_ewma_span_com_argsm  s    rÀ   c              	   C   sÔ   | j dd� ¡ }| j dd� ¡ }t ||¡ d}tjt|d�� | j ddd	� W 5 Q R X tjt|d�� | j d
dd� W 5 Q R X tjt|d�� | j d
ddd� W 5 Q R X d}tjt|d�� |   ¡  W 5 Q R X d S )Ng ‘ñHŽÝ+@r   rU   r   r!   r"   r€   r¤   r%   r¼   )r   r   )r   r   r   r½   r¾   r¿   r   r   r   Útest_ewma_halflife_argz  s    rÁ   c              	   C   sª   | }d}t jt|d�� | ¡  W 5 Q R X d}t jt|d�� |jddd� W 5 Q R X t jt|d�� |jddd� W 5 Q R X t jt|d�� |jddd� W 5 Q R X d S )	Nr½   r"   r!   rU   r   r$   )r   r   r    )r,   r-   r.   r   )r¸   r�   r0   r   r   r   Útest_ewm_alpha_argŠ  s    rÂ   r�   c                 C   sn   t |jddd�| ƒƒ }|jtd ƒdfdf }|j d¡|_t |d jddd�| ƒ|d ƒ}tj||dd� d S )NrN   r   ©r   rT   r	   F)Zcheck_names)r<   r   ÚlocÚslicer¬   Z	droplevelr9   rj   )r�   rº   r_   r`   r   r   r   Útest_ewm_pairwise_cov_corrš  s
     rÆ   c           	      C   sª   | }t dgdddœƒ}|d  t¡|d< |jddd�}t||d ƒ}|d k	r¦||d�}|r`dd	gndd	dg}||  |g¡jd
d� t¡}t|j	ƒ|ksšt
‚t ||¡ d S )Nr	   r
   r6   ©rœ   r�   r/   r/   rÃ   ©Únumeric_onlyrœ   r�   T©Zdrop)r   rH   r©   r   r<   ÚaggÚreset_indexÚfloatÚlistÚcolumnsrv   r9   r]   )	Úarithmetic_win_operatorsrÉ   Úkernelr   r   Úopr_   rÏ   r`   r   r   r   Útest_numeric_only_frame£  s    
rÓ   rÑ   Úuse_argc                 C   sÄ   t dddgdddœƒ}|d  t¡|d< |r2|fnd}|jddd�}t|| ƒ}||d|iŽ}|rhd	d
gnd	d
dg}||  t¡}	|rŠ|	fnd}
|	jddd�}t|| ƒ}||
d|iŽ}t ||¡ d S )Nr	   r
   r6   rÇ   r/   r   rÃ   rÉ   rœ   r�   )r   rH   r©   r   r<   rÍ   r9   r]   )rÑ   rÉ   rÔ   r   rl   r   rÒ   r_   rÏ   Zdf2Úarg2Úewm2Úop2r`   r   r   r   Ú test_numeric_only_corr_cov_frame´  s    

rØ   r8   c           
   	   C   sª   | }t dg|d�}|jddd�}t||d ƒ}|d kr8d S |rv|tkrvd|› d�}tjt|d�� ||d� W 5 Q R X n0||d�}| |g¡jd	d
� 	t
¡}	t ||	¡ d S )Nr	   r7   r
   rÃ   úExponentialMovingWindow.ú  does not implement numeric_onlyr"   rÈ   TrÊ   )r   r   r<   r©   r,   r-   rz   rË   rÌ   rH   rÍ   r9   rj   )
rÐ   rÉ   r8   rÑ   rg   r   rÒ   r0   r_   r`   r   r   r   Útest_numeric_only_seriesÊ  s    
rÛ   c              	   C   sÖ   t dddg|d�}|r|fnd}|jddd�}t|| ƒ}|rz|tkrzd| › d�}tjt|d	�� ||d
|iŽ W 5 Q R X nX||d
|iŽ}	| t¡}
|rœ|
fnd}|
jddd�}t|| ƒ}||d
|iŽ}t	 
|	|¡ d S )Nr	   r
   r6   r7   r   rÃ   rÙ   rÚ   r"   rÉ   )r   r   r<   r©   r,   r-   rz   rH   rÍ   r9   rj   )rÑ   rÔ   rÉ   r8   rg   rl   r   rÒ   r0   r_   Zser2rÕ   rÖ   r×   r`   r   r   r   Ú!test_numeric_only_corr_cov_seriesÞ  s    


rÜ   )@Únumpyr   r,   Zpandas.errorsr   Zpandasr   r   r   r   Zpandas._testingZ_testingr9   Zpandas.core.windowr   r   r1   ÚmarkZparametrizer@   rE   rI   rK   rM   rC   rH   rc   ra   re   rh   rk   rx   ry   r{   r+   rÍ   r   r‚   rƒ   r†   rˆ   rŒ   r�   r’   r•   rŸ   r    r¢   rª   r²   r´   rµ   r¹   r»   rÀ   rÁ   rÂ   rÆ   rÓ   rØ   Úintr©   rÛ   rÜ   r   r   r   r   Ú<module>   s°  ,
ýþ


ýúþ
ýÿþ
ýÿþêþ$
þ
	

ü
ü
ü
ü
ü
ü
ü
üüüúüúüüüüüüüüü‡þ 	
)
)






