Ë
    ¹ûàg™,  ã                   ó–  — d dl Z d dl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 dlmZ ddlmZ g d	¢Z G d
„ dej&                  «      Z G d„ d«      Z G d„ dej,                  «      ZdZ G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ dej>                  «      Z ejC                  e «       ejC                  ejD                  «       ejC                  ejF                  «        G d„ d e«      Z$ejC                  e$«       ejC                  e$«        G d!„ d"e«      Z%ejL                  jC                  e%«       ejN                  jC                  e%«       ejP                  jC                  e%«       ejR                  jC                  e%«       ejT                  jC                  e%«       ejB                   G d#„ d$e«      «       Z+ejB                   G d%„ d&e«      «       Z,ejB                   G d'„ d(e«      «       Z-ejB                   G d)„ d*e«      «       Z.ejB                   G d+„ d,e«      «       Z/ejB                   G d-„ d.ej`                  «      «       Z1ejB                   G d/„ d0ej`                  «      «       Z2ejB                   G d1„ d2ej`                  «      «       Z3ejB                   G d3„ d4ej`                  «      «       Z4ejB                   G d5„ d6ej`                  «      «       Z5ejB                   G d7„ d8ej`                  «      «       Z6ejB                   G d9„ d:ej`                  «      «       Z7y);é    N)ÚformsÚlookups)Úmodels)Ú	DateRangeÚDateTimeTZRangeÚNumericRangeÚRange)ÚCast)ÚPostgresOperatorLookupé   )ÚAttributeSetter)Ú
RangeFieldÚIntegerRangeFieldÚBigIntegerRangeFieldÚDecimalRangeFieldÚDateTimeRangeFieldÚDateRangeFieldÚRangeBoundaryÚRangeOperatorsc                   ó   — e Zd ZdZdd„Zd„ Zy)r   z)A class that represents range boundaries.c                 ó<   — |rdnd| _         |rd| _        y d| _        y )Nú[ú(ú]ú)©ÚlowerÚupper)ÚselfÚinclusive_lowerÚinclusive_uppers      úc/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/django/contrib/postgres/fields/ranges.pyÚ__init__zRangeBoundary.__init__    s   € Ù+‘S°ˆŒ
Ù+�Sˆ�
°ˆ�
ó    c                 ó>   — d| j                   ›| j                  ›d�g fS )Nú'r   )r   ÚcompilerÚ
connections      r"   Úas_sqlzRangeBoundary.as_sql$   s   � ØŸ:š: t§z£zÐ2°BÐ6Ð6r$   N)TF)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r#   r)   © r$   r"   r   r      s   „ Ù3ó5ó7r$   r   c                   ó4   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
Zy)r   ú=z<>z@>z<@z&&z<<z>>z&>z&<z-|-N)r*   r+   r,   ÚEQUALÚ	NOT_EQUALÚCONTAINSÚCONTAINED_BYÚOVERLAPSÚFULLY_LTÚFULLY_GTÚNOT_LTÚNOT_GTÚADJACENT_TOr.   r$   r"   r   r   (   s4   „ à€EØ€IØ€HØ€LØ€HØ€HØ€HØ€FØ€FØ�Kr$   r   c                   ó–   ‡ — e Zd ZdZˆ fd„Zed„ «       Zej                  d„ «       Zeˆ fd„«       Z	d„ Z
d„ Zd„ Zˆ fd	„Zd
„ Zˆ fd„Zˆ xZS )r   Fc                 ó´   •— d|v r#t        d| j                  j                  › d�«      ‚t        | d«      r| j	                  «       | _        t        ‰| �  |i |¤Ž y )NÚdefault_boundsz!Cannot use 'default_bounds' with ú.Ú
base_field)Ú	TypeErrorÚ	__class__r*   Úhasattrr?   Úsuperr#   )r   ÚargsÚkwargsrA   s      €r"   r#   zRangeField.__init__9   s[   ø€ Ø˜vÑ%ÜØ3°D·N±N×4KÑ4KÐ3LÈAÐNóð ô
 �4˜Ô&Ø"Ÿo™oÓ/ˆDŒOÜ‰Ñ˜$Ð) &Ó)r$   c                 ó€   — 	 | j                   d   S # t        $ r# t        d| j                  j                  z  «      ‚w xY w)NÚmodelz$'%s' object has no attribute 'model')Ú__dict__ÚKeyErrorÚAttributeErrorrA   r*   ©r   s    r"   rG   zRangeField.modelD   sD   € ð	Ø—=‘= Ñ)Ð)øÜò 	Ü Ø6¸¿¹×9PÑ9PÑPóð ð	ús   ‚ ‘,=c                 óD   — || j                   d<   || j                  _        y )NrG   )rH   r?   rG   )r   rG   s     r"   rG   zRangeField.modelM   s   € à!&ˆ�‰�gÑØ %ˆ�‰Õr$   c                 óR   •— t        |t        t        f«      xs t        ‰| �  |«      S ©N)Ú
isinstanceÚlistÚtuplerC   Ú_choices_is_value)ÚclsÚvaluerA   s     €r"   rR   zRangeField._choices_is_valueR   s#   ø€ ä˜%¤$¬ Ó/ÒS´5±7Ñ3LÈUÓ3SÐSr$   c                 óB   — dj                  | j                  |«      «      S )Nz%s::{})ÚformatÚdb_type)r   rT   r'   r(   s       r"   Úget_placeholderzRangeField.get_placeholderV   s   € Ø�‰˜tŸ|™|¨JÓ7Ó8Ð8r$   c                 óŒ   — |€y t        |t        «      r|S t        |t        t        f«      r| j	                  |d   |d   «      S |S ©Nr   r   )rO   r	   rP   rQ   Ú
range_type)r   rT   s     r"   Úget_prep_valuezRangeField.get_prep_valueY   sE   € Øˆ=ØÜ˜œuÔ%ØˆLÜ˜¤¤e˜}Ô-Ø—?‘? 5¨¡8¨U°1©XÓ6Ð6Øˆr$   c                 ó.  — t        |t        «      rVt        j                  |«      }dD ](  }||v sŒ| j                  j                  ||   «      ||<   Œ*  | j                  di |¤Ž}|S t        |t        t        f«      r| j                  |d   |d   «      }|S )Nr   r   r   r.   )	rO   ÚstrÚjsonÚloadsr?   Ú	to_pythonr[   rP   rQ   )r   rT   ÚvalsÚends       r"   ra   zRangeField.to_pythonb   s—   € Ü�eœSÔ!ä—:‘:˜eÓ$ˆDØ)ò E�Ø˜$’;Ø $§¡× 9Ñ 9¸$¸s¹)Ó D�D˜’IðEð $�D—O‘OÑ+ dÑ+ˆEð ˆô ˜¤¤e˜}Ô-Ø—O‘O E¨!¡H¨e°A©hÓ7ˆEØˆr$   c                 óZ   •— t         ‰| �  |«       | j                  j                  |«       y rN   )rC   Úset_attributes_from_namer?   )r   ÚnamerA   s     €r"   re   z#RangeField.set_attributes_from_namen   s"   ø€ Ü‰Ñ(¨Ô.Ø�‰×0Ñ0°Õ6r$   c                 óX  — | j                  |«      }|€y |j                  rt        j                  ddi«      S | j                  }d|j
                  i}dD ]@  }t        ||«      }|€d ||<   Œt        |j                  |«      }|j                  |«      ||<   ŒB t        j                  |«      S )NÚemptyTÚboundsr   )
Úvalue_from_objectÚisemptyr_   Údumpsr?   Ú_boundsÚgetattrr   ÚattnameÚvalue_to_string)r   ÚobjrT   r?   Úresultrc   Úvals          r"   rp   zRangeField.value_to_stringr   s«   € Ø×&Ñ& sÓ+ˆØˆ=ØØ�=Š=Ü—:‘:˜w¨˜oÓ.Ð.Ø—_‘_ˆ
Ø˜EŸM™MÐ*ˆØ%ò 	>ˆCÜ˜% Ó%ˆCØˆ{Ø"��s’ä% j×&8Ñ&8¸#Ó>�Ø(×8Ñ8¸Ó=��s’ð	>ô �z‰z˜&Ó!Ð!r$   c                 óZ   •— |j                  d| j                  «       t        ‰| �  di |¤ŽS )NÚ
form_classr.   )Ú
setdefaultÚ
form_fieldrC   Ú	formfield©r   rE   rA   s     €r"   rx   zRangeField.formfieldƒ   s*   ø€ Ø×Ñ˜,¨¯©Ô8Ü‰wÑ Ñ* 6Ñ*Ð*r$   )r*   r+   r,   Úempty_strings_allowedr#   ÚpropertyrG   ÚsetterÚclassmethodrR   rX   r\   ra   re   rp   rx   Ú__classcell__©rA   s   @r"   r   r   6   ss   ø„ Ø!Ðô	*ð ñó ðð ‡\�\ñ&ó ð&ð óTó ðTò9òò
ô7ò"÷"+ð +r$   r   ú[)c                   óF   ‡ — e Zd ZdZedœˆ fd„
Zˆ fd„Zˆ fd„Zˆ fd„Zˆ xZ	S )ÚContinuousRangeFieldzd
    Continuous range field. It allows specifying default bounds for list and
    tuple inputs.
    )r=   c                óP   •— |dvrt        d«      ‚|| _        t        ‰| �  |i |¤Ž y )N)r€   z(]z()z[]z8default_bounds must be one of '[)', '(]', '()', or '[]'.)Ú
ValueErrorr=   rC   r#   )r   r=   rD   rE   rA   s       €r"   r#   zContinuousRangeField.__init__‘   s2   ø€ ØÐ!9Ñ9ÜÐWÓXÐXØ,ˆÔÜ‰Ñ˜$Ð) &Ó)r$   c                 ó”   •— t        |t        t        f«      r#| j                  |d   |d   | j                  «      S t
        ‰| �  |«      S rZ   )rO   rP   rQ   r[   r=   rC   r\   )r   rT   rA   s     €r"   r\   z#ContinuousRangeField.get_prep_value—   sB   ø€ Ü�eœd¤E˜]Ô+Ø—?‘? 5¨¡8¨U°1©X°t×7JÑ7JÓKÐKÜ‰wÑ% eÓ,Ð,r$   c                 óZ   •— |j                  d| j                  «       t        ‰| �  di |¤ŽS )Nr=   r.   )rv   r=   rC   rx   ry   s     €r"   rx   zContinuousRangeField.formfieldœ   s-   ø€ Ø×ÑÐ*¨D×,?Ñ,?Ô@Ü‰wÑ Ñ* 6Ñ*Ð*r$   c                 ó’   •— t         ‰| �  «       \  }}}}| j                  r"| j                  t        k7  r| j                  |d<   ||||fS )Nr=   )rC   Údeconstructr=   ÚCANONICAL_RANGE_BOUNDS)r   rf   ÚpathrD   rE   rA   s        €r"   rˆ   z ContinuousRangeField.deconstruct    sP   ø€ Ü#(¡7Ñ#6Ó#8Ñ ˆˆd�D˜&Ø×Ò 4×#6Ñ#6Ô:PÒ#PØ'+×':Ñ':ˆFÐ#Ñ$Ø�T˜4 Ð'Ð'r$   )
r*   r+   r,   r-   r‰   r#   r\   rx   rˆ   r~   r   s   @r"   r‚   r‚   ‹   s'   ø„ ñð
 .Dö *ô-ô
+÷(ð (r$   r‚   c                   óF   — e Zd Zej                  ZeZej                  Z
d„ Zy)r   c                  ó   — y)NÚ	int4ranger.   ©r   r(   s     r"   rW   zIntegerRangeField.db_type¬   ó   € Ør$   N)r*   r+   r,   r   ÚIntegerFieldr?   r   r[   r   r   rw   rW   r.   r$   r"   r   r   §   s"   „ Ø×$Ñ$€JØ€JØ×(Ñ(€Jór$   r   c                   óF   — e Zd Zej                  ZeZej                  Z
d„ Zy)r   c                  ó   — y)NÚ	int8ranger.   rŽ   s     r"   rW   zBigIntegerRangeField.db_typeµ   r�   r$   N)r*   r+   r,   r   ÚBigIntegerFieldr?   r   r[   r   r   rw   rW   r.   r$   r"   r   r   °   s"   „ Ø×'Ñ'€JØ€JØ×(Ñ(€Jór$   r   c                   óF   — e Zd Zej                  ZeZej                  Z
d„ Zy)r   c                  ó   — y)NÚnumranger.   rŽ   s     r"   rW   zDecimalRangeField.db_type¾   s   € Ør$   N)r*   r+   r,   r   ÚDecimalFieldr?   r   r[   r   r   rw   rW   r.   r$   r"   r   r   ¹   s"   „ Ø×$Ñ$€JØ€JØ×(Ñ(€Jór$   r   c                   óF   — e Zd Zej                  ZeZej                  Z
d„ Zy)r   c                  ó   — y)NÚ	tstzranger.   rŽ   s     r"   rW   zDateTimeRangeField.db_typeÇ   r�   r$   N)r*   r+   r,   r   ÚDateTimeFieldr?   r   r[   r   r   rw   rW   r.   r$   r"   r   r   Â   s"   „ Ø×%Ñ%€JØ €JØ×)Ñ)€Jór$   r   c                   óF   — e Zd Zej                  ZeZej                  Z
d„ Zy)r   c                  ó   — y)NÚ	dateranger.   rŽ   s     r"   rW   zDateRangeField.db_typeÐ   r�   r$   N)r*   r+   r,   r   Ú	DateFieldr?   r   r[   r   r   rw   rW   r.   r$   r"   r   r   Ë   s"   „ Ø×!Ñ!€JØ€JØ×%Ñ%€Jór$   r   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚRangeContainsc                 óÒ   •— t        | j                  t        t        t        f«      s4t        | j                  | j                  j                  j                  «      S t        ‰| �)  «       S rN   )rO   ÚrhsrP   rQ   r	   r
   ÚlhsÚfieldr?   rC   Úget_prep_lookup)r   rA   s    €r"   r§   zRangeContains.get_prep_lookupÕ   sE   ø€ Ü˜$Ÿ(™(¤T¬5´%Ð$8Ô9Ü˜Ÿ™ $§(¡(§.¡.×";Ñ";Ó<Ð<Ü‰wÑ&Ó(Ð(r$   )r*   r+   r,   r§   r~   r   s   @r"   r¢   r¢   Ô   s   ø„ ÷)ð )r$   r¢   c                   óH   ‡ — e Zd ZdZdZej                  Zˆ fd„Zˆ fd„Z	ˆ xZ
S )ÚDateTimeRangeContainsz\
    Lookup for Date/DateTimeRange containment to cast the rhs to the correct
    type.
    Úcontainsc                 óê   •— t        | j                  t        j                  «      r?t	        j
                  | j                  «      }|j                  |j                  «      | _        t        ‰| �%  ||«      S rN   )
rO   r¤   ÚdatetimeÚdater   ÚValueÚresolve_expressionÚqueryrC   Úprocess_rhs)r   r'   r(   rT   rA   s       €r"   r±   z!DateTimeRangeContains.process_rhsé   sO   ø€ ä�d—h‘h¤§¡Ô.Ü—L‘L §¡Ó*ˆEØ×/Ñ/°·±Ó?ˆDŒHÜ‰wÑ" 8¨ZÓ8Ð8r$   c                 óÞ  •— t         ‰| �  ||«      \  }}d}t        | j                  t        j
                  «      r¬| j                  j                  r–t        | j                  j                  | j                  j                  j                  «      sX| j                  j                  j                  j                  «       }dj                  |j                  j                  |«      «      }|›|›�|fS )NÚ z::{})rC   Úas_postgresqlrO   r¤   r   Ú
ExpressionÚ_output_field_or_noner¥   Úoutput_fieldrA   r?   Úget_internal_typerV   Ú
data_typesÚget)r   r'   r(   ÚsqlÚparamsÚcast_sqlÚcast_internal_typerA   s          €r"   r´   z#DateTimeRangeContains.as_postgresqlð   s¸   ø€ Ü‘gÑ+¨H°jÓA‰ˆˆVàˆä�t—x‘x¤×!2Ñ!2Ô3Ø—‘×.Ò.ô Ø—‘×.Ñ.°·±×0EÑ0E×0OÑ0Oôð "&§¡×!6Ñ!6×!AÑ!A×!SÑ!SÓ!UÐØ—}‘} Z×%:Ñ%:×%>Ñ%>Ð?QÓ%RÓSˆHÙ™hÐ'¨Ð/Ð/r$   )r*   r+   r,   r-   Úlookup_namer   r3   Úpostgres_operatorr±   r´   r~   r   s   @r"   r©   r©   à   s*   ø„ ñð
 €KØ&×/Ñ/Ðô9÷0ð 0r$   r©   c                   ó^   ‡ — e Zd ZdZddddddddœZej                  Zˆ fd„Zˆ fd	„Z	d
„ Z
ˆ xZS )ÚRangeContainedByÚcontained_byr�   r“   r—   rŸ   r›   )ÚsmallintÚintegerÚbigintzdouble precisionÚnumericr­   ztimestamp with time zonec                 óÈ   •— t         ‰| �  ||«      \  }}| j                  j                  j	                  |«      j                  d«      d   }| j                  |   }|›d|›�|fS )Nr   r   z::)rC   r±   r¥   r·   Úcast_db_typeÚsplitÚtype_mapping)r   r'   r(   r¤   Ú
rhs_paramsrW   Ú	cast_typerA   s          €r"   r±   zRangeContainedBy.process_rhs  sb   ø€ Ü™'Ñ-¨h¸
ÓC‰ˆˆZà—(‘(×'Ñ'×4Ñ4°ZÓ@×FÑFÀsÓKÈAÑNˆØ×%Ñ% gÑ.ˆ	Ú¡	Ð*¨JÐ6Ð6r$   c                 ó  •— t         ‰| �  ||«      \  }}t        | j                  j                  t
        j                  «      r	d|z  }||fS t        | j                  j                  t
        j                  «      rd|z  }||fS )Nz%s::numericz%s::integer)rC   Úprocess_lhsrO   r¥   r·   r   Ú
FloatFieldÚSmallIntegerField)r   r'   r(   r¥   Ú
lhs_paramsrA   s        €r"   rÏ   zRangeContainedBy.process_lhs  sx   ø€ Ü™'Ñ-¨h¸
ÓC‰ˆˆZÜ�d—h‘h×+Ñ+¬V×->Ñ->Ô?Ø #Ñ%ˆCð �JˆÐô ˜Ÿ™×-Ñ-¬v×/GÑ/GÔHØ #Ñ%ˆCØ�JˆÐr$   c                 óH   — t        «       j                  | j                  «      S rN   )r   r\   r¤   rK   s    r"   r§   z RangeContainedBy.get_prep_lookup"  s   € Ü‹|×*Ñ*¨4¯8©8Ó4Ð4r$   )r*   r+   r,   r¿   rË   r   r4   rÀ   r±   rÏ   r§   r~   r   s   @r"   rÂ   rÂ     sA   ø„ Ø €KàØØØ&ØØØ$/ñ€Lð '×3Ñ3Ðô7ôö5r$   rÂ   c                   ó(   — e Zd ZdZej
                  Zy)ÚFullyLessThanÚfully_ltN)r*   r+   r,   r¿   r   r6   rÀ   r.   r$   r"   rÕ   rÕ   -  ó   „ à€KØ&×/Ñ/Ñr$   rÕ   c                   ó(   — e Zd ZdZej
                  Zy)ÚFullGreaterThanÚfully_gtN)r*   r+   r,   r¿   r   r7   rÀ   r.   r$   r"   rÙ   rÙ   3  r×   r$   rÙ   c                   ó(   — e Zd ZdZej
                  Zy)ÚNotLessThanÚnot_ltN)r*   r+   r,   r¿   r   r8   rÀ   r.   r$   r"   rÜ   rÜ   9  ó   „ à€KØ&×-Ñ-Ñr$   rÜ   c                   ó(   — e Zd ZdZej
                  Zy)ÚNotGreaterThanÚnot_gtN)r*   r+   r,   r¿   r   r9   rÀ   r.   r$   r"   rà   rà   ?  rÞ   r$   rà   c                   ó(   — e Zd ZdZej
                  Zy)ÚAdjacentToLookupÚadjacent_toN)r*   r+   r,   r¿   r   r:   rÀ   r.   r$   r"   rã   rã   E  s   „ à€KØ&×2Ñ2Ñr$   rã   c                   ó$   — e Zd ZdZdZed„ «       Zy)ÚRangeStartsWithÚ
startswithr   c                 óB   — | j                   j                  j                  S rN   ©r¥   r·   r?   rK   s    r"   r·   zRangeStartsWith.output_fieldP  ó   € à�x‰x×$Ñ$×/Ñ/Ð/r$   N©r*   r+   r,   r¿   Úfunctionr{   r·   r.   r$   r"   ræ   ræ   K  s   „ à€KØ€Hàñ0ó ñ0r$   ræ   c                   ó$   — e Zd ZdZdZed„ «       Zy)ÚRangeEndsWithÚendswithr   c                 óB   — | j                   j                  j                  S rN   ré   rK   s    r"   r·   zRangeEndsWith.output_fieldZ  rê   r$   Nrë   r.   r$   r"   rî   rî   U  s   „ à€KØ€Hàñ0ó ñ0r$   rî   c                   ó6   — e Zd ZdZdZ ej                  «       Zy)ÚIsEmptyrk   N©r*   r+   r,   r¿   rì   r   ÚBooleanFieldr·   r.   r$   r"   rò   rò   _  s   „ à€KØ€HØ&�6×&Ñ&Ó(�Lr$   rò   c                   ó6   — e Zd ZdZdZ ej                  «       Zy)ÚLowerInclusiveÚ	lower_incÚ	LOWER_INCNró   r.   r$   r"   rö   rö   f  ó   „ à€KØ€HØ&�6×&Ñ&Ó(�Lr$   rö   c                   ó6   — e Zd ZdZdZ ej                  «       Zy)ÚLowerInfiniteÚ	lower_infÚ	LOWER_INFNró   r.   r$   r"   rû   rû   m  rù   r$   rû   c                   ó6   — e Zd ZdZdZ ej                  «       Zy)ÚUpperInclusiveÚ	upper_incÚ	UPPER_INCNró   r.   r$   r"   rÿ   rÿ   t  rù   r$   rÿ   c                   ó6   — e Zd ZdZdZ ej                  «       Zy)ÚUpperInfiniteÚ	upper_infÚ	UPPER_INFNró   r.   r$   r"   r  r  {  rù   r$   r  )8r¬   r_   Údjango.contrib.postgresr   r   Ú	django.dbr   Ú)django.db.backends.postgresql.psycopg_anyr   r   r   r	   Údjango.db.models.functionsr
   Údjango.db.models.lookupsr   Úutilsr   Ú__all__rµ   r   r   ÚFieldr   r‰   r‚   r   r   r   r   r   ÚDataContainsr¢   Úregister_lookupÚContainedByÚOverlapr©   rÂ   r    rœ   r�   rÐ   r˜   rÕ   rÙ   rÜ   rà   rã   Ú	Transformræ   rî   rò   rö   rû   rÿ   r  r.   r$   r"   ú<module>r     sX  ðÛ Û ç 2Ý ÷ó õ ,Ý ;å "ò	€ô7�F×%Ñ%ô 7÷ñ ôO+�—‘ô O+ðd Ð ô(˜:ô (ô8˜
ô ô˜:ô ôÐ,ô ôÐ-ô ô�Zô ô)�G×(Ñ(ô )ð × Ñ ˜=Ô )Ø 
× Ñ ˜7×.Ñ.Ô /Ø 
× Ñ ˜7Ÿ?™?Ô +ô0Ð2ô 0ðD × Ñ Ð4Ô 5Ø × "Ñ "Ð#8Ô 9ô5Ð-ô 5ð@ × Ñ ×  Ñ  Ð!1Ô 2Ø × Ñ × $Ñ $Ð%5Ô 6Ø × Ñ × #Ñ #Ð$4Ô 5Ø × Ñ × !Ñ !Ð"2Ô 3Ø × Ñ × #Ñ #Ð$4Ô 5ð ×Ñô0Ð*ó 0ó ð0ð
 ×Ñô0Ð,ó 0ó ð0ð
 ×Ñô.Ð(ó .ó ð.ð
 ×Ñô.Ð+ó .ó ð.ð
 ×Ñô3Ð-ó 3ó ð3ð
 ×Ñô0�f×&Ñ&ó 0ó ð0ð ×Ñô0�F×$Ñ$ó 0ó ð0ð ×Ñô)ˆf×Ñó )ó ð)ð ×Ñô)�V×%Ñ%ó )ó ð)ð ×Ñô)�F×$Ñ$ó )ó ð)ð ×Ñô)�V×%Ñ%ó )ó ð)ð ×Ñô)�F×$Ñ$ó )ó ñ)r$   