§
    ­xkd]=  ã            
       ó’  — d dl mZ d dlZd dlZd dlZd dlZd dlmZmZ d dl	Z	d dl
mZmZmZmZmZmZ d dlZd dlmZ dededee         f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         fd„Z G d„ de¦  «        Zedk    �r edd¦  «        Z ej        ej         ¦  «         ej!        D ]öZ" ej        de"j#        z  ¦  «          ej        de"j$        z  ¦  «          ej        de"j%        z  ¦  «          ej        de"j&        z  ¦  «         e"j'        i k    r3 ej        d e(e"j'         )                    ¦   «         ¦  «        z  ¦  «         e"j*        D ]*Z+ ej        de+j#        ›de+j$        ›de+j,        ›�¦  «         Œ+e"j-        D ]Z. ej        d e.j$        z  ¦  «         ŒŒõdS dS )!é    )Úprint_functionN)ÚPopenÚPIPE)ÚcastÚDictÚIteratorÚListÚOptionalÚTuple)ÚgettextÚtemplateÚcsv_pathÚreturnc           	   #   óš  ‡	K  — t          ¦   «         }t          j        | ¦  «        5 }|D ]†}d|v r.|                     |d                              d¦  «        ¦  «         d|v r'd|d         v r nQ|                     |d         ¦  «         t          |¦  «                             ¦   «         E d{V —† Œ‡	 ddd¦  «         dS |D ]!}d|v r|                     |d         ¦  «         Œ"	 ddd¦  «         n# 1 swxY w Y   t          |¦  «        5 }t          t          t          j        |¦  «        ¦  «        ¦  «        }ddd¦  «         n# 1 swxY w Y   |D ]û}|d         |v rŒdV — |d                              d	d¦  «        |d<   t          j        | ¦  «        5 }|D ]›}d|vs
d|d         vrŒd
|v r=|d         Š	t          ˆ	fd„|d
                              d¦  «        D ¦   «         ¦  «        rŒR t          |¦  «        j        di |¤Ž                     ¦   «         D ]}|                     d
¦  «        rŒ|V — ŒŒœ	 ddd¦  «         n# 1 swxY w Y   Œüt          j        | ¦  «        5 }|D ]}d|v rd|d         v r nŒ|D ]8}d|v rd|d         v rŒt          |¦  «                             ¦   «         E d{V —† Œ9	 ddd¦  «         dS # 1 swxY w Y   dS )a~  Expand the given template.

    A template file consists of a header, followed by paragraphs
    of templated suites, followed by a footer. A templated suite
    is any paragraph where the Suite field contains {.

    This function expands all templated suites using the information
    found in the CSV file supplied by distro-info-data.

    It yields lines of template info.
    zX-Exclude-Suitesz, ÚSuiteú{NÚseriesÚ Úversionz LTSz	X-Versionc              3   óð   •K  — | ]p}|                      d ¦  «        o t          j        |dd…         ‰¦  «        dk     p5|                      d¦  «        o t          j        |dd…         ‰¦  «        dk    V — ŒqdS )Úleé   Nr   Úge)Ú
startswithÚapt_pkgÚversion_compare)Ú.0ÚfieldÚvers     €ú5/usr/lib/python3/dist-packages/aptsources/distinfo.pyú	<genexpr>z#_expand_template.<locals>.<genexpr>b   s¥   øè è € ð 
ð 
ð "ð "×,Ò,¨TÑ2Ô2ð LÝ 'Ô 7¸¸a¸b¸b¼	À3Ñ GÔ GÈ!Ò Kðð
 "×,Ò,¨TÑ2Ô2ð LÝ 'Ô 7¸¸a¸b¸b¼	À3Ñ GÔ GÈ!Ò Kð
ð 
ð 
ð 
ð 
ð 
ó    © )Úsetr   ÚTagFileÚupdateÚsplitÚaddÚstrÚ
splitlinesÚopenÚreversedÚlistÚcsvÚ
DictReaderÚreplaceÚanyÚformatr   )
r   r   Úknown_suitesÚtmplÚsectionÚ
csv_objectÚreleasesÚrelÚliner   s
            @r    Ú_expand_templater:   .   s¥  øè è € õ ‘5”5€Lõ 
Œ˜Ñ	"Ô	"ð 3 dØð 	ð 	ˆGØ! WÐ,Ð,Ø×#Ò# GÐ,>Ô$?×$EÒ$EÀdÑ$KÔ$KÑLÔLÐLØ˜'Ð!Ð!Ø˜' 'Ô*Ð*Ð*Ø�Eà× Ò  ¨Ô!1Ñ2Ô2Ð2å˜7‘|”|×.Ò.Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ð ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð ð 	3ð 	3ˆGØ˜'Ð!Ð!Ø× Ò  ¨Ô!1Ñ2Ô2Ð2øð	3ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3õ& 
ˆh‰Œð >˜:Ý�D¥¤°
Ñ!;Ô!;Ñ<Ô<Ñ=Ô=ˆð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >ð ð ð ˆØˆxŒ=˜LÐ(Ð(ØØˆˆˆØ˜Yœ×/Ò/°¸Ñ;Ô;ˆˆI‰ÝŒ_˜XÑ&Ô&ð 	¨$Øð ð �à 'Ð)Ð)¨S¸ÀÔ8HÐ-HÐ-HØØ 'Ð)Ð)à˜iœ.�CÝð 
ð 
ð 
ð 
ð &-¨[Ô%9×%?Ò%?ÀÑ%EÔ%Eð
ñ 
ô 
ñ 
ô 
ð !ð !à/�C ™LœLÔ/Ð6Ð6°#Ð6Ð6×AÒAÑCÔCð ð �DØ—’ {Ñ3Ô3ð !Ø Ø�J�J�J�Jðð)ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	øõ6 
Œ˜Ñ	"Ô	"ð 1 dàð 	ð 	ˆGØ˜'Ð!Ð! c¨W°WÔ-=Ð&=Ð&=Ø�øàð 	1ð 	1ˆGð ˜'Ð!Ð! c¨W°WÔ-=Ð&=Ð&=Øå˜7‘|”|×.Ò.Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ð	1ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð 1ð 1sP   ¦BC/Â>$C/Ã/C3Ã6C3Ä	/EÅEÅEÆBIÉI	ÉI	É!AK Ë KËKc                   ó6   — e Zd Zdd„Zdedefd„Zdedefd„ZdS )	ÚTemplater   Nc                 óÊ   — d | _         d| _        g | _        d | _        d | _        d | _        d | _        g | _        g | _        d | _	        i | _
        d | _        d| _        d| _        d S ©NFT)ÚnameÚchildÚparentsÚ
match_nameÚdescriptionÚbase_uriÚtypeÚ
componentsÚchildrenÚ	match_uriÚ
mirror_setÚdistributionÚ	availableÚofficial©Úselfs    r    Ú__init__zTemplate.__init__…   sj   € Ø#'ˆŒ	ØˆŒ
Ø')ˆŒØ)-ˆŒØ*.ˆÔØ'+ˆŒØ#'ˆŒ	Ø+-ˆŒØ(*ˆŒØ(,ˆŒØ-/ˆŒØ+/ˆÔØˆŒØˆŒˆˆr"   Úcompc                 ó(   — |d„ | j         D ¦   «         v S )z6Check if the distribution provides the given componentc              3   ó$   K  — | ]}|j         V — Œd S ©N)r?   )r   Úcs     r    r!   z)Template.has_component.<locals>.<genexpr>—   s$   è è € Ð8Ð8 1˜œÐ8Ð8Ð8Ð8Ð8Ð8r"   )rF   )rN   rP   s     r    Úhas_componentzTemplate.has_component•   s   € àÐ8Ð8¨¬Ð8Ñ8Ô8Ð8Ð8r"   Úurlc                 ó€   — t          |¦  «        \  }}}|| j        v r!| j        |                              ||¦  «        S dS )z6Check if a given url of a repository is a valid mirrorF)Ú	split_urlrI   Úhas_repository)rN   rV   ÚprotoÚhostnameÚdirs        r    Ú	is_mirrorzTemplate.is_mirror™   sC   € å(¨™~œ~Ñˆˆx˜Ø�t”Ð&Ð&Ø”? 8Ô,×;Ò;¸EÀ3ÑGÔGÐGà�5r"   )r   N)Ú__name__Ú
__module__Ú__qualname__rO   r)   ÚboolrU   r]   r#   r"   r    r<   r<   „   sl   € € € € € ðð ð ð ð 9 #ð 9¨$ð 9ð 9ð 9ð 9ð˜Sð  Tð ð ð ð ð ð r"   r<   c            
       óÊ   — e Zd Z	 	 	 ddedee         dee         dee         fd„Zdee         fd„Zd	eddfd
„Zdee         fd„Zdeddfd„Z	deddfd„Z
dee         fd„ZdS )Ú	ComponentNr?   ÚdescÚ	long_descÚparent_componentc                 ó>   — || _         || _        || _        || _        d S rS   )r?   rC   Údescription_longrf   )rN   r?   rd   re   rf   s        r    rO   zComponent.__init__£   s)   € ð ˆŒ	ØˆÔØ )ˆÔØ 0ˆÔÐÐr"   r   c                 ó   — | j         S rS   ©rf   rM   s    r    Úget_parent_componentzComponent.get_parent_component¯   ó   € ØÔ$Ð$r"   Úparentc                 ó   — || _         d S rS   rj   )rN   rm   s     r    Úset_parent_componentzComponent.set_parent_component²   s   € Ø &ˆÔÐÐr"   c                 ó>   — | j         �| j         S | j        �| j        S d S rS   )rh   rC   rM   s    r    Úget_descriptionzComponent.get_descriptionµ   s+   € ØÔ Ð,ØÔ(Ð(ØÔÐ)ØÔ#Ð#à�4r"   c                 ó   — || _         d S rS   )rC   ©rN   rd   s     r    Úset_descriptionzComponent.set_description½   s   € ØˆÔÐÐr"   c                 ó   — || _         d S rS   ©rh   rs   s     r    Úset_description_longzComponent.set_description_longÀ   s   € Ø $ˆÔÐÐr"   c                 ó   — | j         S rS   rv   rM   s    r    Úget_description_longzComponent.get_description_longÃ   rl   r"   )NNN)r^   r_   r`   r)   r
   rO   rk   ro   rq   rt   rw   ry   r#   r"   r    rc   rc   ¢   s-  € € € € € ð #Ø#'Ø*.ð
1ð 
1àð
1ð �sŒmð
1ð ˜C”=ð	
1ð
 # 3œ-ð
1ð 
1ð 
1ð 
1ð% h¨s¤mð %ð %ð %ð %ð'¨3ð '°4ð 'ð 'ð 'ð 'ð ¨#¤ð ð ð ð ð  Cð  ¨Dð  ð  ð  ð  ð%¨ð %°ð %ð %ð %ð %ð% h¨s¤mð %ð %ð %ð %ð %ð %r"   rc   c            
       ó¾   — e Zd ZdZ	 ddedededee         fd„Zdededdfd	„Zdeded
         fd„Z	dedede
fd„Zdee         fd„Zdee         fd„Zdeddfd„ZdS )ÚMirrorz&Storage for mirror related informationNrZ   r[   r\   Úlocationc                 ó\   — || _         g | _        |                      ||¦  «         || _        d S rS   )r[   ÚrepositoriesÚadd_repositoryr|   )rN   rZ   r[   r\   r|   s        r    rO   zMirror.__init__Ê   s4   € ð !ˆŒØ.0ˆÔØ×Ò˜E 3Ñ'Ô'Ð'Ø ˆŒˆˆr"   r   c                 óV   — | j                              t          ||¦  «        ¦  «         d S rS   )r~   ÚappendÚ
Repository©rN   rZ   r\   s      r    r   zMirror.add_repositoryÒ   s)   € ØÔ× Ò ¥¨E°3Ñ!7Ô!7Ñ8Ô8Ð8Ð8Ð8r"   r‚   c                 ó*   ‡— ˆfd„| j         D ¦   «         S )Nc                 ó*   •— g | ]}|j         ‰k    ¯|‘ŒS r#   )rZ   )r   ÚrrZ   s     €r    ú
<listcomp>z5Mirror.get_repositories_for_proto.<locals>.<listcomp>Ö   s%   ø€ ÐAÐAÐA�a°´¸5Ò0@Ð0@�Ð0@Ð0@Ð0@r"   ©r~   )rN   rZ   s    `r    Úget_repositories_for_protoz!Mirror.get_repositories_for_protoÕ   s    ø€ ØAÐAÐAÐA˜4Ô,ÐAÑAÔAÐAr"   c                 óP   — |€dS | j         D ]}|j        |k    r||j        v r dS ŒdS r>   )r~   rZ   r\   )rN   rZ   r\   r†   s       r    rY   zMirror.has_repositoryØ   sB   € Øˆ;Ø�5ØÔ"ð 	ð 	ˆAØŒw˜%ÒÐ C¨1¬5 L LØ�t�tøØˆur"   c                 ó*   ‡ — ˆ fd„‰ j         D ¦   «         S )Nc                 óD   •— g | ]}|                      ‰j        ¦  «        ‘ŒS r#   )Úget_urlr[   )r   r†   rN   s     €r    r‡   z(Mirror.get_repo_urls.<locals>.<listcomp>á   s'   ø€ ÐDÐDÐD¨Q�—	’	˜$œ-Ñ(Ô(ÐDÐDÐDr"   rˆ   rM   s   `r    Úget_repo_urlszMirror.get_repo_urlsà   s    ø€ ØDÐDÐDÐD°$Ô2CÐDÑDÔDÐDr"   c                 ó   — | j         S rS   ©r|   rM   s    r    Úget_locationzMirror.get_locationã   s
   € ØŒ}Ðr"   c                 ó   — || _         d S rS   r�   )rN   r|   s     r    Úset_locationzMirror.set_locationæ   s   € Ø ˆŒˆˆr"   rS   )r^   r_   r`   Ú__doc__r)   r
   rO   r   r	   r‰   ra   rY   rŽ   r‘   r“   r#   r"   r    r{   r{   Ç   sB  € € € € € Ø0Ð0ð NRð!ð !Øð!Ø$'ð!Ø.1ð!Ø=EÀc¼]ð!ð !ð !ð !ð9 Cð 9¨cð 9°dð 9ð 9ð 9ð 9ðB°ð B¸¸\Ô8Jð Bð Bð Bð Bð Cð ¨cð °dð ð ð ð ðE˜t Cœyð Eð Eð Eð Eð˜h sœmð ð ð ð ð! Sð !¨Tð !ð !ð !ð !ð !ð !r"   r{   c                   óN   — e Zd Zdededdfd„Zdeeef         fd„Zdedefd„ZdS )	r‚   rZ   r\   r   Nc                 ó"   — || _         || _        d S rS   ©rZ   r\   rƒ   s      r    rO   zRepository.__init__ë   s   € ØˆŒ
ØˆŒˆˆr"   c                 ó   — | j         | j        fS rS   r—   rM   s    r    Úget_infozRepository.get_infoï   s   € ØŒz˜4œ8Ð#Ð#r"   r[   c                 ó*   — | j         ›d|›d| j        ›�S )Nz://ú/r—   )rN   r[   s     r    r�   zRepository.get_urlò   s   € Ø#œz˜z˜z¨8¨8¨8°T´X°XÐ>Ð>r"   )r^   r_   r`   r)   rO   r   r™   r�   r#   r"   r    r‚   r‚   ê   s‚   € € € € € ð˜cð ¨ð °ð ð ð ð ð$˜%  S œ/ð $ð $ð $ð $ð? ð ?¨ð ?ð ?ð ?ð ?ð ?ð ?r"   r‚   rV   c                 óª   — t          j        d| d¬¦  «        }t          |¦  «        dk     r(|                     d¦  «         t          |¦  «        dk     °(|S )zCsplit a given URL into the protocoll, the hostname and the dir partz:*\/+é   )Úmaxsplitr   N)Úrer'   Úlenr�   )rV   r'   s     r    rX   rX   ö   sO   € åŒH�X˜s¨QÐ/Ñ/Ô/€EÝ
ˆe‰*Œ*�qŠ.ˆ.Ø�Š�TÑÔÐõ ˆe‰*Œ*�qŠ.ˆ.à€Lr"   c                   óP   — e Zd Z	 	 d
dee         defd„Zdedee         ddfd	„ZdS )ÚDistInfoNú/usr/share/python-apt/templatesÚdistÚbase_dirc           	      óÜ  — d| _         g | _        t          j                             d¦  «        | _        d }t          j        d¦  «        }t          j        d¦  «        }|s‘	 t          g d¢dt          ¬¦  «         
                    ¦   «         d                              ¦   «         }nL# t          t          f$ r8}|j        t          j        k    rt!          j        d	|z  ¦  «         d
}Y d }~nd }~ww xY w|| _        i }|›d|›d�}d                     |                     ¦   «         ¦  «        }	t+          t,          d ¦  «        }
t+          t.          d ¦  «        }t1          ||	¦  «        D �]H}|                     dd¦  «        }t5          |¦  «        dk     rŒ-|d                              ¦   «         }|d                              ¦   «         }|dk    rt7          |¦  «        | _        Œ||dk    r|| _         ŒŠ|dk    rR|                      |
|¦  «         t+          t.          d ¦  «        }t-          ¦   «         }
||
_        ||
_        d|z  |
_         Œâ|dk    r||
_         Œð|dk    rRd|
_!        | j        D ]A}|j        |k    r4|
j"         #                    |¦  «         |j$         #                    |
¦  «         ŒB�ŒH|dk    rt          j%        |¦  «        |
_&        �Œi|dk    rt          j%        |¦  «        |
_'        �ŒŠ|dk    r	||
_(        �Œ™|dk    r|
j)        s	||
_)        �Œ¯|d| j        z  k    r	||
_)        �ŒÆ|dk    r|
j*        s	||
_*        �ŒÜ|d| j        z  k    r	||
_*        �Œó|dk    s|d| j        z  k    �rhtV          j,         -                    |¦  «        r|p<tV          j,         .                    tV          j,         /                    ||¦  «        ¦  «        }||vr÷i }	 ta          |¦  «        5 }tc          te          |j3        d „ |D ¦   «         ¦  «        ¦  «        }d d d ¦  «         n# 1 swxY w Y   n!# th          $ r tk          d!¦  «         g }Y nw xY w|D ]w}| 6                    d"¦  «        r| 7                    d#|¦  «        }Œ.tq          |¦  «        \  }}}||v r||          9                    ||¦  «         Œbtu          ||||¦  «        ||<   Œx|||<   ||         |
_;        �Œp|d$k    rt7          |¦  «        |
_<        �ŒŒ|d%k    rG|r4|
 =                    |j        ¦  «        s|
j>         #                    |¦  «         t/          |¦  «        }�ŒÙ|d&k    r$| ?                    t7          |¦  «        ¦  «         �Œ|d'k    r$| @                    t7          |¦  «        ¦  «         �Œ-|d(k    r| A                    |¦  «         �ŒJ|                      |
|¦  «         t+          t,          d ¦  «        }
t+          t.          d ¦  «        }d S ))Nr   zAPT::Architecturez^#LOC:(.+)$zS^(#LOC:.+)|(((http)|(ftp)|(rsync)|(file)|(mirror)|(https))://[A-Za-z0-9/\.:\-_@]+)$)Úlsb_releasez-iz-sT)Úuniversal_newlinesÚstdoutr   z&lsb_release failed, using defaults: %sÚDebianr›   z.infoz/usr/share/distro-info/{}.csvú:é   r�   ÚChangelogURIÚMetaReleaseURIr   z^%s$Ú	MatchNameÚParentSuiteÚ	AvailableÚOfficialÚRepositoryTypeÚBaseURIz
BaseURI-%sÚMatchURIzMatchURI-%sÚMirrorsFilezMirrorsFile-%sc                 ó6   — g | ]}|                      ¦   «         ‘ŒS r#   )Ústrip)r   Úxs     r    r‡   z%DistInfo.__init__.<locals>.<listcomp>`  s    € Ð$@Ð$@Ð$@°1 Q§W¢W¡Y¤YÐ$@Ð$@Ð$@r"   z#WARNING: Failed to read mirror filez#LOC:z\1ÚDescriptionrc   ÚCompDescriptionÚCompDescriptionLongÚParentComponent)BÚmetarelease_uriÚ	templatesr   ÚconfigÚfindÚarchrŸ   Úcompiler   r   Úcommunicater¸   ÚOSErrorÚIOErrorÚerrnoÚENOENTÚloggingÚwarningr¤   r2   Úlowerr   r<   rc   r:   r'   r    Ú_Úchangelogs_uriÚfinish_templater?   rJ   rB   r@   rA   r�   rG   Ústring_to_boolrK   rL   rE   rD   rH   ÚosÚpathÚisabsÚabspathÚjoinr+   r-   ÚfilterÚmatchÚ	ExceptionÚprintr   ÚsubrX   r   r{   rI   rC   rU   rF   rt   rw   ro   )rN   r¤   r¥   r|   Ú	match_locÚmatch_mirror_lineÚexcÚmap_mirror_setsÚ
dist_fnameÚ	csv_fnamer   Ú	componentr9   Útokensr   ÚvalueÚnannyrI   Úvalue_fÚmirror_datarZ   r[   r\   s                          r    rO   zDistInfo.__init__ÿ   s¢  € ð
  "ˆÔØ)+ˆŒÝ”N×'Ò'Ð(;Ñ<Ô<ˆŒ	àˆÝ”J˜~Ñ.Ô.ˆ	ÝœJð&ñ
ô 
Ðð ð 	 ð åØ3Ð3Ð3Ø+/Ý#ðñ ô ÷
 !’[‘]”] 1ô&÷ ’U‘W”Wð �øõ �WÐ%ð  ð  ð  Ø”9¥¤Ò,Ð,Ý”OÐ$LÈsÑ$RÑSÔSÐSØ������øøøøð øøøð
 ˆŒ	àˆà%- X X¨t¨t¨tÐ4ˆ
Ø3×:Ò:¸4¿:º:¹<¼<ÑHÔHˆ	õ � $Ñ'Ô'ˆÝ� DÑ)Ô)ˆ	Ý$ Z°Ñ;Ô;ð T	6ñ T	6ˆDØ—Z’Z  QÑ'Ô'ˆFÝ�6‰{Œ{˜QŠˆØØ˜1”I—O’OÑ%Ô%ˆEØ˜1”I—O’OÑ%Ô%ˆEØ˜Ò&Ð&Ý&'¨¡h¤h�Ô#Ð#ØÐ*Ò*Ð*Ø',�Ô$Ð$Ø˜'Ò!Ð!Ø×$Ò$ X¨yÑ9Ô9Ð9Ý ¥¨DÑ1Ô1�	Ý#™:œ:�Ø %�”Ø(,�Ô%Ø&,¨u¡n�Ô#Ð#Ø˜+Ò%Ð%Ø&+�Ô#Ð#Ø˜-Ò'Ð'Ø!%�”Ø!œ^ð 8ð 8�Eà”z UÒ*Ð*Ø Ô(×/Ò/°Ñ6Ô6Ð6Øœ×-Ò-¨hÑ7Ô7Ð7øñ	8ð
 ˜+Ò%Ð%Ý%,Ô%;¸EÑ%BÔ%B�Ô"Ñ"Ø˜*Ò$Ð$Ý$+Ô$:¸5Ñ$AÔ$A�Ô!Ñ!ØÐ*Ò*Ð*Ø %�”‘Ø˜)Ò#Ð#¨HÔ,=Ð#Ø$)�Ô!Ñ!Ø˜,¨¬Ñ2Ò2Ð2Ø$)�Ô!Ñ!Ø˜*Ò$Ð$¨XÔ-?Ð$Ø%*�Ô"Ñ"Ø˜-¨$¬)Ñ3Ò3Ð3Ø%*�Ô"Ñ"Ø˜-Ò'Ð'¨5Ð4DÀtÄyÑ4PÒ+PÑ+Põ ”G—M’M %Ñ(Ô(ð ØðFå”w—’¥r¤w§|¢|°H¸eÑ'DÔ'DÑEÔEð ð
  Ð/Ð/Ø46�Jð
)Ý! %™[œ[ð ¨GÝ*.Ý &Ø$5Ô$;Ø$@Ð$@¸Ð$@Ñ$@Ô$@ñ!"ô !"ñ+ô +˜Kðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð øøõ %ð )ð )ð )ÝÐCÑDÔDÐDØ&(˜˜˜ð)øøøð !,ð 
ð 
˜ØŸ?š?¨7Ñ3Ô3ð %Ø'0§}¢}°U¸DÑ'AÔ'A˜HØ$Ý1:¸4±´Ñ.˜ ¨#Ø# zÐ1Ð1Ø& xÔ0×?Ò?ÀÀsÑKÔKÐKÐKå39Ø % x°°hñ4ô 4˜J xÑ0Ð0ð .8�O EÑ*Ø&5°eÔ&<�Ô#Ñ#Ø˜-Ò'Ð'Ý'(¨¡x¤x�Ô$Ñ$Ø˜+Ò%Ð%Øð : X×%;Ò%;¸I¼NÑ%KÔ%Kð :ØÔ'×.Ò.¨yÑ9Ô9Ð9Ý% eÑ,Ô,�	‘	ØÐ+Ò+Ð+Ø×)Ò)­!¨E©(¬(Ñ3Ô3Ð3Ñ3ØÐ/Ò/Ð/Ø×.Ò.­q°©x¬xÑ8Ô8Ð8Ñ8ØÐ+Ò+Ð+Ø×.Ò.¨uÑ5Ô5Ð5ùØ×Ò˜X yÑ1Ô1Ð1Ý� $Ñ'Ô'ˆÝ� DÑ)Ô)ˆ	ˆ	ˆ	sO   Á AB$ Â$C-Â5.C(Ã(C-ÏP#Ï-PÐP#ÐP	ÐP#ÐP	ÐP#Ð#QÑ Qr   rà   r   c                 óš  — |sdS |j         €&|j        r|j        D ]}|j         r|j         |_          nŒ|j        i k    r&|j        r|j        D ]}|j         r|j        |_         nŒ|r6|                     |j        ¦  «        s|j                             |¦  «         d}|j        D ]}|j        |_        Œ| j	                             |¦  «         dS )zfinish the current tempalteN)
rH   r@   rA   rI   rU   r?   rF   r�   rL   r¿   )rN   r   rà   Úts       r    rÎ   zDistInfo.finish_templateƒ  s  € ð ð 	ØˆFàÔÐ%¨(¬.Ð%ØÔ%ð ð �Ø”;ð Ø)*¬�HÔ&Ø�Eðð Ô "Ò$Ð$¨¬Ð$ØÔ%ð ð �Ø”;ð Ø*+¬,�HÔ'Ø�Eðð ð 	˜X×3Ò3°I´NÑCÔCð 	ØÔ×&Ò& yÑ1Ô1Ð1ØˆIàÔ!ð 	+ð 	+ˆAØ !¤
ˆHÔÐØŒ×Ò˜hÑ'Ô'Ð'Ð'Ð'r"   )Nr£   )	r^   r_   r`   r
   r)   rO   r<   rc   rÎ   r#   r"   r    r¢   r¢   þ   s„   € € € € € ð #Ø9ðB*ð B*à�sŒmðB*ð ðB*ð B*ð B*ð B*ðH(Ø ð(Ø-5°iÔ-@ð(à	ð(ð (ð (ð (ð (ð (r"   r¢   Ú__main__ÚUbuntur£   z

Suite: %szDesc: %szBaseURI: %szMatchURI: %szMirrors: %sú z -z  %s)/Ú
__future__r   r.   rÇ   rÉ   rÐ   Ú
subprocessr   r   rŸ   Útypingr   r   r   r	   r
   r   r   r   rÌ   r)   r:   Úobjectr<   rc   r{   r‚   rX   r¢   r^   ÚdÚinforÍ   r¿   r   r?   rC   rD   rH   rI   r-   ÚkeysrF   rP   rh   rG   r@   r#   r"   r    ú<module>rò      sƒ  ðð0 &Ð %Ð %Ð %Ð %Ð %à 
€
€
€
Ø €€€Ø €€€Ø 	€	€	€	Ø "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ø 	€	€	€	ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð €€€à  Ð  Ð  Ð  Ð  Ð  ðS1˜sð S1¨cð S1°h¸s´mð S1ð S1ð S1ð S1ðlð ð ð ð ˆvñ ô ð ð<"%ð "%ð "%ð "%ð "%�ñ "%ô "%ð "%ðJ !ð  !ð  !ð  !ð  !ˆVñ  !ô  !ð  !ðF	?ð 	?ð 	?ð 	?ð 	?�ñ 	?ô 	?ð 	?ð�3ð ˜4 œ9ð ð ð ð ð\(ð \(ð \(ð \(ð \(ˆvñ \(ô \(ð \(ð~ ˆzÒÑØˆ�Ð<Ñ=Ô=€AØ€G„L�Ô!Ñ"Ô"Ð"Ø”Kð 5ð 5ˆØˆŒ�] X¤]Ñ2Ñ3Ô3Ð3ØˆŒ�Z (Ô"6Ñ6Ñ7Ô7Ð7ØˆŒ�] XÔ%6Ñ6Ñ7Ô7Ð7ØˆŒ�^ hÔ&8Ñ8Ñ9Ô9Ð9ØÔ "Ò$Ð$ØˆGŒL˜¨¨¨hÔ.A×.FÒ.FÑ.HÔ.HÑ)IÔ)IÑIÑJÔJÐJØÔ'ð 	ð 	ˆDØˆGŒLˆLØ!%¤  ¨DÔ,<Ð,<Ð,<¸dÔ>SÐ>SÐTñô ð ð ð Ô&ð 	5ð 	5ˆEØˆGŒL˜ %Ô"3Ñ3Ñ4Ô4Ð4Ð4ð	5ð Ðð5ð 5r"   