§
    Öu•cH5  ã                   óŠ   — d Z ddlZddlZddlZddlZddlmZmZmZm	Z	m
Z
mZmZ ddlZddlmZ ddlZd„ Z G d„ d¦  «        ZdS )z5
Base Class for DesktopEntry, IconTheme and IconData
é    N)ÚParsingErrorÚDuplicateGroupErrorÚNoGroupErrorÚ
NoKeyErrorÚDuplicateKeyErrorÚValidationErrorÚdebug)Úuc                 óV   — 	 |                       dd¦  «         dS # t          $ r Y dS w xY w)z>Return True if a string consists entirely of ASCII characters.ÚasciiÚstrictTF)ÚencodeÚUnicodeError)Úss    ú-/usr/lib/python3/dist-packages/xdg/IniFile.pyÚis_asciir      sB   € ðØ	�Š�˜(Ñ#Ô#Ð#ØˆtøÝð ð ð Øˆuˆuðøøøs   ‚ š
(§(c                   óØ   — e Zd ZdZdZdZdZdZd"d„Zd„ Z	d"d„Z
d#d„Zd	„ Zd
„ Zd"d„Zd$d„Zd„ Zd„ Zd%d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd&d„Zd&d„Zd„ Zd„ Zd'd„Zd„ Zd„ Z d"d „Z!d!„ Z"dS )(ÚIniFileÚ NFc                 ó^   — t          ¦   «         | _        |r|                      |¦  «         d S d S ©N)ÚdictÚcontentÚparse)ÚselfÚfilenames     r   Ú__init__zIniFile.__init__   s7   € Ý‘v”vˆŒØð 	!Ø�JŠJ�xÑ Ô Ð Ð Ð ð	!ð 	!ó    c                 ó6   — t          | j        |j        ¦  «        S r   )Úcmpr   )r   Úothers     r   Ú__cmp__zIniFile.__cmp__#   s   € Ý�4”< ¤Ñ/Ô/Ð/r   c                 óÌ  — | j         }t          j                             |¦  «        st	          d|¦  «        ‚	 t          j        |ddd¬¦  «        }n!# t          $ r}t          r|‚Y d}~dS d}~ww xY w|5  |D �]N}| 	                    ¦   «         }|sŒ|d         dk    rŒ'|d         d	k    rZ| 
                    d	¦  «                             d
¦  «        }t          r%|                      |¦  «        rt          ||¦  «        ‚i ||<   Œ�	 |                     dd¦  «        \  }}	n!# t          $ r t	          d|z   |¦  «        ‚w xY w| 	                    ¦   «         }	 t          r'|                      ||¦  «        rt#          |||¦  «        ‚|	 	                    ¦   «         ||         |<   �Œ+# t$          t&          f$ r t	          d|¦  «        ‚w xY w	 ddd¦  «         n# 1 swxY w Y   || _        d| _        |r+|D ]}
|
|v r	|
| _         nŒt	          d|d         z  |¦  «        ‚| j                              di ¦  «        }|                     d|                     dd¦  «        ¦  «        | _        dS )zyParse an INI file.
        
        headers -- list of headers the parser will try to select as a default header
        úFile not foundÚrúutf-8Úreplace)ÚencodingÚerrorsNr   ú#ú[ú]ú=é   zInvalid line: z#Parsing error on key, group missingFz[%s]-Header missingzDesktop EntryzX-GNOME-Gettext-DomainzX-Ubuntu-Gettext-Domain)r   ÚosÚpathÚisfiler   ÚioÚopenÚIOErrorr	   ÚstripÚlstripÚrstripÚhasGroupr   ÚsplitÚ
ValueErrorÚhasKeyr   Ú
IndexErrorÚUnboundLocalErrorr   ÚtaintedÚdefaultGroupÚgetÚgettext_domain)r   r   Úheadersr   ÚfdÚeÚlineÚcurrentGroupÚkeyÚvalueÚheaders              r   r   zIniFile.parse&   s9  € ð ”,ˆåŒw�~Š~˜hÑ'Ô'ð 	;ÝÐ/°Ñ:Ô:Ð:ð		õ ”˜ 3°ÀÐKÑKÔKˆBˆBøÝð 	ð 	ð 	Ýð Ø�à�����øøøøð		øøøð ð 	\ð 	\Øð \ñ \�Ø—z’z‘|”|�àð \Øà˜!”W ’^�^Øà˜!”W ’^�^Ø#'§;¢;¨sÑ#3Ô#3×#:Ò#:¸3Ñ#?Ô#?�LÝð 3 §¢¨|Ñ!<Ô!<ð 3Ý1°,ÀÑIÔIÐIà02˜ Ñ-Ð-ðNØ%)§Z¢Z°°QÑ%7Ô%7™
˜˜U˜UøÝ%ð Nð Nð NÝ*Ð+;¸dÑ+BÀHÑMÔMÐMðNøøøð Ÿ)š)™+œ+�Cð\Ý ð G T§[¢[°°lÑ%CÔ%Cð GÝ"3°C¸ÀxÑ"PÔ"PÐPà9>¿º¹¼˜G LÔ1°#Ñ6Ñ6øÝ&Õ(9Ð:ð \ð \ð \Ý*Ð+PÐRZÑ[Ô[Ð[ð\øøøð9\ð	\ð 	\ð 	\ñ 	\ô 	\ð 	\ð 	\ð 	\ð 	\ð 	\ð 	\øøøð 	\ð 	\ð 	\ð 	\ð@ !ˆŒØˆŒð ð 	QØ!ð Qð Q�Ø˜WÐ$Ð$Ø(.�DÔ%Ø�Eð %õ #Ð#8¸7À1¼:Ñ#EÀxÑPÔPÐPð ŒL×Ò˜_¨bÑ1Ô1ˆØŸešeÐ$<Ø�EŠEÐ+¨TÑ2Ô2ñ4ô 4ˆÔÐÐs[   ¸A Á
A/Á	A*Á*A/Á4BGÄDÄGÄD=Ä=GÅAF"Æ GÆ""GÇGÇGÇGÚstringc                 ó  — |s| j         }|| j        v r—|| j        |         v rˆ|rr|                      ||¦  «        }|                     d¦  «        s| j        s| j        |         |         }n�t          j        | j        | j        |         |         ¦  «        }nc| j        |         |         }nO|st          rD|| j        vrt          || j	        ¦  «        ‚|| j        |         vrt          ||| j	        ¦  «        ‚nd}|dk    r|                      |¦  «        }g }	n|g}|D ]å}|dk    r|                      |¦  «        }n©|dk    r#	 t          |¦  «        }n’# t          $ r d}Y n„w xY w|dk    r#	 t          |¦  «        }ni# t          $ r d}Y n[w xY w|d	k    rt!          j        |¦  «        }n<|d
k    r6|                     d¦  «        \  }
}t          |
¦  «        t          |¦  «        f}|dk    r|	                     |¦  «         Œã|}	Œæ|	S )Nr,   r   TÚbooleanÚintegerr   Únumericg        ÚregexÚpointú,)r?   r   Ú_IniFile__addLocaleÚendswithrA   ÚgettextÚdgettextr	   r   r   r   ÚgetListÚ_IniFile__getBooleanÚintr:   ÚfloatÚreÚcompiler9   Úappend)r   rG   ÚgroupÚlocaleÚtypeÚlistr   rH   ÚvaluesÚresultÚxÚys               r   r@   zIniFile.geto   si  € àð 	&ØÔ%ˆEð �T”\Ð!Ð!¨¨t¬|¸EÔ/BÐ(BÐ(BØð 1Ø×&Ò& s¨EÑ2Ô2�Ø—<’< Ñ$Ô$ð \¨DÔ,?ð \à œL¨Ô/°Ô4�E�Eå#Ô,¨TÔ-@À$Ä,ÈuÔBUÐVYÔBZÑ[Ô[�E�Eàœ UÔ+¨CÔ0��àð �ð Ø ¤Ð,Ð,Ý& u¨d¬mÑ<Ô<Ð<Ø ¤¨UÔ 3Ð3Ð3Ý$ S¨%°´Ñ?Ô?Ð?ð 4ð �à�4Š<ˆ<Ø—\’\ %Ñ(Ô(ˆFØˆFˆFà�WˆFàð 	ð 	ˆEØ�yÒ Ð Ø×)Ò)¨%Ñ0Ô0��Ø˜Ò"Ð"ðÝ ™JœJ�E�EøÝ!ð ð ð Ø�E�E�Eðøøøà˜Ò"Ð"ð Ý! %™LœL�E�EøÝ!ð  ð  ð  Ø�E�E�Eð øøøà˜’�Ýœ
 5Ñ)Ô)��Ø˜’�Ø—{’{ 3Ñ'Ô'‘��1Ý˜A™œ¥ A¡¤˜�à�tŠ|ˆ|Ø—’˜eÑ$Ô$Ð$Ð$à��àˆs$   ÅEÅE ÅE Å*E:Å:F	ÆF	c                 óN  — t          j        d|¦  «        rt          j        d|¦  «        }nYt          j        d|¦  «        rt          j        d|¦  «        }n.t          j        d|¦  «        rt          j        d|¦  «        }n|g}|d         dk    r|                     ¦   «          |S )Nz	(?<!\\)\;z(?<!\\);z	(?<!\\)\|z(?<!\\),éÿÿÿÿr   )rZ   Úsearchr9   Úpop)r   rJ   r`   s      r   rV   zIniFile.getListª   s�   € ÝŒ9�\ 6Ñ*Ô*ð 	Ý”8˜K¨Ñ0Ô0ˆDˆDÝŒY�| VÑ,Ô,ð 	Ý”8˜L¨&Ñ1Ô1ˆDˆDÝŒY�{ FÑ+Ô+ð 	Ý”8˜K¨Ñ0Ô0ˆDˆDà�8ˆDØ�Œ8�rŠ>ˆ>Ø�HŠH‰JŒJˆJØˆr   c                 óV   — |dk    s|dk    s|dk    rdS |dk    s|dk    s|dk    rdS dS )	Nr.   ÚtrueÚTrueTr   ÚfalseÚFalseF© )r   rL   s     r   Ú__getBooleanzIniFile.__getBoolean·   sK   € Ø�aŠ<ˆ<˜7 fÒ,Ð,°¸6Ò0AÐ0AØ�4Ø˜Š\ˆ\˜W¨Ò/Ð/°7¸gÒ3EÐ3EØ�5Øˆur   c                 óv   — |s| j         }t          j        j        D ]}|›d|›d�}|| j        |         v r|c S Œ|S )z3add locale to key according the current lc_messagesr+   r,   )r?   ÚxdgÚLocaleÚlangsr   )r   rG   r]   ÚlangÚlangkeys        r   Ú__addLocalezIniFile.__addLocale¿   sa   € ð ð 	&ØÔ%ˆEå”JÔ$ð 	ð 	ˆDØ"% # # t t tÐ,ˆGØ˜$œ, uÔ-Ð-Ð-Ø���ð .ð ˆ
r   ÚAllc                 óh  — g | _         g | _        t          j                             | j        ¦  «        d         | _        |                      ¦   «          | j        D ]ƒ}|  	                    |¦  «         | j        |         D ]^}|  
                    || j        |         |         |¦  «         | j        |         |         dk    r| j                              d|z  ¦  «         Œ_Œ„d}|dk    s|dk    r| j         D ]
}|d|z   z  }Œ|dk    s|dk    r| j        D ]
}|d|z   z  }Œ|rt          || j        ¦  «        ‚dS )	z±Validate the contents, raising :class:`~xdg.Exceptions.ValidationError`
        if there is anything amiss.
        
        report can be 'All' / 'Warnings' / 'Errors'
        r.   r   zValue of Key '%s' is emptyrw   ÚWarningsz
- ÚErrorsN)Úwarningsr)   r/   r0   Úsplitextr   ÚfileExtensionÚcheckExtrasr   Ú
checkGroupÚcheckKeyr\   r   )r   Úreportr]   rG   ÚmsgrE   s         r   ÚvalidatezIniFile.validateÍ   su  € ð ˆŒØˆŒõ  œW×-Ò-¨d¬mÑ<Ô<¸QÔ?ˆÔð 	×ÒÑÔÐð ”\ð 	Mð 	MˆEØ�OŠO˜EÑ"Ô"Ð"Ø”| EÔ*ð Mð M�Ø—’˜c 4¤<°Ô#6°sÔ#;¸UÑCÔCÐCà”< Ô& sÔ+¨rÒ1Ð1Ø”M×(Ò(Ð)EÈÑ)KÑLÔLÐLøð	Mð ˆà�UŠ?ˆ?˜f¨
Ò2Ð2Øœð %ð %�Ø�v ‘}Ñ$��à�UŠ?ˆ?˜f¨Ò0Ð0Øœð %ð %�Ø�v ‘}Ñ$��àð 	6Ý! # t¤}Ñ5Ô5Ð5ð	6ð 	6r   c                 ó   — d S r   rn   ©r   r]   s     r   r   zIniFile.checkGroupõ   ó   € Øˆr   c                 ó   — d S r   rn   )r   rG   rH   r]   s       r   r€   zIniFile.checkKeyù   r†   r   c                 ó<  — |dk    r|                       |¦  «        }n|g}|D ]ù}|dk    r|                      |¦  «        }|dk    rŒ$|dk    r|                      |¦  «        }no|dk    r|                      |¦  «        }nS|dk    r|                      |¦  «        }n7|dk    r|                      |¦  «        }n|dk    r|                      |¦  «        }|d	k    r!| j                             d
|›d|›�¦  «         ŒÖ|dk    r| j	                             d|z  ¦  «         Œúd S )NTrJ   ÚlocalestringrL   rN   rM   rO   rP   r.   ú'z' is not a valid é   zValue of key '%s' is deprecated)
rV   ÚcheckStringÚcheckBooleanÚcheckNumberÚcheckIntegerÚ
checkRegexÚ
checkPointr)   r\   r{   )r   rG   rH   r_   r`   ra   Úcodes          r   Ú
checkValuezIniFile.checkValueý   sZ  € Ø�4Š<ˆ<Ø—\’\ %Ñ(Ô(ˆFˆFà�WˆFàð 	Nð 	NˆEØ�xÒÐØ×'Ò'¨Ñ.Ô.�Ø�~Ò%Ð%ØØ˜Ò"Ð"Ø×(Ò(¨Ñ/Ô/��Ø˜Ò"Ð"Ø×'Ò'¨Ñ.Ô.��Ø˜Ò"Ð"Ø×(Ò(¨Ñ/Ô/��Ø˜’�Ø—’ uÑ-Ô-��Ø˜’�Ø—’ uÑ-Ô-�Ø�qŠyˆyØ”×"Ò"Ð"¸u¸u¸uÀdÀdÐ#KÑLÔLÐLÐLØ˜’�Ø”×$Ò$Ð%FÈÑ%LÑMÔMÐMøð%	Nð 	Nr   c                 ó   — d S r   rn   ©r   s    r   r~   zIniFile.checkExtras  r†   r   c                 óB   — |dk    s|dk    rdS |dk    s|dk    sdS d S d S )NÚ1Ú0r‹   rj   rl   r.   rn   ©r   rH   s     r   r�   zIniFile.checkBoolean  s=   € à�SŠLˆL˜E SšL˜LØ�1à˜6’/�/ U¨gÒ%5Ð%5Ø�1ð "�/Ð%5Ð%5r   c                 ó6   — 	 t          |¦  «         d S #  Y dS xY w©Nr.   )rY   r™   s     r   rŽ   zIniFile.checkNumber"  s&   € ð	Ý�%‰LŒLˆLˆLˆLøð	Ø�1�1øøøó   ‚ “c                 ó6   — 	 t          |¦  «         d S #  Y dS xY wr›   )rX   r™   s     r   r�   zIniFile.checkInteger)  s&   € ð	Ý�‰JŒJˆJˆJˆJøð	Ø�1�1øøørœ   c                 ó4   — t          j        d|¦  «        sdS d S )Nz^[0-9]+,[0-9]+$r.   )rZ   Úmatchr™   s     r   r‘   zIniFile.checkPoint0  s&   € ÝŒxÐ)¨5Ñ1Ô1ð 	Ø�1ð	ð 	r   c                 ó(   — t          |¦  «        rdndS )Nr   r.   )r   r™   s     r   rŒ   zIniFile.checkString4  s   € Ý˜U‘O”OÐ*ˆqˆq¨Ð*r   c                 ó@   — 	 t          j        |¦  «         d S #  Y dS xY wr›   )rZ   r[   r™   s     r   r�   zIniFile.checkRegex7  s-   € ð	ÝŒJ�uÑÔÐÐÐøð	Ø�1�1øøøs   ‚ ˜c                 ó†  — |s| j         st          dd¦  «        ‚|r|| _         n| j         }t          j                             |¦  «        rmt          j                             t          j                             |¦  «        ¦  «        s1t          j        t          j                             |¦  «        ¦  «         t          j        |dd¬¦  «        5 }|r"| 	                    t          d¦  «        ¦  «         | j        r�| 	                    t          d¦  «        | j        z  ¦  «         | j        | j                                      ¦   «         D ],\  }}| 	                    t          d¦  «        ||fz  ¦  «         Œ-| 	                    t          d	¦  «        ¦  «         | j                             ¦   «         D ]˜\  }}|| j        k    rˆ| 	                    t          d¦  «        |z  ¦  «         |                     ¦   «         D ],\  }}| 	                    t          d¦  «        ||fz  ¦  «         Œ-| 	                    t          d	¦  «        ¦  «         Œ™	 d d d ¦  «         n# 1 swxY w Y   |rWt          j        |¦  «        j        }|t          j        z  t          j        z  t          j        z  }	t          j        ||	¦  «         d
| _        d S )Nr$   r   Úwr&   )r(   z#!/usr/bin/env xdg-open
z[%s]
z%s=%s
ú
F)r   r   r/   r0   ÚdirnameÚisdirÚmakedirsr2   r3   Úwriter
   r?   r   ÚitemsÚstatÚst_modeÚS_IXUSRÚS_IXGRPÚS_IXOTHÚchmodr>   )
r   r   ÚtrustedÚfprG   rH   Únamer]   ÚoldmodeÚmodes
             r   r¨   zIniFile.write>  s­  € Øð 	5 ¤ð 	5ÝÐ/°Ñ4Ô4Ð4àð 	%Ø$ˆDŒMˆMà”}ˆHåŒ7�?Š?˜8Ñ$Ô$ð 	3­R¬W¯]ª]½2¼7¿?º?È8Ñ;TÔ;TÑ-UÔ-Uð 	3ÝŒK�œŸš¨Ñ1Ô1Ñ2Ô2Ð2åŒW�X˜s¨WÐ5Ñ5Ô5ð 	&¸ð ð 9Ø—’�Ð6Ñ7Ô7Ñ8Ô8Ð8àÔ ð "Ø—’�˜8™œ tÔ'8Ñ8Ñ9Ô9Ð9Ø$(¤L°Ô1BÔ$C×$IÒ$IÑ$KÔ$Kð :ð :‘L�S˜%Ø—H’H�Q˜y™\œ\¨S°%¨LÑ8Ñ9Ô9Ð9Ð9Ø—’�˜4™œÑ!Ô!Ð!Ø!%¤×!3Ò!3Ñ!5Ô!5ð &ð &‘��uØ˜4Ô,Ò,Ð,Ø—H’H�Q˜x™[œ[¨4Ñ/Ñ0Ô0Ð0Ø(-¯ª©¬ð >ð >™˜˜eØŸš¥ 9¡¤°°e°Ñ!<Ñ=Ô=Ð=Ð=Ø—H’H�Q˜t™WœWÑ%Ô%Ð%øð&ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð, ð 	%Ý”g˜hÑ'Ô'Ô/ˆGØ�Tœ\Ñ)­D¬LÑ8½4¼<ÑGˆDÝŒH�X˜tÑ$Ô$Ð$àˆŒˆˆs   ÃE;IÉIÉIc                 óP  — |s| j         }|dk    rBt          t          j        j        ¦  «        dk    r |dz   t          j        j        d         z   dz   }	 || j        |         |<   n## t          $ r t          || j        ¦  «        ‚w xY w||  	                    ||¦  «        k    | _
        d S )NTr   r+   r,   )r?   Úlenrq   rr   rs   r   ÚKeyErrorr   r   r@   r>   )r   rG   rH   r]   r^   s        r   ÚsetzIniFile.setg  sµ   € àð 	&ØÔ%ˆEà�TŠ>ˆ>�c¥#¤*Ô"2Ñ3Ô3°aÒ7Ð7Ø˜‘)�cœjÔ.¨qÔ1Ñ1°CÑ7ˆCð	5Ø',ˆDŒL˜Ô Ñ$Ð$øÝð 	5ð 	5ð 	5Ý˜u d¤mÑ4Ô4Ð4ð	5øøøð  §¢¨#¨uÑ!5Ô!5Ò5ˆŒˆˆs   ÁA$ Á$ Bc                 óŽ   — |                       |¦  «        rt          rt          || j        ¦  «        ‚d S i | j        |<   d| _        d S ©NT)r8   r	   r   r   r   r>   r…   s     r   ÚaddGroupzIniFile.addGroupv  sV   € Ø�=Š=˜ÑÔð 	 Ýð @Ý)¨%°´Ñ?Ô?Ð?ð@ð @ð #%ˆDŒL˜ÑØˆDŒLˆLˆLr   c                 ót   — || j         v }|r| j         |= d| _        nt          rt          || j        ¦  «        ‚|S rº   )r   r>   r	   r   r   )r   r]   Úexisteds      r   ÚremoveGroupzIniFile.removeGroup~  sH   € Ø˜4œ<Ð'ˆØð 	9Ø”˜UÐ#ØˆDŒLˆLåð 9Ý" 5¨$¬-Ñ8Ô8Ð8Øˆr   Tc                 óÈ  — |s| j         }	 |r^t          | j        |         ¦  «        D ]C}t          j        d|z   t
          j        j        z   dz   |¦  «        r||k    r| j        |         |= ŒD| j        |                              |¦  «        }d| _	        |S # t          $ rC}t          r1||k    rt          || j        ¦  «        ‚t          ||| j        ¦  «        ‚Y d }~dS d }~ww xY w)Nú^ú$Tr   )r?   r`   r   rZ   rŸ   rq   rr   rO   rh   r>   r·   r	   r   r   r   )r   rG   r]   Úlocalesr²   rH   rD   s          r   Ú	removeKeyzIniFile.removeKeyˆ  s  € àð 	&ØÔ%ˆEð	Øð 6Ý  ¤¨eÔ!4Ñ5Ô5ð 6ð 6�DÝ”x  c¡	­C¬JÔ,<Ñ <¸sÑ BÀDÑIÔIð 6ÈdÐVYÊkÈkØ œL¨Ô/°Ð5øØ”L Ô'×+Ò+¨CÑ0Ô0ˆEØˆDŒLØˆLøÝð 	ð 	ð 	Ýð Ø˜’:�:Ý& u¨d¬mÑ<Ô<Ð<å$ S¨%°´Ñ?Ô?Ð?à�r�r�r�r�røøøøð	øøøs   ‹BB Â
C!Â8CÃC!c                 ó4   — | j                              ¦   «         S r   )r   Úkeysr•   s    r   ÚgroupszIniFile.groupsŸ  s   € ØŒ|× Ò Ñ"Ô"Ð"r   c                 ó   — || j         v S r   )r   r…   s     r   r8   zIniFile.hasGroup¢  s   € Ø˜œÐ$Ð$r   c                 ó2   — |s| j         }|| j        |         v S r   )r?   r   )r   rG   r]   s      r   r;   zIniFile.hasKey¥  s$   € àð 	&ØÔ%ˆEà�d”l 5Ô)Ð)Ð)r   c                 ó   — | j         S r   )r   r•   s    r   ÚgetFileNamezIniFile.getFileName¬  s
   € ØŒ}Ðr   r   )NFrJ   FF)rw   )rJ   F)NFrº   )#Ú__name__Ú
__module__Ú__qualname__r?   r}   r   rA   r>   r   r"   r   r@   rV   rW   rR   rƒ   r   r€   r“   r~   r�   rŽ   r�   r‘   rŒ   r�   r¨   r¸   r»   r¾   rÃ   rÆ   r8   r;   rÊ   rn   r   r   r   r      s   € € € € € Ø€LØ€Mà€HØ€Nà€Gð!ð !ð !ð !ð
0ð 0ð 0ðF4ð F4ð F4ð F4ðR7ð 7ð 7ð 7ðvð ð ðð ð ðð ð ð ð%6ð %6ð %6ð %6ðPð ð ðð ð ðNð Nð Nð Nð4ð ð ðð ð ðð ð ðð ð ðð ð ð+ð +ð +ðð ð ð'ð 'ð 'ð 'ðR7ð 7ð 7ð 7ð ð  ð  ðð ð ðð ð ð ð.#ð #ð #ð%ð %ð %ð*ð *ð *ð *ðð ð ð ð r   r   )Ú__doc__rZ   r/   rª   r2   Úxdg.Exceptionsr   r   r   r   r   r   r	   Ú
xdg.Localerq   Úxdg.utilr
   rT   r   r   rn   r   r   ú<module>rÒ      s  ððð ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð ð#ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€ðð ð ðXð Xð Xð Xð Xñ Xô Xð Xð Xð Xr   