Ë
    þÍ:jšD  ã                   óž  — d dl Z d dlmZ d dlmZm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mZ dd
lmZ ddlmZmZ g d¢ZdZ G d„ dej2                  «      Zdedededededededej:                  fd„Zd8dedededefd„Zdede e   fd„Z! G d„ d ej                  j2                  «      Z"d!ed"d#œZ# G d$„ d%e«      Z$ G d&„ d'e«      Z% G d(„ d)e«      Z& G d*„ d+e«      Z'ded,ee   d-e(d.ede"f
d/„Z) e«        ed0e$jT                  f¬1«      dd2d3œd,ee$   d-e(d.ede"fd4„«       «       Z+ e«        ed0e%jT                  f¬1«      dd2d3œd,ee%   d-e(d.ede"fd5„«       «       Z, e«        ed0e&jT                  f¬1«      dd2d3œd,ee&   d-e(d.ede"fd6„«       «       Z- e«        ed0e'jT                  f¬1«      dd2d3œd,ee'   d-e(d.ede"fd7„«       «       Z.y)9é    N)Úpartial)ÚAnyÚOptional)ÚTensoré   )ÚImageClassification)Ú_log_api_usage_onceé   )Úregister_modelÚWeightsÚWeightsEnum)Ú_IMAGENET_CATEGORIES)Ú_ovewrite_named_paramÚhandle_legacy_interface)	ÚMNASNetÚMNASNet0_5_WeightsÚMNASNet0_75_WeightsÚMNASNet1_0_WeightsÚMNASNet1_3_WeightsÚ
mnasnet0_5Úmnasnet0_75Ú
mnasnet1_0Ú
mnasnet1_3g 0U0*©3?c                   óP   ‡ — e Zd Z	 ddededededededdfˆ fd	„Zd
edefd„Zˆ xZS )Ú_InvertedResidualÚin_chÚout_chÚkernel_sizeÚstrideÚexpansion_factorÚbn_momentumÚreturnNc                 ó<  •— t         ‰| �  «        |dvrt        d|› �«      ‚|dvrt        d|› �«      ‚||z  }||k(  xr |dk(  | _        t	        j
                  t	        j                  ||dd¬«      t	        j                  ||¬«      t	        j                  d	¬
«      t	        j                  ||||dz  ||d¬«      t	        j                  ||¬«      t	        j                  d	¬
«      t	        j                  ||dd¬«      t	        j                  ||¬«      «      | _	        y )N©r
   r   z#stride should be 1 or 2 instead of )é   é   z(kernel_size should be 3 or 5 instead of r
   F)Úbias©ÚmomentumT©Úinplacer   ©Úpaddingr   Úgroupsr'   )
ÚsuperÚ__init__Ú
ValueErrorÚapply_residualÚnnÚ
SequentialÚConv2dÚBatchNorm2dÚReLUÚlayers)	Úselfr   r   r   r   r    r!   Úmid_chÚ	__class__s	           €úo/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/torchvision/models/mnasnet.pyr0   z_InvertedResidual.__init__#   sü   ø€ ô 	‰ÑÔØ˜ÑÜÐBÀ6À(ÐKÓLÐLØ˜fÑ$ÜÐGÈÀ}ÐUÓVÐVØÐ)Ñ)ˆØ# v™oÒ=°&¸A±+ˆÔÜ—m‘mä�I‰I�e˜V Q¨UÔ3Ü�N‰N˜6¨KÔ8Ü�G‰G˜DÔ!ä�I‰I�f˜f k¸;È!Ñ;KÐTZÐciÐpuÔvÜ�N‰N˜6¨KÔ8Ü�G‰G˜DÔ!ä�I‰I�f˜f a¨eÔ4Ü�N‰N˜6¨KÔ8ó
ˆ�ó    Úinputc                 ód   — | j                   r| j                  |«      |z   S | j                  |«      S )N)r2   r8   )r9   r>   s     r<   Úforwardz_InvertedResidual.forward;   s.   € Ø×ÒØ—;‘;˜uÓ%¨Ñ-Ð-à—;‘;˜uÓ%Ð%r=   )gš™™™™™¹?)	Ú__name__Ú
__module__Ú__qualname__ÚintÚfloatr0   r   r@   Ú__classcell__©r;   s   @r<   r   r   "   sV   ø„ àruñ
Øð
Ø"%ð
Ø47ð
ØADð
ØX[ð
Øjoð
à	õ
ð0&˜Vð &¨÷ &r=   r   r   r   r   r   Ú
exp_factorÚrepeatsr!   r"   c                 óÜ   — |dk  rt        d|› �«      ‚t        | |||||¬«      }g }t        d|«      D ]"  }	|j                  t        |||d||¬«      «       Œ$ t	        j
                  |g|¢­Ž S )z&Creates a stack of inverted residuals.r
   z$repeats should be >= 1, instead got )r!   )r1   r   ÚrangeÚappendr3   r4   )
r   r   r   r   rH   rI   r!   ÚfirstÚ	remainingÚ_s
             r<   Ú_stackrP   B   sƒ   € ð �‚{ÜÐ?À¸yÐIÓJÐJä˜e V¨[¸&À*ÐZeÔf€EØ€IÜ�1�gÓò qˆØ×ÑÔ*¨6°6¸;ÈÈ:ÐcnÔoÕpðqä�=‰=˜Ð+ Ò+Ð+r=   ÚvalÚdivisorÚround_up_biasc                 ó˜   — d|cxk  rdk  sn t        d|› �«      ‚t        |t        | |dz  z   «      |z  |z  «      }||| z  k\  r|S ||z   S )zÚAsymmetric rounding to make `val` divisible by `divisor`. With default
    bias, will round up, unless the number is no more than 10% greater than the
    smaller divisible value, i.e. (83, 8) -> 80, but (84, 8) -> 88.ç        ç      ð?zIround_up_bias should be greater than 0.0 and smaller than 1.0 instead of r   )r1   ÚmaxrD   )rQ   rR   rS   Únew_vals       r<   Ú_round_to_multiple_ofrY   P   sf   € ð �Ô$ Ô$ÜÐdÐerÐdsÐtÓuÐuÜ�'œ3˜s W¨q¡[Ñ0Ó1°WÑ<¸wÑFÓG€GØ °Ñ!4Ò4ˆ7ÐK¸'ÀGÑ:KÐKr=   Úalphac                 óN   — g d¢}|D �cg c]  }t        || z  d«      ‘Œ c}S c c}w )z^Scales tensor depths as in reference MobileNet code, prefers rounding up
    rather than down.)é    é   é   é(   éP   é`   éÀ   i@  é   )rY   )rZ   ÚdepthsÚdepths      r<   Ú_get_depthsrf   Z   s)   € ò 0€FØAGÖH¸Ô! %¨%¡-°Õ3ÒHÐHùÒHs   ‰"c                   óˆ   ‡ — e Zd ZdZdZddedededdfˆ fd„Zd	edefd
„Z	de
dede
dedee   dee   dee   ddfˆ fd„Zˆ xZS )r   a  MNASNet, as described in https://arxiv.org/abs/1807.11626. This
    implements the B1 variant of the model.
    >>> model = MNASNet(1.0, num_classes=1000)
    >>> x = torch.rand(1, 3, 224, 224)
    >>> y = model(x)
    >>> y.dim()
    2
    >>> y.nelement()
    1000
    r   rZ   Únum_classesÚdropoutr"   Nc                 óÂ  •— t         ‰| �  «        t        | «       |dk  rt        d|› �«      ‚|| _        || _        t        |«      }t        j                  d|d   dddd¬«      t        j                  |d   t        ¬	«      t        j                  d
¬«      t        j                  |d   |d   ddd|d   d¬«      t        j                  |d   t        ¬	«      t        j                  d
¬«      t        j                  |d   |d   dddd¬«      t        j                  |d   t        ¬	«      t        |d   |d   ddddt        «      t        |d   |d   ddddt        «      t        |d   |d   ddddt        «      t        |d   |d   ddddt        «      t        |d   |d   ddddt        «      t        |d   |d   ddddt        «      t        j                  |d   ddddd¬«      t        j                  dt        ¬	«      t        j                  d
¬«      g}t        j                  |Ž | _        t        j                  t        j                  |d
¬«      t        j                   d|«      «      | _        | j%                  «       D �]^  }t'        |t        j                  «      rct        j(                  j+                  |j,                  dd¬«       |j.                  €ŒWt        j(                  j1                  |j.                  «       Œ�t'        |t        j                  «      rSt        j(                  j3                  |j,                  «       t        j(                  j1                  |j.                  «       Œît'        |t        j                   «      s�Œ
t        j(                  j5                  |j,                  dd¬«       t        j(                  j1                  |j.                  «       �Œa y )NrU   z,alpha should be greater than 0.0 instead of r%   r   r
   r   F©r-   r   r'   r(   Tr*   r,   r&   é   é   é   i   )Úpr+   Úfan_outÚrelu)ÚmodeÚnonlinearityÚsigmoid)r/   r0   r	   r1   rZ   rh   rf   r3   r5   r6   Ú_BN_MOMENTUMr7   rP   r4   r8   ÚDropoutÚLinearÚ
classifierÚmodulesÚ
isinstanceÚinitÚkaiming_normal_Úweightr'   Úzeros_Úones_Úkaiming_uniform_)r9   rZ   rh   ri   rd   r8   Úmr;   s          €r<   r0   zMNASNet.__init__p   sê  ø€ Ü‰ÑÔÜ˜DÔ!Ø�CŠ<ÜÐKÈEÈ7ÐSÓTÐTØˆŒ
Ø&ˆÔÜ˜UÓ#ˆô �I‰I�a˜ ™ A¨q¸ÀÔGÜ�N‰N˜6 !™9¬|Ô<Ü�G‰G˜DÔ!ä�I‰I�f˜Q‘i ¨¡¨A°qÀÈ6ÐRSÉ9Ð[`ÔaÜ�N‰N˜6 !™9¬|Ô<Ü�G‰G˜DÔ!Ü�I‰I�f˜Q‘i ¨¡¨A°qÀÈÔOÜ�N‰N˜6 !™9¬|Ô<ä�6˜!‘9˜f Q™i¨¨A¨q°!´\ÓBÜ�6˜!‘9˜f Q™i¨¨A¨q°!´\ÓBÜ�6˜!‘9˜f Q™i¨¨A¨q°!´\ÓBÜ�6˜!‘9˜f Q™i¨¨A¨q°!´\ÓBÜ�6˜!‘9˜f Q™i¨¨A¨q°!´\ÓBÜ�6˜!‘9˜f Q™i¨¨A¨q°!´\ÓBä�I‰I�f˜Q‘i  q°!¸AÀEÔJÜ�N‰N˜4¬,Ô7Ü�G‰G˜DÔ!ð+
ˆô. —m‘m VÐ,ˆŒÜŸ-™-¬¯
©
°WÀdÔ(KÌRÏYÉYÐW[Ð]hÓMiÓjˆŒà—‘“ó 
	'ˆAÜ˜!œRŸY™YÔ'Ü—‘×'Ñ'¨¯©°yÈvÐ'ÔVØ—6‘6Ñ%Ü—G‘G—N‘N 1§6¡6Õ*Ü˜AœrŸ~™~Ô.Ü—‘—‘˜aŸh™hÔ'Ü—‘—‘˜qŸv™vÕ&Ü˜AœrŸy™yÖ)Ü—‘×(Ñ(¨¯©¸	ÐPYÐ(ÔZÜ—‘—‘˜qŸv™vÖ&ñ
	'r=   Úxc                 ól   — | j                  |«      }|j                  ddg«      }| j                  |«      S )Nr   r%   )r8   Úmeanrx   )r9   r‚   s     r<   r@   zMNASNet.forwardž   s/   € Ø�K‰K˜‹Nˆà�F‰F�A�q�6‹NˆØ�‰˜qÓ!Ð!r=   Ú
state_dictÚprefixÚlocal_metadataÚstrictÚmissing_keysÚunexpected_keysÚ
error_msgsc                 ó  •— |j                  dd «      }|dvrt        d|› �«      ‚|dk(  �rH| j                  dk(  �s8t        | j                  «      }	t	        j
                  dddddd	¬
«      t	        j                  dt        ¬«      t	        j                  d¬«      t	        j
                  ddddddd	¬«      t	        j                  dt        ¬«      t	        j                  d¬«      t	        j
                  dddddd	¬
«      t	        j                  dt        ¬«      t        d|	d   ddddt        «      g	}
t        |
«      D ]  \  }}|| j                  |<   Œ d| _        t        j                  dt        «       t         ‰| �E  |||||||«       y )NÚversionr$   z+version shluld be set to 1 or 2 instead of r
   rV   r%   r\   r   Frk   r(   Tr*   r,   r]   r   a  A new version of MNASNet model has been implemented. Your checkpoint was saved using the previous version. This checkpoint will load and work as before, but you may want to upgrade by training a newer model or transfer learning from an updated ImageNet checkpoint.)Úgetr1   rZ   rf   r3   r5   r6   ru   r7   rP   Ú	enumerater8   Ú_versionÚwarningsÚwarnÚUserWarningr/   Ú_load_from_state_dict)r9   r…   r†   r‡   rˆ   r‰   rŠ   r‹   r�   rd   Úv1_stemÚidxÚlayerr;   s                €r<   r”   zMNASNet._load_from_state_dict¤   s`  ø€ ð !×$Ñ$ Y°Ó5ˆØ˜&Ñ ÜÐJÈ7È)ÐTÓUÐUà�a‹< §
¡
¨cÓ 1ô
 ! §¡Ó,ˆFä—	‘	˜!˜R ¨A°a¸eÔDÜ—‘˜r¬LÔ9Ü—‘ Ô%Ü—	‘	˜"˜b !¨Q°qÀÈ%ÔPÜ—‘˜r¬LÔ9Ü—‘ Ô%Ü—	‘	˜"˜b !¨Q°q¸uÔEÜ—‘˜r¬LÔ9Ü�r˜6 !™9 a¨¨A¨q´,Ó?ð
ˆGô (¨Ó0ò )‘
��UØ#(�—‘˜CÒ ð)ð ˆDŒMÜ�M‰MðIô
 ôô 	‰Ñ%Ø˜ °¸ÀoÐWaõ	
r=   )iè  gš™™™™™É?)rA   rB   rC   Ú__doc__r�   rE   rD   r0   r   r@   ÚdictÚstrÚboolÚlistr”   rF   rG   s   @r<   r   r   a   s©   ø„ ñ	ð €Hñ,'˜eð ,'°#ð ,'Àuð ,'ÐW[õ ,'ð\"˜ð " Fó "ð/
àð/
ð ð/
ð ð	/
ð
 ð/
ð ˜3‘ið/
ð ˜c™ð/
ð ˜‘Ið/
ð 
÷/
ñ /
r=   r   )r
   r
   z(https://github.com/1e100/mnasnet_trainer)Úmin_sizeÚ
categoriesÚrecipec                   óT   — e Zd Z ed eed¬«      i e¥dddddœid	d
ddœ¥¬«      ZeZy)r   zIhttps://download.pytorch.org/models/mnasnet0.5_top1_67.823-3ffadce67e.pthéà   ©Ú	crop_sizeiÚ! úImageNet-1KgåÐ"ÛùîP@g�Âõ(\ßU@©zacc@1zacc@5g9´Èv¾Ÿº?g;ßO�—.!@ú9These weights reproduce closely the results of the paper.©Ú
num_paramsÚ_metricsÚ_opsÚ
_file_sizeÚ_docs©ÚurlÚ
transformsÚmetaN©	rA   rB   rC   r   r   r   Ú_COMMON_METAÚIMAGENET1K_V1ÚDEFAULT© r=   r<   r   r   Ý   sT   „ ÙØWÙÐ.¸#Ô>ð
Øð
à!àØ#Ø#ñ ðð ØØTò
ô€Mð" �Gr=   r   c                   óX   — e Zd Z ed eedd¬«      i e¥ddddd	d
œiddddœ¥¬«      ZeZy)r   z<https://download.pytorch.org/models/mnasnet0_75-7090bc5f.pthr¡   éè   ©r£   Úresize_sizeú+https://github.com/pytorch/vision/pull/6019i _0 r¤   gìQ¸…ËQ@g9´Èv¾ŸV@r¥   g…ëQ¸…Ë?gB`åÐ"›(@úé
                These weights were trained from scratch by using TorchVision's `new training recipe
                <https://pytorch.org/blog/how-to-train-state-of-the-art-models-using-torchvision-latest-primitives/>`_.
            ©rŸ   r¨   r©   rª   r«   r¬   r­   Nr±   rµ   r=   r<   r   r   ò   s[   „ ÙØJÙÐ.¸#È3ÔOð
Øð
àCØ!àØ#Ø#ñ ðð Ø ðò
ô€Mð* �Gr=   r   c                   óT   — e Zd Z ed eed¬«      i e¥dddddœid	d
ddœ¥¬«      ZeZy)r   zIhttps://download.pytorch.org/models/mnasnet1.0_top1_73.512-f206786ef8.pthr¡   r¢   iPâB r¤   gw¾Ÿ/]R@gq=
×£àV@r¥   gj¼t“Ô?g
×£p=ê0@r¦   r§   r­   Nr±   rµ   r=   r<   r   r     sT   „ ÙØWÙÐ.¸#Ô>ð
Øð
à!àØ#Ø#ñ ðð Ø ØTò
ô€Mð" �Gr=   r   c                   óX   — e Zd Z ed eedd¬«      i e¥ddddd	d
œiddddœ¥¬«      ZeZy)r   z;https://download.pytorch.org/models/mnasnet1_3-a4c69d6f.pthr¡   r·   r¸   rº   iÜ_ r¤   gªñÒMb S@gÅ °rhaW@r¥   g¢E¶óýÔà?gåÐ"Ûù>8@r»   r¼   r­   Nr±   rµ   r=   r<   r   r      s[   „ ÙØIÙÐ.¸#È3ÔOð
Øð
àCØ!àØ#Ø#ñ ðð Ø ðò
ô€Mð* �Gr=   r   ÚweightsÚprogressÚkwargsc                 ó°   — |�#t        |dt        |j                  d   «      «       t        | fi |¤Ž}|r"|j	                  |j                  |d¬«      «       |S )Nrh   rž   T)rÀ   Ú
check_hash)r   Úlenr°   r   Úload_state_dictÚget_state_dict)rZ   r¿   rÀ   rÁ   Úmodels        r<   Ú_mnasnetrÈ   9  sX   € ØÐÜ˜f m´S¸¿¹ÀlÑ9SÓ5TÔUä�EÑ$˜VÑ$€EáØ×Ñ˜g×4Ñ4¸hÐSWÐ4ÓXÔYà€Lr=   Ú
pretrained)r¿   T)r¿   rÀ   c                 óH   — t         j                  | «      } t        d| |fi |¤ŽS )a²  MNASNet with depth multiplier of 0.5 from
    `MnasNet: Platform-Aware Neural Architecture Search for Mobile
    <https://arxiv.org/abs/1807.11626>`_ paper.

    Args:
        weights (:class:`~torchvision.models.MNASNet0_5_Weights`, optional): The
            pretrained weights to use. See
            :class:`~torchvision.models.MNASNet0_5_Weights` below for
            more details, and possible values. By default, no pre-trained
            weights are used.
        progress (bool, optional): If True, displays a progress bar of the
            download to stderr. Default is True.
        **kwargs: parameters passed to the ``torchvision.models.mnasnet.MNASNet``
            base class. Please refer to the `source code
            <https://github.com/pytorch/vision/blob/main/torchvision/models/mnasnet.py>`_
            for more details about this class.

    .. autoclass:: torchvision.models.MNASNet0_5_Weights
        :members:
    g      à?)r   ÚverifyrÈ   ©r¿   rÀ   rÁ   s      r<   r   r   E  ó(   € ô. !×'Ñ'¨Ó0€Gä�C˜ (Ñ5¨fÑ5Ð5r=   c                 óH   — t         j                  | «      } t        d| |fi |¤ŽS )a¶  MNASNet with depth multiplier of 0.75 from
    `MnasNet: Platform-Aware Neural Architecture Search for Mobile
    <https://arxiv.org/abs/1807.11626>`_ paper.

    Args:
        weights (:class:`~torchvision.models.MNASNet0_75_Weights`, optional): The
            pretrained weights to use. See
            :class:`~torchvision.models.MNASNet0_75_Weights` below for
            more details, and possible values. By default, no pre-trained
            weights are used.
        progress (bool, optional): If True, displays a progress bar of the
            download to stderr. Default is True.
        **kwargs: parameters passed to the ``torchvision.models.mnasnet.MNASNet``
            base class. Please refer to the `source code
            <https://github.com/pytorch/vision/blob/main/torchvision/models/mnasnet.py>`_
            for more details about this class.

    .. autoclass:: torchvision.models.MNASNet0_75_Weights
        :members:
    g      è?)r   rË   rÈ   rÌ   s      r<   r   r   a  s(   € ô. "×(Ñ(¨Ó1€Gä�D˜' 8Ñ6¨vÑ6Ð6r=   c                 óH   — t         j                  | «      } t        d| |fi |¤ŽS )a²  MNASNet with depth multiplier of 1.0 from
    `MnasNet: Platform-Aware Neural Architecture Search for Mobile
    <https://arxiv.org/abs/1807.11626>`_ paper.

    Args:
        weights (:class:`~torchvision.models.MNASNet1_0_Weights`, optional): The
            pretrained weights to use. See
            :class:`~torchvision.models.MNASNet1_0_Weights` below for
            more details, and possible values. By default, no pre-trained
            weights are used.
        progress (bool, optional): If True, displays a progress bar of the
            download to stderr. Default is True.
        **kwargs: parameters passed to the ``torchvision.models.mnasnet.MNASNet``
            base class. Please refer to the `source code
            <https://github.com/pytorch/vision/blob/main/torchvision/models/mnasnet.py>`_
            for more details about this class.

    .. autoclass:: torchvision.models.MNASNet1_0_Weights
        :members:
    rV   )r   rË   rÈ   rÌ   s      r<   r   r   }  rÍ   r=   c                 óH   — t         j                  | «      } t        d| |fi |¤ŽS )a²  MNASNet with depth multiplier of 1.3 from
    `MnasNet: Platform-Aware Neural Architecture Search for Mobile
    <https://arxiv.org/abs/1807.11626>`_ paper.

    Args:
        weights (:class:`~torchvision.models.MNASNet1_3_Weights`, optional): The
            pretrained weights to use. See
            :class:`~torchvision.models.MNASNet1_3_Weights` below for
            more details, and possible values. By default, no pre-trained
            weights are used.
        progress (bool, optional): If True, displays a progress bar of the
            download to stderr. Default is True.
        **kwargs: parameters passed to the ``torchvision.models.mnasnet.MNASNet``
            base class. Please refer to the `source code
            <https://github.com/pytorch/vision/blob/main/torchvision/models/mnasnet.py>`_
            for more details about this class.

    .. autoclass:: torchvision.models.MNASNet1_3_Weights
        :members:
    gÍÌÌÌÌÌô?)r   rË   rÈ   rÌ   s      r<   r   r   ™  rÍ   r=   )gÍÌÌÌÌÌì?)/r‘   Ú	functoolsr   Útypingr   r   ÚtorchÚtorch.nnr3   r   Útransforms._presetsr   Úutilsr	   Ú_apir   r   r   Ú_metar   Ú_utilsr   r   Ú__all__ru   ÚModuler   rD   rE   r4   rP   rY   rœ   rf   r   r²   r   r   r   r   r›   rÈ   r³   r   r   r   r   rµ   r=   r<   ú<module>rÜ      sÆ  ðÛ Ý ß  ã Ý Ý å 5Ý 'ß 6Ñ 6Ý 'ß Bò
€ð €ô&˜Ÿ	™	ô &ð@,Øð,Øð,Ø*-ð,Ø7:ð,ØHKð,ØVYð,Øhmð,à‡]�]ó,ñL˜uð L¨sð LÀ5ð LÐSVó LðI�uð I  c¡ó Iôr
ˆe�h‰h�o‰oô r
ðl Ø&Ø8ñ€ô˜ô ô*˜+ô ô2˜ô ô*˜ô ð2	�Eð 	 H¨[Ñ$9ð 	ÀTð 	ÐUXð 	Ð]dó 	ñ ÓÙ ,Ð0B×0PÑ0PÐ!QÔRØ:>ÐQUò 6˜8Ð$6Ñ7ð 6È$ð 6Ðadð 6Ðipò 6ó Só ð6ñ4 ÓÙ ,Ð0C×0QÑ0QÐ!RÔSØ<@ÐSWò 7˜HÐ%8Ñ9ð 7ÈDð 7Ðcfð 7Ðkrò 7ó Tó ð7ñ4 ÓÙ ,Ð0B×0PÑ0PÐ!QÔRØ:>ÐQUò 6˜8Ð$6Ñ7ð 6È$ð 6Ðadð 6Ðipò 6ó Só ð6ñ4 ÓÙ ,Ð0B×0PÑ0PÐ!QÔRØ:>ÐQUò 6˜8Ð$6Ñ7ð 6È$ð 6Ðadð 6Ðipò 6ó Só ñ6r=   