§
    Ë²Åj%E  ã                    ó‚  — d dl mZmZmZmZmZ d dlZd dlmZ ddlm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZ ddgZ G d„ de¦  «        Zd	d
e› de› de› de› de	› d�z   e_        dee         dee         dee         dee         dee         dededededededededefd„Zdee         dee         dee         dee         dee         dededededededededefd„Z ee¬¦  «        	 	 	 	 	 d"dee         dee         dee         dee         dee         d ee         dededededededededefd!„¦   «         ZdS )#é    )ÚcastÚListÚOptionalÚTupleÚUnionN)ÚTensoré   )Ú_capturable_docÚ_default_to_fused_or_foreachÚ_differentiable_docÚ_disable_dynamo_if_unsupportedÚ_foreach_docÚ!_get_capturable_supported_devicesÚ_get_scalar_dtypeÚ
_get_valueÚ_maximize_docÚ_params_docÚ_use_grad_for_differentiableÚ_view_as_realÚ	OptimizerÚParamsTÚAdamaxÚadamaxc                   ó®   ‡ — e Zd Z	 	 	 	 	 dddddœded	eeef         d
eeef         dededee	         de	de	de	fˆ fd„Z
ˆ fd„Zd„ Zedd„¦   «         Zˆ xZS )r   çü©ñÒMb`?©gÍÌÌÌÌÌì?g+‡ÙÎ÷ï?ç:Œ0âŽyE>r   NF)ÚmaximizeÚdifferentiableÚ
capturableÚparamsÚlrÚbetasÚepsÚweight_decayÚforeachr   r   r    c          
      ó6  •— t          |t          ¦  «        r'|                     ¦   «         dk    rt          d¦  «        ‚d|k    st          d|› �¦  «        ‚d|k    st          d|› �¦  «        ‚d|d         cxk    rdk     sn t          d|d         › �¦  «        ‚d|d         cxk    rdk     sn t          d	|d         › �¦  «        ‚d|k    st          d
|› �¦  «        ‚t	          ||||||||	¬¦  «        }
t          ¦   «                              ||
¦  «         d S )Nr	   zTensor lr must be 1-elementç        zInvalid learning rate: zInvalid epsilon value: r   ç      ð?z#Invalid beta parameter at index 0: z#Invalid beta parameter at index 1: zInvalid weight_decay value: )r"   r#   r$   r%   r&   r   r   r    )Ú
isinstancer   ÚnumelÚ
ValueErrorÚdictÚsuperÚ__init__)Úselfr!   r"   r#   r$   r%   r&   r   r   r    ÚdefaultsÚ	__class__s              €úCC:\Projects\Historical\venv\Lib\site-packages\torch/optim/adamax.pyr/   zAdamax.__init__   sb  ø€ õ �b�&Ñ!Ô!ð 	< b§h¢h¡j¤j°A¢o oÝÐ:Ñ;Ô;Ð;Ø�bŠyˆyÝÐ;°rÐ;Ð;Ñ<Ô<Ð<Ø�cŠzˆzÝÐ<°sÐ<Ð<Ñ=Ô=Ð=Ø�e˜A”hÐ$Ð$Ò$Ð$ Ò$Ð$Ð$Ð$ÝÐMÀ5ÈÄ8ÐMÐMÑNÔNÐNØ�e˜A”hÐ$Ð$Ò$Ð$ Ò$Ð$Ð$Ð$ÝÐMÀ5ÈÄ8ÐMÐMÑNÔNÐNØ�lÒ"Ð"ÝÐJ¸LÐJÐJÑKÔKÐKåØØØØ%ØØØ)Ø!ð	
ñ 	
ô 	
ˆõ 	‰Œ×Ò˜ Ñ*Ô*Ð*Ð*Ð*ó    c                 óŒ  •— t          ¦   «                              |¦  «         | j        D �]}|                     dd ¦  «         |                     dd¦  «         |                     dd¦  «         |                     dd¦  «         |d         D ]´}| j                             |g ¦  «        }t          |¦  «        dk    r„t          j        |d         ¦  «        sjt          |d         ¦  «        }|d         r(t          j
        |t          ¦   «         |j        ¬	¦  «        n!t          j
        |t          ¦   «         ¬
¦  «        |d<   Œµ�Œd S )Nr&   r   Fr   r    r!   r   Ústep©ÚdtypeÚdevice©r8   )r.   Ú__setstate__Úparam_groupsÚ
setdefaultÚstateÚgetÚlenÚtorchÚ	is_tensorÚfloatÚtensorr   r9   )r0   r>   ÚgroupÚpÚp_stateÚstep_valr2   s         €r3   r;   zAdamax.__setstate__D   sO  ø€ Ý‰Œ×Ò˜UÑ#Ô#Ð#ØÔ&ð 	ñ 	ˆEØ×Ò˜Y¨Ñ-Ô-Ð-Ø×Ò˜Z¨Ñ/Ô/Ð/Ø×ÒÐ-¨uÑ5Ô5Ð5Ø×Ò˜\¨5Ñ1Ô1Ð1Ø˜8”_ð 
ð 
�Øœ*Ÿ.š.¨¨BÑ/Ô/�Ý�w‘<”< 1Ò$Ð$­U¬_¸WÀV¼_Ñ-MÔ-MÐ$Ý$ W¨V¤_Ñ5Ô5�Hð
 ! Ô.ðO�œØ$Õ,=Ñ,?Ô,?ÈÌðñ ô ð õ #œ\¨(Õ:KÑ:MÔ:MÐNÑNÔNð ˜F‘Oøñ	
ð	ð 	r4   c                 ó  — d}|d         D �]x}|j         €Œ|t          j        |¦  «        z  }|                     |¦  «         |j         j        rt          d¦  «        ‚|                     |j         ¦  «         | j        |         }	t          |	¦  «        dk    r›|d         r(t          j        dt          ¦   «         |j
        ¬¦  «        n!t          j        dt          ¦   «         ¬	¦  «        |	d
<   t          j        |t          j        ¬¦  «        |	d<   t          j        |t          j        ¬¦  «        |	d<   |                     |	d         ¦  «         |                     |	d         ¦  «         |                     |	d
         ¦  «         �Œz|S )NFr!   z(Adamax does not support sparse gradientsr   r    © r7   r(   r:   r6   )Úmemory_formatÚexp_avgÚexp_inf)ÚgradrA   Ú
is_complexÚappendÚ	is_sparseÚRuntimeErrorr>   r@   Úzerosr   r9   rD   Ú
zeros_likeÚpreserve_format)
r0   rE   Úparams_with_gradÚgradsÚexp_avgsÚexp_infsÚstate_stepsÚhas_complexrF   r>   s
             r3   Ú_init_groupzAdamax._init_groupW   sŠ  € ð ˆØ�x”ð 	.ñ 	.ˆAØŒvˆ~ØØ�5Ô+¨AÑ.Ô.Ñ.ˆKØ×#Ò# AÑ&Ô&Ð&ØŒvÔð OÝ"Ð#MÑNÔNÐNØ�LŠL˜œÑ Ô Ð à”J˜q”MˆEõ �5‰zŒz˜QŠˆð ˜\Ô*ðF•E”K Õ*;Ñ*=Ô*=ÀaÄhÐOÑOÔOÐOåœ cÕ1BÑ1DÔ1DÐEÑEÔEð �f‘õ
 $)Ô#3Ø¥UÔ%:ð$ñ $ô $��iÑ õ $)Ô#3Ø¥UÔ%:ð$ñ $ô $��iÑ ð �OŠO˜E )Ô,Ñ-Ô-Ð-Ø�OŠO˜E )Ô,Ñ-Ô-Ð-Ø×Ò˜u Vœ}Ñ-Ô-Ð-Ñ-àÐr4   c                 ó¾  — |                       ¦   «          d}|�5t          j        ¦   «         5   |¦   «         }ddd¦  «         n# 1 swxY w Y   | j        D ]‡}g }g }g }g }g }|d         \  }	}
|d         }|d         }|d         }|d         }|d         }|d         }|d	         }|                      ||||||¦  «        }t          |||||||	|
|||||||¬
¦  «         Œˆ|S )z±Performs a single optimization step.

        Args:
            closure (Callable, optional): A closure that reevaluates the model
                and returns the loss.
        Nr#   r$   r"   r%   r&   r   r   r    )
r$   Úbeta1Úbeta2r"   r%   r&   r   r   r    r[   )Ú _cuda_graph_capture_health_checkrA   Úenable_gradr<   r\   r   )r0   ÚclosureÚlossrE   rV   rW   rX   rY   rZ   r^   r_   r$   r"   r%   r&   r   r   r    r[   s                      r3   r6   zAdamax.stepz   s…  € ð 	×-Ò-Ñ/Ô/Ð/àˆØÐÝÔ"Ñ$Ô$ð !ð !Ø�w‘y”y�ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð Ô&ð $	ð $	ˆEØ-/ÐØ"$ˆEØ%'ˆHØ%'ˆHØ(*ˆKà  œ>‰LˆE�5Ø˜”,ˆCØ�t”ˆBØ  Ô0ˆLØ˜IÔ&ˆGØ˜ZÔ(ˆHØ"Ð#3Ô4ˆNØ˜|Ô,ˆJà×*Ò*ØÐ'¨°¸(ÀKñô ˆKõ Ø ØØØØØØØØØ)ØØ!Ø-Ø%Ø'ðñ ô ð ð ð$ ˆs   ¬AÁAÁ
A)r   r   r   r   N©N)Ú__name__Ú
__module__Ú__qualname__r   r   rC   r   r   r   Úboolr/   r;   r\   r   r6   Ú__classcell__)r2   s   @r3   r   r      s!  ø€ € € € € ð $(Ø%1ØØØ"&ð$+ð Ø$Ø ð$+ð $+ð $+àð$+ð �%˜�-Ô ð$+ð �U˜E�\Ô"ð	$+ð
 ð$+ð ð$+ð ˜$”ð$+ð ð$+ð ð$+ð ð$+ð $+ð $+ð $+ð $+ð $+ðLð ð ð ð ð&!ð !ð !ðF "ð4ð 4ð 4ñ "Ô!ð4ð 4ð 4ð 4ð 4r4   aÁ  Implements Adamax algorithm (a variant of Adam based on infinity norm).

    .. math::
       \begin{aligned}
            &\rule{110mm}{0.4pt}                                                                 \\
            &\textbf{input}      : \gamma \text{ (lr)}, \beta_1, \beta_2
                \text{ (betas)},\theta_0 \text{ (params)},f(\theta) \text{ (objective)},
                \: \lambda \text{ (weight decay)},                                                \\
            &\hspace{13mm}    \epsilon \text{ (epsilon)}                                          \\
            &\textbf{initialize} :  m_0 \leftarrow 0 \text{ ( first moment)},
                u_0 \leftarrow 0 \text{ ( infinity norm)}                                 \\[-1.ex]
            &\rule{110mm}{0.4pt}                                                                 \\
            &\textbf{for} \: t=1 \: \textbf{to} \: \ldots \: \textbf{do}                         \\
            &\hspace{5mm}g_t           \leftarrow   \nabla_{\theta} f_t (\theta_{t-1})           \\
            &\hspace{5mm}if \: \lambda \neq 0                                                    \\
            &\hspace{10mm} g_t \leftarrow g_t + \lambda  \theta_{t-1}                            \\
            &\hspace{5mm}m_t      \leftarrow   \beta_1 m_{t-1} + (1 - \beta_1) g_t               \\
            &\hspace{5mm}u_t      \leftarrow   \mathrm{max}(\beta_2 u_{t-1}, |g_{t}|+\epsilon)   \\
            &\hspace{5mm}\theta_t \leftarrow \theta_{t-1} - \frac{\gamma m_t}{(1-\beta^t_1) u_t} \\
            &\rule{110mm}{0.4pt}                                                          \\[-1.ex]
            &\bf{return} \:  \theta_t                                                     \\[-1.ex]
            &\rule{110mm}{0.4pt}                                                          \\[-1.ex]
       \end{aligned}

    For further details regarding the algorithm we refer to `Adam: A Method for Stochastic Optimization`_.
    z
    Args:
        a›  
        lr (float, Tensor, optional): learning rate (default: 2e-3)
        betas (Tuple[float, float], optional): coefficients used for computing
            running averages of gradient and its square
        eps (float, optional): term added to the denominator to improve
            numerical stability (default: 1e-8)
        weight_decay (float, optional): weight decay (L2 penalty) (default: 0)
        z	
        zd

    .. _Adam\: A Method for Stochastic Optimization:
        https://arxiv.org/abs/1412.6980

    r!   rW   rX   rY   rZ   r$   r^   r_   r"   r%   r   r   r    r[   c       	         óH  — t          | ¦  «        D �]�\  }}||         }|
s|n| }||         }||         }||         }t          j                             ¦   «         sF|rDt	          ¦   «         }|j        j        |j        j        k    r|j        j        |v sJ d|› d�¦   «         ‚|dz  }|	dk    r|                     ||	¬¦  «        }t          j        |¦  «        rPt          j	        |¦  «        }t          j	        |¦  «        }t          j	        |¦  «        }t          j	        |¦  «        }| 
                    |d|z
  ¦  «         |sPt          j        |                     |¦  «        |                     ¦   «                              |¦  «        |¬¦  «         nŸt          j        |                     |¦  «                             d¦  «        |                     ¦   «                              |¦  «                             d¦  «        gd¦  «        }|                     t          j        |dd¬¦  «        ¦  «         |r:||z  dz
  }|                     |¦  «         ||z  }|                     ||¦  «         �Œ]d|t-          |¦  «        z  z
  }||z  }|                     ||| ¬	¦  «         �Œ’d S )
NúIIf capturable=True, params and state_steps must be on supported devices: ú.r	   r   ©Úalpha)ÚoutF)Úkeepdim)Úvalue)Ú	enumeraterA   ÚcompilerÚis_compilingr   r9   ÚtypeÚaddrO   Úview_as_realÚlerp_ÚmaximumÚmul_ÚabsÚadd_ÚcatÚ	unsqueezeÚ
unsqueeze_Úcopy_ÚamaxÚdiv_Úaddcdiv_r   )r!   rW   rX   rY   rZ   r$   r^   r_   r"   r%   r   r   r    r[   ÚiÚparamrN   rL   rM   Ústep_tÚcapturable_supported_devicesÚnorm_bufÚneg_bias_correctionÚdenomÚbias_correctionÚclrs                             r3   Ú_single_tensor_adamaxr�   â   sÇ  € õ" ˜fÑ%Ô%ð 69ñ 69‰ˆˆ5Ø�QŒxˆØ#Ð.ˆtˆt¨$¨ˆØ˜1”+ˆØ˜1”+ˆØ˜Q”ˆõ Œ~×*Ò*Ñ,Ô,ð 	{°ð 	{Ý+LÑ+NÔ+NÐ(à”Ô! V¤]Ô%7Ò7Ð7Ø”LÔ%Ð)EÐEÐEÐEØzÐ[wÐzÐzÐzñ FÔEðFð
 	�!‰ˆà˜1ÒÐØ—8’8˜E¨�8Ñ6Ô6ˆDåÔ˜EÑ"Ô"ð 	2ÝÔ& uÑ-Ô-ˆEÝÔ% dÑ+Ô+ˆDÝÔ(¨Ñ1Ô1ˆGÝÔ(¨Ñ1Ô1ˆGð 	�Š�d˜A ™IÑ&Ô&Ð&àð 	BÝŒMØ—’˜UÑ#Ô#Ø—’‘
”
—’ Ñ$Ô$Øðñ ô ð ð õ ”yØ—’˜eÑ$Ô$×.Ò.¨qÑ1Ô1°4·8²8±:´:·?²?À3Ñ3GÔ3G×3RÒ3RÐSTÑ3UÔ3UÐVØñô ˆHð �MŠM�%œ* X¨q¸%Ð@Ñ@Ô@ÑAÔAÐAàð 	9ð #(¨¡-°!Ñ"3ÐØ×$Ò$ RÑ(Ô(Ð(ØÐ1Ñ1ˆEØ�NŠN˜7 EÑ*Ô*Ð*Ñ*à %­:°fÑ+=Ô+=Ñ"=Ñ=ˆOØ�Ñ&ˆCà�NŠN˜7 G°C°4ˆNÑ8Ô8Ð8Ñ8ðm69ð 69r4   c       	         óÀ  ‡‡‡— |r
J d¦   «         ‚t          | ¦  «        dk    rd S t          j                             ¦   «         sI|rGt	          d¬¦  «        Št          ˆfd„t          | |¦  «        D ¦   «         ¦  «        sJ d‰› d�¦   «         ‚t          j        | ||||g¦  «        }| 	                    ¦   «         D �]£\  \  }}}}}}t          t          t                   |¦  «        }t          t          t                   |¦  «        }t          t          t                   |¦  «        }t          t          t                   |¦  «        }t          t          t                   |¦  «        }|rt          ||||¦  «         |
rt          j        |¦  «        }t          j                             ¦   «         s9|d         j        r,t          j        |t          j        dd	¬
¦  «        d¬¦  «         nt          j        |d¦  «         |	dk    r1|
rt          j        |||	¬¦  «         nt          j        |||	¬¦  «        }t          j        ||d‰z
  ¦  «         t          j        ||¦  «         |
s|	dk    rt          j        |¦  «        }nt          j        |¦  «         t          j        ||¦  «         t          j        ||¦  «         |rlt          j        ‰|¦  «        }t          j        |d¦  «         t          j        |‰¦  «         t          j        ||¦  «        }t          j        |||¦  «         �Œpˆfd„|D ¦   «         }ˆfd„|D ¦   «         }t          j        ||||¦  «         �Œ¥d S )Nz#_foreach ops don't support autogradr   F)Úsupports_xlac              3   ón   •K  — | ]/\  }}|j         j        |j         j        k    o|j         j        ‰v V — Œ0d S rd   )r9   ru   )Ú.0rF   r6   r‡   s      €r3   ú	<genexpr>z'_multi_tensor_adamax.<locals>.<genexpr>G  s]   øè è € ð 
ð 
ñ ��4ð ŒHŒM˜Tœ[Ô-Ò-ð >Ø””Ð!=Ð=ð
ð 
ð 
ð 
ð 
ð 
r4   rk   rl   r)   Úcpu)r9   rm   r	   c                 ó:   •— g | ]}d ‰t          |¦  «        z  z
  ‘ŒS )r	   ©r   )r‘   r6   r^   s     €r3   ú
<listcomp>z(_multi_tensor_adamax.<locals>.<listcomp>“  s8   ø€ ð  ð  ð  Ø26��E�Z¨Ñ-Ô-Ñ-Ñ-ð ð  ð  r4   c                 ó:   •— g | ]}t          ‰¦  «        |z  d z  ‘ŒS )éÿÿÿÿr•   )r‘   Úbcr"   s     €r3   r–   z(_multi_tensor_adamax.<locals>.<listcomp>–  s)   ø€ ÐOÐOÐO¸�* R™.œ.¨2Ñ-°Ñ3ÐOÐOÐOr4   )r@   rA   rs   rt   r   ÚallÚzipr   Ú"_group_tensors_by_device_and_dtypeÚvaluesr   r   r   r   Ú_foreach_negÚis_cpuÚ_foreach_add_rD   Ú_foreach_addÚ_foreach_lerp_Ú_foreach_mul_Ú_foreach_absÚ_foreach_abs_Ú_foreach_maximum_Ú_foreach_powÚ_foreach_sub_Ú_foreach_div_Ú_foreach_mulÚ_foreach_addcdiv_)r!   rW   rX   rY   rZ   r$   r^   r_   r"   r%   r   r   r    r[   Úgrouped_tensorsÚgrouped_params_Úgrouped_grads_Úgrouped_exp_avgs_Úgrouped_exp_infs_Úgrouped_state_steps_Ú_Úgrouped_paramsÚgrouped_gradsÚgrouped_exp_avgsÚgrouped_exp_infsÚgrouped_state_stepsÚbias_correctionsrŠ   Ú	step_sizer‡   s         ` `                    @r3   Ú_multi_tensor_adamaxrº   ,  s  øøø€ ð" ÐDÐDÐDÑDÔDÐå
ˆ6�{„{�aÒÐØˆõ Œ>×&Ò&Ñ(Ô(ð w¨Zð wÝ'HØð(
ñ (
ô (
Ð$õ ð 
ð 
ð 
ð 
õ ˜v {Ñ3Ô3ð
ñ 
ô 
ñ 
ô 
ð 	wð 	wð wÐWsÐvÐvÐvñ		wô 	wð 
õ  ÔBØ	�˜ (¨KÐ8ñô €Oð ×"Ò"Ñ$Ô$ðIñ Iñ 		ñ 	ØØØØØØÝ�d¥6œl¨OÑ<Ô<ˆÝ�T¥&œ\¨>Ñ:Ô:ˆÝ¥¥V¤Ð.?Ñ@Ô@ÐÝ¥¥V¤Ð.?Ñ@Ô@ÐÝ"¥4­¤<Ð1EÑFÔFÐàð 	ÝØ Ð/?ÐAQñô ð ð ð 	>Ý!Ô.¨}Ñ=Ô=ˆMõ Œ~×*Ò*Ñ,Ô,ð 	8Ð1DÀQÔ1GÔ1Nð 	8ÝÔØ#¥U¤\°#¸eÐ%DÑ%DÔ%DÈCðñ ô ð ð õ ÔÐ 3°QÑ7Ô7Ð7à˜1ÒÐØð åÔ# M°>ÈÐVÑVÔVÐVÐVå %Ô 2Ø! >¸ð!ñ !ô !�õ
 	ÔÐ-¨}¸aÀ%¹iÑHÔHÐHõ 	ÔÐ,¨eÑ4Ô4Ð4ð ð 	/˜L¨AÒ-Ð-Ý!Ô.¨}Ñ=Ô=ˆMˆMåÔ Ñ.Ô.Ð.åÔ˜M¨3Ñ/Ô/Ð/ÝÔÐ 0°-Ñ@Ô@Ð@ð ð 	Ý$Ô1°%Ð9LÑMÔMÐåÔÐ 0°!Ñ4Ô4Ð4ÝÔÐ 0°"Ñ5Ô5Ð5åÔ&Ð'7Ð9IÑJÔJˆEÝÔ# NÐ4DÀeÑLÔLÐLÑLð ð  ð  ð  Ø:Mð ñ  ô  Ðð PÐOÐOÐOÐ>NÐOÑOÔOˆIÝÔ#ØÐ 0Ð2BÀIñô ð ñ ðOIð Ir4   )Úsingle_tensor_fnFr&   c
                ó®  — t           j                             ¦   «         s(t          d„ |D ¦   «         ¦  «        st	          d¦  «        ‚|€t          | |d¬¦  «        \  }}|r-t           j                             ¦   «         rt	          d¦  «        ‚|r&t           j                             ¦   «         st          }nt          } || |||||
|||||||	|¬¦  «         dS )zrFunctional API that performs adamax algorithm computation.

    See :class:`~torch.optim.Adamax` for details.
    c              3   óJ   K  — | ]}t          |t          j        ¦  «        V — Œd S rd   )r*   rA   r   )r‘   Úts     r3   r’   zadamax.<locals>.<genexpr>¶  s?   è è € ð 5ð 5Ø()�
�1•e”lÑ#Ô#ð5ð 5ð 5ð 5ð 5ð 5r4   zPAPI has changed, `state_steps` argument must contain a list of singleton tensorsNF)Ú	use_fusedz6torch.jit.script not supported with foreach optimizers)	r$   r^   r_   r"   r%   r   r   r[   r    )
rA   rs   rt   rš   rR   r   ÚjitÚis_scriptingrº   r�   )r!   rW   rX   rY   rZ   r&   r   r   r    r[   r$   r^   r_   r"   r%   r²   Úfuncs                    r3   r   r   œ  s*  € õ4 Œ>×&Ò&Ñ(Ô(ð 
µð 5ð 5Ø-8ð5ñ 5ô 5ñ 2ô 2ð 
õ Ø^ñ
ô 
ð 	
ð €Ý1Ø�N¨eð
ñ 
ô 
‰
ˆˆ7ð ð U•5”9×)Ò)Ñ+Ô+ð UÝÐSÑTÔTÐTàð %•u”y×-Ò-Ñ/Ô/ð %Ý#ˆˆå$ˆà€DØØØØØØØØØØ!ØØ%ØØðñ ô ð ð ð r4   )NFFFF)Útypingr   r   r   r   r   rA   r   Ú	optimizerr
   r   r   r   r   r   r   r   r   r   r   r   r   r   Ú__all__r   Ú__doc__rC   rh   r�   rº   r   rJ   r4   r3   ú<module>rÇ      s  ðð 6Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5à €€€Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð$ �XÐ
€ðRð Rð Rð Rð RˆYñ Rô Rð Rðlð4à	ðð ð 
ðð ð 
ðð ð 
ðð ð 
ðð ð ñ5+ð „ð`G9Ø�ŒLðG9à�Œ<ðG9ð �6ŒlðG9ð �6Œlð	G9ð
 �f”ðG9ð 
ðG9ð ðG9ð ðG9ð 	ðG9ð ðG9ð ðG9ð ðG9ð ðG9ð ðG9ð G9ð G9ð G9ðTmØ�ŒLðmà�Œ<ðmð �6Œlðmð �6Œlð	mð
 �f”ðmð 
ðmð ðmð ðmð 	ðmð ðmð ðmð ðmð ðmð ðmð mð mð mð`  ÐÐ1FÐGÑGÔGð #ØØ ØØð<ð <Ø�ŒLð<à�Œ<ð<ð �6Œlð<ð �6Œlð	<ð
 �f”ð<ð �dŒ^ð<ð ð<ð ð<ð ð<ð ð<ð 
ð<ð ð<ð  ð!<ð" 	ð#<ð$ ð%<ð <ð <ñ HÔGð<ð <ð <r4   