Ë
    pzi±7  ã                   óî  — 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Z
 ej                  e
«      Z ej                  dej                  «      Z e j                  e«      Z ej$                  d«      Z ej$                  d	«      ZeresS e«       Zej-                  d
«       esej%                  dd«      dd Zes"ej%                  dd«      j/                  dd«      Z	  ed„ ej3                  d«      D «       «      Z	  ed„ ej3                  d«      D «       «      Z G d„ d«      Zdd„Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d d„Z%y# e$ r ej9                  d«       Y ŒYw xY w# e$ r ej9                  d«       Y ŒVw xY w)!é    N)Úenviron©Úexists)ÚConfigParser)ÚGeneratorTypez(-)?(\d\.\d+)(?:(-)(\d\.\d+)?)?z”
    (?P<major>\d+)\.?
    (?P<minor>\d+)?\.?
    (?P<micro>\d+)?[.\s]?
    (?P<releaselevel>alpha|beta|candidate|final)?[.\s]?
    (?P<serial>\d+)?ÚDEBPYTHON3_SUPPORTEDÚDEBPYTHON3_DEFAULTz"/usr/share/python3/debian_defaultsÚDEFAULTzdefault-versioné   zsupported-versionsÚpythonÚ c              #   ó2   K  — | ]  }t        |«      –— Œ y ­w©N©Úint©Ú.0Úis     ú'/usr/share/python3/debpython/version.pyú	<genexpr>r   5   s   è ø€ Ò8˜q”C˜—FÑ8ùó   ‚ú.zcannot read debian_defaultsc              #   óz   K  — | ]3  }t        d „ |j                  «       j                  d«      D «       «      –— Œ5 y­w)c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   r   )r   Újs     r   r   z<genexpr>.<genexpr>9   s   è ø€ ÒA qœC ŸFÑAùr   r   N)ÚtupleÚstripÚsplitr   s     r   r   r   9   s2   è ø€ ò 6Øô ÑA¨A¯G©G«I¯O©O¸CÓ,@ÔA×Añ 6ùs   ‚9;ú,c                   óh   — e Zd Z	 	 dd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ Zd„ Zdd„Zy)ÚVersionNc           	      ó  — t        |t        t        f«      rdj                  d„ |D «       «      }t        |t        «      rdD ]  }t        | |t        ||«      «       Œ y t        «       }|d= |d= |rMt        j                  |«      }	|	r|	j                  «       j                  «       ng D ]  \  }}|€Œ	||   �Œ|||<   Œ |j                  «       D ]$  \  }}|dk7  r|�t        |«      }t        | ||«       Œ& | j                  st        d«      ‚y )Nr   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   ©Ústrr   s     r   r   z#Version.__init__.<locals>.<genexpr>C   s   è ø€ Ò3¨œS ŸVÑ3ùr   ©ÚmajorÚminorÚmicroÚreleaselevelÚserialÚselfÚvaluer*   zmajor component is required)Ú
isinstancer   ÚlistÚjoinr!   ÚsetattrÚgetattrÚlocalsÚ
VERSION_REÚmatchÚ	groupdictÚitemsr   r'   Ú
ValueError)
r,   r-   r'   r(   r)   r*   r+   ÚnameÚcompr5   s
             r   Ú__init__zVersion.__init__@   s  € ä�eœe¤T˜]Ô+Ø—H‘HÑ3¨UÔ3Ó3ˆEÜ�eœWÔ%ØMò :�Ü˜˜d¤G¨E°4Ó$8Õ9ð:àÜ‹xˆØ�ˆLØ�ˆMÙÜ×$Ñ$ UÓ+ˆEÙ<A˜uŸ™Ó0×6Ñ6Ô8Àrò '‘��eØÑ$¨¨d©Ñ);Ø!&�D˜’Jð'ð  Ÿ:™:›<ò 	'‰KˆD�%Ø�~Ò%¨%Ð*;Ü˜E›
�Ü�D˜$ Õ&ð	'ð �zŠzÜÐ:Ó;Ð;ð ó    c                 ó„   — t        | j                  «      }| j                  �|dj                  | j                  «      z  }|S )z½Return major.minor or major string.

        >>> str(Version(major=3, minor=2, micro=1, releaselevel='final', serial=4))
        '3.2'
        >>> str(Version(major=2))
        '2'
        ú.{})r%   r'   r(   Úformat)r,   Úresults     r   Ú__str__zVersion.__str__W   s7   € ô �T—Z‘Z“ˆØ�:‰:Ð!Ø�e—l‘l 4§:¡:Ó.Ñ.ˆFØˆr<   c                 ó*   — t        t        | «      «      S r   )ÚhashÚrepr)r,   s    r   Ú__hash__zVersion.__hash__d   s   € Ü”D˜“JÓÐr<   c                 óŒ   — dj                  | «      }dD ]*  }t        | |«      }|s |dz   S |dj                  |«      z  }Œ, |dz   S )z×Return full version string.

        >>> repr(Version(major=3, minor=2, micro=1, releaselevel='final', serial=4))
        "Version('3.2.1.final.4')"
        >>> repr(Version(major=2))
        "Version('2')"
        zVersion('{})r)   r*   r+   r>   z'))r?   r2   )r,   r@   r9   r-   s       r   Ú__repr__zVersion.__repr__g   s`   € ð ×%Ñ% dÓ+ˆØ7ò 	*ˆDÜ˜D $Ó'ˆEÙØà˜‰}Ðð �e—l‘l 5Ó)Ñ)‰Fð		*ð
 ˜‰}Ðr<   c                 ó°   — t        | «      }| j                  € |xj                  t        |«      z  c_        |S |xj                  t        |«      z  c_        |S )zˆReturn next version.

        >>> Version('3.1') + 1
        Version('3.2')
        >>> Version('2') + '1'
        Version('3')
        )r!   r(   r'   r   )r,   Úotherr@   s      r   Ú__add__zVersion.__add__w   sI   € ô ˜“ˆØ�:‰:ÐØ�LŠLœC ›JÑ&�Lð ˆð �LŠLœC ›JÑ&�LØˆr<   c                 óþ   — t        | «      }| j                  €+|xj                  t        |«      z  c_        |j                  }n*|xj                  t        |«      z  c_        |j                  }|dk  rt	        d«      ‚|S )zŒReturn previous version.

        >>> Version('3.1') - 1
        Version('3.0')
        >>> Version('3') - '1'
        Version('2')
        r   zcannot decrease version further)r!   r(   r'   r   r8   )r,   rI   r@   Únews       r   Ú__sub__zVersion.__sub__†   se   € ô ˜“ˆØ�:‰:ÐØ�LŠLœC ›JÑ&�LØ—,‘,‰Cà�LŠLœC ›JÑ&�LØ—,‘,ˆCØ�Š7ÜÐ>Ó?Ð?Øˆr<   c                 ó*   — | j                  |«      dk(  S ©Nr   ©Ú_Version__cmp©r,   rI   s     r   Ú__eq__zVersion.__eq__™   ó   € Ø�z‰z˜%Ó  AÑ%Ð%r<   c                 ó*   — | j                  |«      dk  S rO   rP   rR   s     r   Ú__lt__zVersion.__lt__œ   ó   € Ø�z‰z˜%Ó  1Ñ$Ð$r<   c                 ó*   — | j                  |«      dk  S rO   rP   rR   s     r   Ú__le__zVersion.__le__Ÿ   rT   r<   c                 ó*   — | j                  |«      dkD  S rO   rP   rR   s     r   Ú__gt__zVersion.__gt__¢   rW   r<   c                 ó*   — | j                  |«      dk\  S rO   rP   rR   s     r   Ú__ge__zVersion.__ge__¥   rT   r<   c                 óÀ   — t        |t        «      st        |«      }| j                  �|j                  €| j                  |d¬«      dk  S | j                  |d¬«      dk  S )ak  Compare major.minor or major only (if minor is not set).

        >>> Version('2.6') << Version('2.7')
        True
        >>> Version('2.6') << Version('2.6.6')
        False
        >>> Version('3') << Version('2')
        False
        >>> Version('3.1') << Version('2')
        False
        >>> Version('2') << Version('3.2.1.alpha.3')
        True
        r(   ©Úignorer   r)   ©r.   r!   r(   rQ   rR   s     r   Ú
__lshift__zVersion.__lshift__¨   óZ   € ô ˜%¤Ô)Ü˜E“NˆEØ�:‰:Ð §¡Ð!4Ø—:‘:˜e¨G�:Ó4°qÑ8Ð8à—:‘:˜e¨G�:Ó4°qÑ8Ð8r<   c                 óÀ   — t        |t        «      st        |«      }| j                  �|j                  €| j                  |d¬«      dkD  S | j                  |d¬«      dkD  S )ao  Compare major.minor or major only (if minor is not set).

        >>> Version('2.6') >> Version('2.7')
        False
        >>> Version('2.6.7') >> Version('2.6.6')
        False
        >>> Version('3') >> Version('2')
        True
        >>> Version('3.1') >> Version('2')
        True
        >>> Version('2.1') >> Version('3.2.1.alpha.3')
        False
        r(   r_   r   r)   ra   rR   s     r   Ú
__rshift__zVersion.__rshift__½   rc   r<   c                 ó  — t        |t        «      st        |«      }dD ]k  }||k(  r yt        | |«      xs d}t        ||«      xs d}|dk(  r+dddddœ}|j                  |d«      }|j                  |d«      }||k(  rŒ`||kD  ||k  z
  c S  y)Nr&   r   r*   éýÿÿÿéþÿÿÿéÿÿÿÿ)ÚalphaÚbetaÚ	candidateÚfinal)r.   r!   r2   Úget)r,   rI   r`   r9   Úvalue1Úvalue2Úrmaps          r   Ú__cmpzVersion.__cmpÒ   s°   € Ü˜%¤Ô)Ü˜E“NˆEØIò 	9ˆDØ�vŠ~Øð ô ˜T 4Ó(Ò-¨AˆFÜ˜U DÓ)Ò.¨QˆFØ�~Ò%Ø!#¨R¸bÈ1ÑM�ØŸ™ &¨!Ó,�ØŸ™ &¨!Ó,�Ø˜ÒØØ˜V‘O¨°©Ñ8Ò8ð	9ð r<   )NNNNNNr   )Ú__name__Ú
__module__Ú__qualname__r;   rA   rE   rG   rJ   rM   rS   rV   rY   r[   r]   rb   re   rQ   © r<   r   r!   r!   ?   sN   „ ØAEØ+/ó<ò.ò òò òò&&ò%ò&ò%ò&ò9ò*9ô*r<   r!   c                 ó†  ‡‡— t        | t        «      rt        | «      } | rt        | «      ddgk(  rt	        t
        «      }nU| d   €dn| d   Š| d   €dn| d   Š‰‰k(  rt	        ‰t
        v r‰fn	t        «       «      }nt	        ˆˆfd„t
        D «       «      }|rt	        d„ |D «       «      }|S |du rt	        d	„ |D «       «      }|S )
aJ  Return a set of requested and supported Python versions.

    :param available: if set to `True`, return installed versions only,
        if set to `False`, return requested versions that are not installed.
        By default returns all requested versions.
    :type available: bool

    >>> sorted(get_requested_versions([(3, 0), None]))
    [(3, 2), (3, 3)]
    >>> sorted(get_requested_versions('')) == sorted(SUPPORTED)
    True
    >>> sorted(get_requested_versions([None, None])) == sorted(SUPPORTED)
    True
    >>> get_requested_versions([(5, 0), None]) == set()
    True
    Nr   )r   r   é   )éc   ry   c              3   ó@   •K  — | ]  }‰|cxk  r‰k  sŒn n|–— Œ y ­wr   rv   )r   ÚvÚmaxvÚminvs     €€r   r   z)get_requested_versions.<locals>.<genexpr>   s   øè ø€ ÒD °4¸1Ô3C¸tÖ3Cœ1ÑDùs   ƒ”
c              3   ó<   K  — | ]  }t        d |z  «      r|–— Œ y­w©z/usr/bin/python%d.%dNr   ©r   r{   s     r   r   z)get_requested_versions.<locals>.<genexpr>  s%   è ø€ ò >˜QÜ Ð!7¸!Ñ!;Ô<ô ñ >ùó   ‚Fc              3   ó<   K  — | ]  }t        d |z  «      s|–— Œ y­wr   r   r€   s     r   r   z)get_requested_versions.<locals>.<genexpr>  s'   è ø€ ò B˜QÜ$Ð%;¸aÑ%?Ô@ô ñ Bùr�   )r.   r%   Úparse_vranger/   ÚsetÚ	SUPPORTEDr   )ÚvrangeÚ	availableÚversionsr|   r}   s      @@r   Úget_requested_versionsr‰   ä   sÔ   ù€ ô" �&œ#ÔÜ˜fÓ%ˆá”T˜&“\ d¨D \Ò1Ü”y“>‰à ™Ð*‰v°°q±	ˆØ! !™9Ð,‰x°&¸±)ˆØ�4Š<Ü d¬iÑ&7˜D™7¼U»WÓE‰HäÔD¤iÔDÓDˆHáÜñ > (ô >ó >ˆð €Oð	 
�eÑ	Üñ B (ô Bó Bˆð €Or<   c                 óü  — | dv ryt         j                  | «      }|st        d| z  «      ‚|j                  «       }t	        |«      j                  d«      dk(  r(t        d„ |d   j                  d«      D «       «      }||fS dx}}|d	   r|d   }n
|d   }|d   }|r!t        d
„ |j                  d«      D «       «      nd}|r!t        d„ |j                  d«      D «       «      nd}|r|r||kD  rt        d| z  «      ‚||fS )aƒ  Return minimum and maximum Python version from given range.

    >>> parse_vrange('3.0-')
    ((3, 0), None)
    >>> parse_vrange('3.1-3.3')
    ((3, 1), (3, 3))
    >>> parse_vrange('3.2-4.0')
    ((3, 2), (4, 0))
    >>> parse_vrange('-3.7')
    (None, (3, 7))
    >>> parse_vrange('3.2')
    ((3, 2), (3, 2))
    >>> parse_vrange('') == parse_vrange('-') == (None, None)
    True
    )r   ú-©NNzversion range is invalid: %sNé   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   r   r   s     r   r   zparse_vrange.<locals>.<genexpr>%  s   è ø€ Ò: ”S˜—VÑ:ùr   rx   r   r   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   r   r   s     r   r   zparse_vrange.<locals>.<genexpr>/  ó   è ø€ Ò1˜A”�Q—Ñ1ùr   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   r   r   s     r   r   zparse_vrange.<locals>.<genexpr>0  r�   r   )ÚRANGE_REr5   r8   Úgroupsr/   Úcountr   r   )r-   r5   r“   r}   r|   s        r   rƒ   rƒ     s  € ð  �	ÑØä�N‰N˜5Ó!€EÙÜÐ7¸%Ñ?Ó@Ð@Ø�\‰\‹^€FäˆFƒ|×Ñ˜$Ó 1Ò$ÜÑ: V¨A¡Y§_¡_°SÓ%9Ô:Ó:ˆØ�TˆzÐàÐ€Dˆ4Øˆa‚yØ�a‰y‰à�a‰yˆØ�a‰yˆá59Œ5Ñ1 §¡¨C£Ô1Ô1¸t€DÙ59Œ5Ñ1 §¡¨C£Ô1Ô1¸t€Dá‘˜ šÜÐ7¸%Ñ?Ó@Ð@à�ˆ:Ðr<   c                 ó`  — dx}}t        «       }| j                  d«      D ]¨  }|j                  «       }t        j                  d|«      }|rd|j                  d«      z  }Œ@t        j                  d|«      }|rd|j                  d«      z  }Œmt        j                  d|«      }|sŒ†|j                  d|j                  d«      z  «       Œª t        |«      dk(  r&|j                  «       }t        |«      t        |«      fS |s|rt        |«      d   }|rt        |«      nd|rt        |«      fS dfS )	a  Parse X-Python3-Version.

    >>> parse_pycentral_vrange('>= 3.1')
    ((3, 1), None)
    >>> parse_pycentral_vrange('<< 4.0')
    (None, (4, 0))
    >>> parse_pycentral_vrange('3.1')
    ((3, 1), (3, 1))
    >>> parse_pycentral_vrange('3.1, 3.2')
    ((3, 1), None)
    Nr   z>=\s*([\d\.]+)z%.3srx   z<<\s*([\d\.]+)z	^[\d\.]+$r   )r„   r   r   Úrer5   ÚgroupÚaddÚlenÚpopÚgetverÚsorted)r-   r}   r|   Ú	hardcodedÚitemr5   Úvers          r   Úparse_pycentral_vranger    8  s  € ð Ð€Dˆ4Ü“€Ià—‘˜CÓ ò 3ˆØ�z‰z‹|ˆä—‘Ð*¨DÓ1ˆÙØ˜EŸK™K¨›NÑ*ˆDØÜ—‘Ð*¨DÓ1ˆÙØ˜EŸK™K¨›NÑ*ˆDØÜ—‘˜ tÓ,ˆÚØ�M‰M˜& 5§;¡;¨q£>Ñ1Õ2ð3ô ˆ9ƒ~˜ÒØ�m‰m‹oˆÜ�c‹{œF 3›KÐ'Ð'á‘Iä�iÓ  Ñ#ˆáŒ6�$Œ< T¹4¬6°$«<ÐIÐIÀTÐIÐIr<   c                 ój  — | d   | d   cxu r€y | d   | d   k(  rdj                  d„ | d   D «       «      S | d   €ddj                  d„ | d   D «       «      z   S | d   €dj                  d„ | d   D «       «      dz   S dj                  d„ | d   D «       «      ›ddj                  d	„ | d   D «       «      ›�S )
aM  Return version range string from given range.

    >>> vrange_str(((3, 4), None))
    '3.4-'
    >>> vrange_str(((3, 4), (3, 6)))
    '3.4-3.6'
    >>> vrange_str(((3, 4), (4, 0)))
    '3.4-4.0'
    >>> vrange_str((None, (3, 7)))
    '-3.7'
    >>> vrange_str(((3, 5), (3, 5)))
    '3.5'
    >>> vrange_str((None, None))
    '-'
    r   rx   r‹   r   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   r$   r   s     r   r   zvrange_str.<locals>.<genexpr>v  ó   è ø€ Ò2 1œ˜AŸÑ2ùr   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   r$   r   s     r   r   zvrange_str.<locals>.<genexpr>x  s   è ø€ Ò8¨œc !ŸfÑ8ùr   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   r$   r   s     r   r   zvrange_str.<locals>.<genexpr>z  r£   r   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   r$   r   s     r   r   zvrange_str.<locals>.<genexpr>|  ó   è ø€ Ò"=¨a¤3 q§6Ñ"=ùr   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   r$   r   s     r   r   zvrange_str.<locals>.<genexpr>}  r§   r   )r0   )r†   s    r   Ú
vrange_strr©   c  sË   € ð  ˆa�y�F˜1‘IÔ%Øð &àˆa�y�F˜1‘IÒØ�x‰xÑ2¨¨q©	Ô2Ó2Ð2Ø	�‰Ð	Ø�S—X‘XÑ8¨f°Q©iÔ8Ó8Ñ8Ð8Ø	�‰Ð	Ø�x‰xÑ2¨¨q©	Ô2Ó2°SÑ8Ð8àŸ(™(Ñ"=°6¸!±9Ô"=Õ=ØŸ(™(Ñ"=°6¸!±9Ô"=Ô=ð?ð 	?r<   c                 óP  — t        | t        «      r| S t        | t        t        f«      s+t        | d   t        «      rdj                  d„ | D «       «      S g }| D ]K  }t        |t        «      r|j                  |«       Œ%|j                  dj                  d„ |D «       «      «       ŒM |S )z¨
    >>> vrepr(([3, 4], [3, 2]))
    ['3.4', '3.2']
    >>> vrepr(('2.6', '3.1'))
    ['2.6', '3.1']
    >>> vrepr('3.2')
    '3.2'
    >>> vrepr((3, 2))
    '3.2'
    r   r   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   r$   r   s     r   r   zvrepr.<locals>.<genexpr>Ž  s   è ø€ Ò. 1œ˜AŸÑ.ùr   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   r$   r   s     r   r   zvrepr.<locals>.<genexpr>•  s   è ø€ Ò";¨a¤3 q§6Ñ";ùr   )r.   r%   r   r„   r   r0   Úappend)r-   r@   Úversions      r   Úvreprr¯   €  s�   € ô �%œÔØˆÜ˜¤¬sÐ3Ô4¼ÀEÈ!ÁHÌcÔ9RØ�x‰xÑ.¨Ô.Ó.Ð.à€FØò =ˆÜ�gœsÔ#Ø�M‰M˜'Õ"à�M‰M˜#Ÿ(™(Ñ";°7Ô";Ó;Õ<ð	=ð
 €Mr<   c                 ó|   — | syt        | t        «      r| dd S t        d„ | j                  dd«      D «       «      dd S )zºReturn pair of integers that represent version.

    >>> getver('3.2')
    (3, 2)
    >>> getver('3.1.4')
    (3, 1)
    >>> getver((3, 3, 1))
    (3, 3)
    >>> getver(None)
    ''
    r   Né   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr   r   r   s     r   r   zgetver.<locals>.<genexpr>©  s   è ø€ Ò5˜A”�Q—Ñ5ùr   r   )r.   r   r   )r-   s    r   r›   r›   ™  sC   € ñ ØÜ�%œÔØ�R�aˆyÐÜÑ5 §¡¨S°!Ó!4Ô5Ó5°b°qÐ9Ð9r<   c                 ó  — g }g }t        | «      D ]I  }t        |t        «      rt        |«      }|t        k  r|j                  |«       Œ9|j                  |«       ŒK |j                  t        |«      «       |r|rt        |«      S |S )a£  Return sorted list of versions starting with default Python
    version (if available) then list of suppored versions greater than default
    one followed by reversed list of older versions.

    List of versions sorted this way can be used in Depends field.

    :param vrepr: return string represenatations of versions, by default the
        same format is used as in :param:`versions`

    >>> debsorted([(2, 6), (3, 1), (3, 2), (3, 3), (2, 7)])[0] == DEFAULT
    True
    >>> debsorted(('2.4', '3.2', '2.6', '2.7'))[-1]
    (2, 4)
    >>> debsorted(set([(2, 1), (2, 2)]))
    [(2, 2), (2, 1)]
    >>> debsorted([(2, 1), (2, 2)], return_str=True)
    ['2.2', '2.1']
    )	rœ   r.   r%   r›   r
   r­   ÚextendÚreversedr¯   )rˆ   Ú
return_strr@   Úold_versionsr®   s        r   Ú	debsortedr¸   ¬  s~   € ð& €FØ€LÜ˜(Ó#ò #ˆÜ�gœsÔ#Ü˜W“oˆGØ”WÒØ×Ñ Õ(à�M‰M˜'Õ"ð#ð ‡M�M”(˜<Ó(Ô)Ù‘fÜ�V‹}ÐØ€Mr<   rŒ   r   )&Úloggingr–   Úosr   Úos.pathr   Úconfigparserr   Útypesr   ÚRANGE_PATTERNÚcompiler’   ÚVERBOSEr4   Ú	getLoggerrs   Úlogrn   Ú
_supportedÚ_defaultÚ_configÚreadÚreplacer   r   r
   Ú	ExceptionÚ	exceptionr…   r!   r‰   rƒ   r    r©   r¯   r›   r¸   rv   r<   r   ú<module>rÊ      s�  ðó, Û 	Ý Ý Ý %Ý à2€Øˆ2�:‰:�mÓ$€ØˆR�Z‰Zð ð
 Ÿ™ó%€
ð €g×Ñ˜Ó!€ð ˆW�[‰[Ð/Ó0€
Øˆ7�;‰;Ð+Ó,€Ù™Ù‹n€GØ‡L�LÐ5Ô6ÙØ—;‘;˜yÐ*;Ó<¸Q¸RÐ@ˆÙØ—[‘[ Ð,@ÓAß‰W�X˜rÓ"ð 	ð1ÙÑ8 H§N¡N°3Ó$7Ô8Ó8€Gð1Ùñ 6Ø)×/Ñ/°Ó4ô6ó 6€I÷bñ bóJ%òP)òX(JòV?ò:ò2:ô&øðm ò 1Ø‡M�MÐ/Ö0ð1ûð
 ò 1Ø‡M�MÐ/Ö0ð1ús$   Ã D? Ã?E Ä?EÅEÅE4Å3E4