
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3

  \T  ã               @   s˜  d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZ ddddddd	d
dddddddddgZ	ej
jejddƒZejdejejB ƒZdd„ Zdd„ ZdOZd(d)„ eed*ƒD ƒZd+d,d-d.œZdQd/d0„Zd1d2„ Zd3d4„ Zd5d6„ ZG d7d„ dƒZG d8d„ deƒZdRd:d„Zi ZdSd;d„ZdTd<d„Z i a!i a"d=a#dUd>d	„Z$dVd?d
„Z%dWd@d„Z&dAd„ Z'dBd„ Z(dCd„ Z)dDd„ Z*dEd„ Z+dFd„ Z,dGd„ Z-dHd„ Z.eZ/dS )Xé    N)ÚENOENTÚNullTranslationsÚGNUTranslationsÚCatalogÚfindÚtranslationÚinstallÚ
textdomainÚbindtextdomainÚbind_textdomain_codesetÚdgettextÚ	dngettextÚgettextÚlgettextÚ	ldgettextÚ
ldngettextÚ	lngettextÚngettextZshareÚlocaleaÊ  
        (?P<WHITESPACES>[ \t]+)                    | # spaces and horizontal tabs
        (?P<NUMBER>[0-9]+\b)                       | # decimal integer
        (?P<NAME>n\b)                              | # only n is allowed
        (?P<PARENTHESIS>[()])                      |
        (?P<OPERATOR>[-*/%+?:]|[><!]=?|==|&&|\|\|) | # !, *, /, %, +, -, <, >,
                                                     # <=, >=, ==, !=, &&, ||,
                                                     # ? :
                                                     # unary and bitwise ops
                                                     # not allowed
        (?P<INVALID>\w+|.)                           # invalid token
    c             c   sT   xHt jt| ƒD ]8}|j}|dkr"q|j|ƒ}|dkr@td| ƒ‚|V  qW dV  d S )NZWHITESPACESZINVALIDz invalid token in plural form: %sÚ )ÚreÚfinditerÚ_token_patternÚ	lastgroupÚgroupÚ
ValueError)ÚpluralZmoZkindÚvalue© r   ú/usr/lib64/python3.6/gettext.pyÚ	_tokenizeT   s    

r    c             C   s   | rt d|  ƒS t dƒS d S )Nz#unexpected token in plural form: %szunexpected end of plural form)r   )r   r   r   r   Ú_error_   s    r!   ú||ú&&ú==ú!=ú<ú>ú<=ú>=ú+ú-Ú*ú/ú%c             C   s    i | ]\}}|D ]
}||“qqS r   r   )Ú.0ÚiZopsÚopr   r   r   ú
<dictcomp>m   s    r2   é   ÚorÚandz//)z||z&&r-   c             C   s®  d}t | ƒ}x|dkr(|d7 }t | ƒ}qW |dkr\t| ƒ\}}d||f }|dkr¬tdƒ‚nP|dkrrd	||f }n:yt|d
ƒ}W n tk
rž   t|ƒd ‚Y nX d||f }t | ƒ}d}xh|tk�r t| }||k rÖP |dkrî|dkrîd| }tj||ƒ}t| |d ƒ\}	}d|||	f }|}qºW ||  k�o6dkn  �rFd| }|dk�r¦|dk�r¦t| dƒ\}
}|dk�rzt|ƒ‚t| ƒ\}}d|
||f }|dk�r¦d| }||fS )Nr   ú!znot ú(z%s(%s)ú)z%unbalanced parenthesis in plural formÚnz%s%sé
   z%s%déd   é   é   z(%s)r3   z%s %s %sú?r   ú:z%s if %s else %s)r<   r=   )r<   r=   )ÚnextÚ_parser   Úintr!   Ú_binary_opsÚ	_c2py_opsÚget)ÚtokensZpriorityÚresultÚnexttokÚsubr   Újr0   r1   ÚrightZif_trueZif_falser   r   r   rA   p   sP    



rA   c             C   s:   yt | ƒ}W n( tk
r4   td| jjf ƒd ‚Y nX | S )Nz'Plural value must be an integer, got %s)ÚroundÚ	TypeErrorÚ	__class__Ú__name__)r9   r0   r   r   r   Ú_as_int¡   s    rP   c             C   s´   t | ƒdkrtdƒ‚y~tt| ƒƒ\}}|r2t|ƒ‚d}x>|D ]6}|dkrb|d7 }|dkrrtdƒ‚q<|dkr<|d8 }q<W d	ti}td
| |ƒ |d S  tk
r®   tdƒ‚Y nX d S )Niè  z"plural form expression is too longr   r7   r3   é   z%plural form expression is too complexr8   rP   z›if True:
            def func(n):
                if not isinstance(n, int):
                    n = _as_int(n)
                return int(%s)
            Úfunc)Úlenr   rA   r    r!   rP   ÚexecÚRecursionError)r   rG   rH   ZdepthÚcÚnsr   r   r   Úc2py©   s(    

rX   c             C   s:  t j| ƒ} d}d	}d
}d}| jdƒ}|dkrN| |d … }| d |… } ||O }nd}| jdƒ}|dkr†| |d … }| d |… } ||O }nd}| jdƒ}|dkr¾| |d … }| d |… } ||O }nd}| }	g }
xbt|d ƒD ]R}|| @ sØ|	}||@ � rü||7 }||@ �r||7 }||@ �r ||7 }|
j|ƒ qØW |
jƒ  |
S )Nr3   r   é   ú@r   Ú.Ú_r3   rY   r=   )r   Z	normalizer   ÚrangeÚappendÚreverse)ÚlocZCOMPONENT_CODESETZCOMPONENT_TERRITORYZCOMPONENT_MODIFIERÚmaskÚposZmodifierÚcodesetZ	territoryZlanguageZretr0   Úvalr   r   r   Ú_expand_langÍ   sJ    








 
 
 re   c               @   sp   e Zd Zddd„Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zddd„ZdS )r   Nc             C   s.   i | _ d | _d | _d | _|d k	r*| j|ƒ d S )N)Ú_infoÚ_charsetÚ_output_charsetÚ	_fallbackrA   )ÚselfÚfpr   r   r   Ú__init__ø   s    zNullTranslations.__init__c             C   s   d S )Nr   )rj   rk   r   r   r   rA      s    zNullTranslations._parsec             C   s   | j r| j j|ƒ n|| _ d S )N)ri   Úadd_fallback)rj   Úfallbackr   r   r   rm     s    zNullTranslations.add_fallbackc             C   s   | j r| j j|ƒS |S )N)ri   r   )rj   Úmessager   r   r   r   	  s    zNullTranslations.gettextc             C   s2   | j r| j j|ƒS | jr$|j| jƒS |jtjƒ ƒS )N)ri   r   rh   Úencoder   Úgetpreferredencoding)rj   ro   r   r   r   r     s
    zNullTranslations.lgettextc             C   s*   | j r| j j|||ƒS |dkr"|S |S d S )Nr3   )ri   r   )rj   Úmsgid1Úmsgid2r9   r   r   r   r     s
    zNullTranslations.ngettextc             C   sH   | j r| j j|||ƒS |dkr$|}n|}| jr:|j| jƒS |jtjƒ ƒS )Nr3   )ri   r   rh   rp   r   rq   )rj   rr   rs   r9   Útmsgr   r   r   r     s    zNullTranslations.lngettextc             C   s   | j S )N)rf   )rj   r   r   r   Úinfo(  s    zNullTranslations.infoc             C   s   | j S )N)rg   )rj   r   r   r   Úcharset+  s    zNullTranslations.charsetc             C   s   | j S )N)rh   )rj   r   r   r   Úoutput_charset.  s    zNullTranslations.output_charsetc             C   s
   || _ d S )N)rh   )rj   rv   r   r   r   Úset_output_charset1  s    z#NullTranslations.set_output_charsetc             C   sv   dd l }| j|jd< t|dƒrrd|kr6|jd |jd< d|krJ| j|jd< d|kr^| j|jd< d|krr| j|jd< d S )Nr   r\   Ú__contains__r   r   r   r   )Úbuiltinsr   Ú__dict__Úhasattrr   r   r   )rj   Únamesrz   r   r   r   r   4  s    
zNullTranslations.install)N)N)rO   Ú
__module__Ú__qualname__rl   rA   rm   r   r   r   r   ru   rv   rw   rx   r   r   r   r   r   r   ÷   s   
c               @   sH   e Zd ZdZdZdZdd„ Zdd„ Zd	d
„ Zdd„ Z	dd„ Z
dd„ ZdS )r   l   Þ* l   •$< r   r3   c             C   s   |d? |d@ fS )Né   iÿÿ  r   )rj   Úversionr   r   r   Ú_get_versionsJ  s    zGNUTranslations._get_versionsc       "      C   sâ  t j}t|ddƒ}i  | _}dd„ | _|jƒ }t|ƒ}|d|d d… ƒd }|| jkrv|d|dd	… ƒ\}}	}
}d
}n6|| jkr |d|dd	… ƒ\}}	}
}d}nt	dd|ƒ‚| j
|ƒ\}}|| jkrØt	ddt|ƒ |ƒ‚�xtd|	ƒD �]ò}||||
|
d … ƒ\}}|| }|||||d … ƒ\}}|| }||k �r^||k �r^|||… }|||… }nt	dd|ƒ‚|dk�rRd }xØ|jdƒD ]Ê}|jƒ jƒ }|�sž�q„d  }}d|k�rä|jddƒ\}}|jƒ jƒ }|jƒ }|| j|< |}n|�r | j|  d| 7  < |dk�r|jdƒd | _n0|dk�r„|jdƒ}|d jdƒd }t|ƒ| _�q„W | j�p\d}d|k�r¶|jdƒ\}} |jdƒ}t||ƒ}x>t|ƒD ]\}}!t|!|ƒ|||f< �q”W nt||ƒ|t||ƒ< |
d7 }
|d7 }qæW d S )NÚnamer   c             S   s   t | dkƒS )Nr3   )rB   )r9   r   r   r   Ú<lambda>U  s    z(GNUTranslations._parse.<locals>.<lambda>z<Ir=   r   z<4IrQ   z<IIz>4Iz>IIzBad magic numberzBad version number é   zFile is corruptó   
r?   r3   Ú
zcontent-typezcharset=zplural-formsú;zplural=Úasciió    )ÚstructÚunpackÚgetattrÚ_catalogr   ÚreadrS   ÚLE_MAGICÚBE_MAGICÚOSErrorr‚   ÚVERSIONSÚstrr]   ÚsplitÚdecodeÚstripÚlowerrf   rg   rX   Ú	enumerate)"rj   rk   rŒ   ÚfilenameZcatalogZbufZbuflenÚmagicr�   ZmsgcountZ	masteridxZtransidxZiiZmajor_versionZminor_versionr0   ZmlenZmoffZmendZtlenZtoffZtendÚmsgrt   ZlastkZb_itemÚitemÚkÚvr   rv   rr   rs   Úxr   r   r   rA   N  sr    














zGNUTranslations._parsec             C   sR   t ƒ }| jj||ƒ}||kr2| jr.| jj|ƒS |}| jrD|j| jƒS |jtjƒ ƒS )N)	ÚobjectrŽ   rE   ri   r   rh   rp   r   rq   )rj   ro   Úmissingrt   r   r   r   r   ¢  s    zGNUTranslations.lgettextc             C   sv   y| j || j|ƒf }W n< tk
rT   | jr>| jj|||ƒS |dkrL|}n|}Y nX | jrh|j| jƒS |jtjƒ ƒS )Nr3   )	rŽ   r   ÚKeyErrorri   r   rh   rp   r   rq   )rj   rr   rs   r9   rt   r   r   r   r   ­  s    
zGNUTranslations.lngettextc             C   s6   t ƒ }| jj||ƒ}||kr2| jr.| jj|ƒS |S |S )N)r¡   rŽ   rE   ri   r   )rj   ro   r¢   rt   r   r   r   r   »  s    zGNUTranslations.gettextc             C   sZ   y| j || j|ƒf }W n< tk
rT   | jr>| jj|||ƒS |dkrL|}n|}Y nX |S )Nr3   )rŽ   r   r£   ri   r   )rj   rr   rs   r9   rt   r   r   r   r   Ä  s    
zGNUTranslations.ngettextN)r   r3   )rO   r~   r   r�   r‘   r“   r‚   rA   r   r   r   r   r   r   r   r   r   B  s   T	Fc             C   sê   |d krt }|d krTg }x(dD ] }tjj|ƒ}|r|jdƒ}P qW d|krT|jdƒ g }x0|D ](}x"t|ƒD ]}||krl|j|ƒ qlW q^W |r”g }	nd }	xL|D ]D}|dkr¬P tjj||dd|  ƒ}
tjj	|
ƒrž|rÞ|	j|
ƒ qž|
S qžW |	S )	NÚLANGUAGEÚLC_ALLÚLC_MESSAGESÚLANGr?   ÚCz%s.mo)r¤   r¥   r¦   r§   )
Ú_default_localedirÚosÚenvironrE   r•   r^   re   ÚpathÚjoinÚexists)ÚdomainÚ	localedirÚ	languagesÚallZenvarrd   ZnelangsZlangZnelangrG   Úmofiler   r   r   r   Ò  s8    




c             C   sÄ   |d krt }t| ||dd�}|s6|r*tƒ S ttd| ƒ‚d }x„|D ]|}|tjj|ƒf}	tj	|	ƒ}
|
d krŒt
|dƒ�}tj|	||ƒƒ}
W d Q R X tj|
ƒ}
|r¤|
j|ƒ |d kr²|
}q@|j|
ƒ q@W |S )NT)r²   z$No translation file found for domainÚrb)r   r   r   r’   r   rª   r¬   ÚabspathÚ_translationsrE   ÚopenÚ
setdefaultÚcopyrx   rm   )r¯   r°   r±   Zclass_rn   rc   ZmofilesrG   r³   ÚkeyÚtrk   r   r   r   r   ú  s*    



c             C   s   t | |d|d�}|j|ƒ d S )NT)rn   rc   )r   r   )r¯   r°   rc   r}   r»   r   r   r   r     s    Zmessagesc             C   s   | d k	r| a t S )N)Ú_current_domain)r¯   r   r   r   r	   '  s    c             C   s   |d k	r|t | < t j| tƒS )N)Ú_localedirsrE   r©   )r¯   r°   r   r   r   r
   .  s    c             C   s   |d k	r|t | < t j| ƒS )N)Ú_localecodesetsrE   )r¯   rc   r   r   r   r   5  s    c             C   s@   y t | tj| d ƒtj| ƒd�}W n tk
r4   |S X |j|ƒS )N)rc   )r   r½   rE   r¾   r’   r   )r¯   ro   r»   r   r   r   r   <  s    c             C   sR   t j| ƒ}yt| tj| d ƒ|d�}W n" tk
rF   |j|pBtjƒ ƒS X |j|ƒS )N)rc   )	r¾   rE   r   r½   r’   rp   r   rq   r   )r¯   ro   rc   r»   r   r   r   r   D  s    
c             C   sT   y t | tj| d ƒtj| ƒd�}W n$ tk
rD   |dkr<|S |S Y nX |j|||ƒS )N)rc   r3   )r   r½   rE   r¾   r’   r   )r¯   rr   rs   r9   r»   r   r   r   r   L  s    
c             C   sh   t j| ƒ}yt| tj| d ƒ|d�}W n4 tk
rX   |dkrB|}n|}|j|pTtjƒ ƒS X |j|||ƒS )N)rc   r3   )	r¾   rE   r   r½   r’   rp   r   rq   r   )r¯   rr   rs   r9   rc   r»   rt   r   r   r   r   W  s    
c             C   s
   t t| ƒS )N)r   r¼   )ro   r   r   r   r   c  s    c             C   s
   t t| ƒS )N)r   r¼   )ro   r   r   r   r   f  s    c             C   s   t t| ||ƒS )N)r   r¼   )rr   rs   r9   r   r   r   r   i  s    c             C   s   t t| ||ƒS )N)r   r¼   )rr   rs   r9   r   r   r   r   l  s    ©r"   ©r#   ©r$   r%   ©r&   r'   r(   r)   ©r*   r+   ©r,   r-   r.   )r¿   rÀ   rÁ   rÂ   rÃ   rÄ   éÿÿÿÿ)rÅ   )NNF)NNNFN)NNN)N)N)N)0r   r¹   Úiorª   r   r‹   ÚsysÚerrnor   Ú__all__r¬   r­   Úbase_prefixr©   ÚcompileÚVERBOSEÚDOTALLr   r    r!   rC   r™   rD   rA   rP   rX   re   r   r   r   r¶   r   r   r½   r¾   r¼   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Ú<module>1   s\   8


     
1$*K 
& 




