???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................U
    e5dŽ  ã                   @   sJ  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Zd dlZd dl	m
Z
mZ dZe jZda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e dej¡Zdd„ ZG dd„ deƒZG dd„ deeƒZG dd„ de eƒZ!G dd„ de"eƒZ#G d d!„ d!eƒZ$G d"d#„ d#e$ƒZ%e%Z&d$d%„ Z'edfd&d'„Z(d(d)„ Z)dS )+é    N)ÚThreadingTCPServerÚStreamRequestHandleriF#  Tc                 C   s„   dd l }t| |jƒr| }n*| |¡}t| dƒr:| | ¡ n
| | ¡ t|ƒ}t 	¡  z tƒ  t||ƒ}t|||ƒ W 5 t 
¡  X d S )Nr   Úreadline)ÚconfigparserÚ
isinstanceZRawConfigParserZConfigParserÚhasattrZ	read_fileÚreadÚ_create_formattersÚloggingÚ_acquireLockÚ_releaseLockÚ_clearExistingHandlersÚ_install_handlersÚ_install_loggers)ZfnameÚdefaultsÚdisable_existing_loggersr   ÚcpÚ
formattersÚhandlers© r   ú&/usr/lib64/python3.8/logging/config.pyÚ
fileConfig3   s    	



r   c              	   C   sl   |   d¡} |  d¡}t|ƒ}| D ]F}|d | }zt||ƒ}W q  tk
rd   t|ƒ t||ƒ}Y q X q |S )NÚ.r   )ÚsplitÚpopÚ
__import__ÚgetattrÚAttributeError)ÚnameÚusedÚfoundÚnr   r   r   Ú_resolveU   s    

r"   c                 C   s   t tj| ƒS ©N)ÚmapÚstrÚstrip)Zalistr   r   r   Ú_strip_spacesc   s    r'   c                 C   s®   | d d }t |ƒsi S | d¡}t|ƒ}i }|D ]v}d| }| j|ddd d}| j|ddd d}| j|d	dd
d}tj}| |  d¡}	|	r”t|	ƒ}||||ƒ}
|
||< q2|S )Nr   Úkeysú,zformatter_%sÚformatT)ÚrawÚfallbackÚdatefmtÚstyleú%Úclass)Úlenr   r'   Úgetr
   Ú	Formatterr"   )r   Zflistr   ZformZsectnameZfsZdfsZstlÚcÚ
class_nameÚfr   r   r   r	   f   s$    

r	   c              
   C   s^  | d d }t |ƒsi S | d¡}t|ƒ}i }g }|D ]}| d|  }|d }| dd¡}zt|ttƒƒ}W n  ttfk
rŽ   t	|ƒ}Y nX | dd	¡}	t|	ttƒƒ}	| d
d¡}
t|
ttƒƒ}
||	|
Ž}d|krè|d }| 
|¡ t |ƒrþ| || ¡ t|tjjƒr2| dd¡}t |ƒr2| ||f¡ |||< q6|D ]\}}| || ¡ q@|S )Nr   r(   r)   z
handler_%sr0   Ú	formatterÚ Úargsú()Úkwargsz{}ÚlevelÚtarget)r1   r   r'   r2   ÚevalÚvarsr
   r   Ú	NameErrorr"   ÚsetLevelÚsetFormatterÚ
issubclassr   ÚMemoryHandlerÚappendZ	setTarget)r   r   Úhlistr   ZfixupsÚhandÚsectionÚklassÚfmtr9   r;   Úhr<   r=   Útr   r   r   r   |   sB    





r   c                 C   sT   t j}| D ]D}|jj| }||krHt|t jƒsN| t j¡ g |_d|_	q
||_
q
d S )NT)r
   ÚrootÚmanagerÚ
loggerDictr   ZPlaceHolderrA   ZNOTSETr   Ú	propagateÚdisabled)ÚexistingÚchild_loggersÚdisable_existingrM   ÚlogÚloggerr   r   r   Ú_handle_existing_loggers¡   s    rW   c                 C   s  | d d }|  d¡}tt|ƒƒ}| d¡ | d }tj}|}d|krX|d }| |¡ |jd d … D ]}| |¡ qf|d }	t	|	ƒr°|	  d¡}	t|	ƒ}	|	D ]}
| 
||
 ¡ qœt|jj ¡ ƒ}| ¡  g }|D ](}| d|  }|d	 }|jd
dd}t |¡}||krv| |¡d }|d }t	|ƒ}t	|ƒ}||k rl|| d |… |kr`| || ¡ |d7 }q2| |¡ d|kr’|d }| |¡ |jd d … D ]}| |¡ q ||_d|_|d }	t	|	ƒrÐ|	  d¡}	t|	ƒ}	|	D ]}
| 
||
 ¡ qäqÐt|||ƒ d S )NÚloggersr(   r)   rM   Zlogger_rootr<   r   z	logger_%sÚqualnamerP   é   )r,   r   r   )r   Úlistr'   Úremover
   rM   rA   r   ÚremoveHandlerr1   Ú
addHandlerrN   rO   r(   ÚsortZgetintÚ	getLoggerÚindexrE   rP   rQ   rW   )r   r   rT   ZllistrH   rM   rU   r<   rK   rF   rG   rR   rS   ZqnrP   rV   ÚiÚprefixedÚpflenÚnum_existingr   r   r   r   ·   sd    











r   c                   C   s.   t j ¡  t  t jd d … ¡ t jd d …= d S r#   )r
   Ú	_handlersÚclearZshutdownZ_handlerListr   r   r   r   r     s    
r   z^[a-z_][a-z0-9_]*$c                 C   s   t  | ¡}|std|  ƒ‚dS )Nz!Not a valid Python identifier: %rT)Ú
IDENTIFIERÚmatchÚ
ValueError)ÚsÚmr   r   r   Úvalid_ident  s    
rm   c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚConvertingMixinTc                 C   sB   | j  |¡}||k	r>|r || |< t|ƒtttfkr>| |_||_|S r#   )ÚconfiguratorÚconvertÚtypeÚConvertingDictÚConvertingListÚConvertingTupleÚparentÚkey)Úselfrv   ÚvalueÚreplaceÚresultr   r   r   Úconvert_with_key"  s    
ÿz ConvertingMixin.convert_with_keyc                 C   s0   | j  |¡}||k	r,t|ƒtttfkr,| |_|S r#   )ro   rp   rq   rr   rs   rt   ru   )rw   rx   rz   r   r   r   rp   .  s    
ÿzConvertingMixin.convertN)T)Ú__name__Ú
__module__Ú__qualname__r{   rp   r   r   r   r   rn     s   
rn   c                   @   s(   e Zd Zdd„ Zddd„Zd	dd„ZdS )
rr   c                 C   s   t  | |¡}|  ||¡S r#   )ÚdictÚ__getitem__r{   ©rw   rv   rx   r   r   r   r€   C  s    zConvertingDict.__getitem__Nc                 C   s   t  | ||¡}|  ||¡S r#   )r   r2   r{   ©rw   rv   Údefaultrx   r   r   r   r2   G  s    zConvertingDict.getc                 C   s   t  | ||¡}| j||ddS ©NF)ry   )r   r   r{   r‚   r   r   r   r   K  s    zConvertingDict.pop)N)N)r|   r}   r~   r€   r2   r   r   r   r   r   rr   @  s   
rr   c                   @   s   e Zd Zdd„ Zddd„ZdS )rs   c                 C   s   t  | |¡}|  ||¡S r#   )r[   r€   r{   r   r   r   r   r€   Q  s    zConvertingList.__getitem__éÿÿÿÿc                 C   s   t  | |¡}|  |¡S r#   )r[   r   rp   )rw   Úidxrx   r   r   r   r   U  s    zConvertingList.popN)r…   )r|   r}   r~   r€   r   r   r   r   r   rs   O  s   rs   c                   @   s   e Zd Zdd„ ZdS )rt   c                 C   s   t  | |¡}| j||ddS r„   )Útupler€   r{   r   r   r   r   r€   [  s    zConvertingTuple.__getitem__N)r|   r}   r~   r€   r   r   r   r   rt   Y  s   rt   c                   @   sˆ   e Zd Ze d¡Ze d¡Ze d¡Ze d¡Ze d¡Z	dddœZ
eeƒZd	d
„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚBaseConfiguratorz%^(?P<prefix>[a-z]+)://(?P<suffix>.*)$z^\s*(\w+)\s*z^\.\s*(\w+)\s*z^\[\s*(\w+)\s*\]\s*z^\d+$Úext_convertÚcfg_convert)ZextZcfgc                 C   s   t |ƒ| _| | j_d S r#   )rr   Úconfigro   )rw   r‹   r   r   r   Ú__init__t  s    
zBaseConfigurator.__init__c           	   	   C   sÂ   |  d¡}| d¡}z^|  |¡}|D ]H}|d| 7 }zt||ƒ}W q$ tk
rj   |  |¡ t||ƒ}Y q$X q$|W S  tk
r¼   t ¡ dd … \}}td||f ƒ}|| |_	|_
|‚Y nX d S )Nr   r   rZ   zCannot resolve %r: %s)r   r   Úimporterr   r   ÚImportErrorÚsysÚexc_inforj   Ú	__cause__Ú__traceback__)	rw   rk   r   r   r    ZfragÚeÚtbÚvr   r   r   Úresolvex  s"    



zBaseConfigurator.resolvec                 C   s
   |   |¡S r#   )r–   ©rw   rx   r   r   r   r‰     s    zBaseConfigurator.ext_convertc                 C   sþ   |}| j  |¡}|d kr&td| ƒ‚nÔ|| ¡ d … }| j| ¡ d  }|rú| j |¡}|rn|| ¡ d  }nd| j |¡}|rÒ| ¡ d }| j |¡s || }n2zt	|ƒ}|| }W n t
k
rÐ   || }Y nX |rè|| ¡ d … }qHtd||f ƒ‚qH|S )NzUnable to convert %rr   zUnable to convert %r at %r)ÚWORD_PATTERNri   rj   Úendr‹   ÚgroupsÚDOT_PATTERNÚINDEX_PATTERNÚDIGIT_PATTERNÚintÚ	TypeError)rw   rx   Úrestrl   Údr†   r!   r   r   r   rŠ   “  s4    
ÿzBaseConfigurator.cfg_convertc                 C   sÐ   t |tƒs$t |tƒr$t|ƒ}| |_n¨t |tƒsHt |tƒrHt|ƒ}| |_n„t |tƒsvt |tƒrvt|dƒsvt|ƒ}| |_nVt |t	ƒrÌ| j
 |¡}|rÌ| ¡ }|d }| j |d ¡}|rÌ|d }t| |ƒ}||ƒ}|S )NÚ_fieldsÚprefixÚsuffix)r   rr   r   ro   rs   r[   rt   r‡   r   r%   ÚCONVERT_PATTERNri   Ú	groupdictÚvalue_convertersr2   r   )rw   rx   rl   r¡   r£   Z	converterr¤   r   r   r   rp   µ  s0    
ÿÿ

zBaseConfigurator.convertc                    sj   ˆ   d¡}t|ƒs|  |¡}ˆ   dd ¡}‡ fdd„ˆ D ƒ}|f |Ž}|rf| ¡ D ]\}}t|||ƒ qP|S )Nr:   r   c                    s   i | ]}t |ƒr|ˆ | “qS r   ©rm   ©Ú.0Úk©r‹   r   r   Ú
<dictcomp>Ø  s       z5BaseConfigurator.configure_custom.<locals>.<dictcomp>)r   Úcallabler–   ÚitemsÚsetattr)rw   r‹   r4   Úpropsr;   rz   r   rx   r   r¬   r   Úconfigure_customÑ  s    


z!BaseConfigurator.configure_customc                 C   s   t |tƒrt|ƒ}|S r#   )r   r[   r‡   r—   r   r   r   Úas_tupleß  s    
zBaseConfigurator.as_tupleN)r|   r}   r~   ÚreÚcompiler¥   r˜   r›   rœ   r   r§   Ústaticmethodr   r   rŒ   r–   r‰   rŠ   rp   r²   r³   r   r   r   r   rˆ   `  s    




þ"rˆ   c                   @   sZ   e Z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dd„Z
ddd„ZdS )ÚDictConfiguratorc                 C   sÊ  | j }d|krtdƒ‚|d dkr2td|d  ƒ‚| dd¡}i }t ¡  zn|r | d|¡}|D ]„}|tjkr€td| ƒ‚qdz6tj| }|| }| d	d ¡}|r´| t 	|¡¡ W qd t
k
ræ }	 ztd
| ƒ|	‚W 5 d }	~	X Y qdX qd| d|¡}
|
D ]N}z|  ||
| d¡ W qú t
k
rF }	 ztd| ƒ|	‚W 5 d }	~	X Y qúX qú| dd ¡}|r¸z|  |d¡ W n. t
k
rš }	 ztdƒ|	‚W 5 d }	~	X Y nX n| dd¡}tƒ  | d|¡}|D ]P}z|  || ¡||< W n2 t
k
r }	 ztd| ƒ|	‚W 5 d }	~	X Y nX qÂ| d|¡}|D ]P}z|  || ¡||< W n2 t
k
rp }	 ztd| ƒ|	‚W 5 d }	~	X Y nX q$| d|¡}g }t|ƒD ]v}z |  || ¡}||_|||< W nN t
k
r  }	 z.dt|	jƒkrâ| |¡ ntd
| ƒ|	‚W 5 d }	~	X Y nX qŽ|D ]Z}z |  || ¡}||_|||< W n2 t
k
r` }	 ztd
| ƒ|	‚W 5 d }	~	X Y nX q
tj}t|jj ¡ ƒ}| ¡  g }| d|¡}
|
D ]Â}||kr| |¡d }|d }t|ƒ}t|ƒ}||k r|| d |… |krú| || ¡ |d7 }qÌ| |¡ z|  ||
| ¡ W n2 t
k
rV }	 ztd| ƒ|	‚W 5 d }	~	X Y nX q˜t|||ƒ | dd ¡}|r¸z|  |¡ W n. t
k
r¶ }	 ztdƒ|	‚W 5 d }	~	X Y nX W 5 t ¡  X d S )NÚversionz$dictionary doesn't specify a versionrZ   zUnsupported version: %sÚincrementalFr   zNo handler found with name %rr<   zUnable to configure handler %rrX   TzUnable to configure logger %rrM   zUnable to configure root loggerr   r   z Unable to configure formatter %rÚfilterszUnable to configure filter %rútarget not configured yetr   ) r‹   rj   r   r
   r   r   r2   rf   rA   Ú_checkLevelÚ	ExceptionÚconfigure_loggerÚconfigure_rootr   Úconfigure_formatterÚconfigure_filterÚsortedÚconfigure_handlerr   r%   r‘   rE   rM   r[   rN   rO   r(   r_   ra   r1   r\   rW   )rw   r‹   r¹   Z
EMPTY_DICTr   r   ÚhandlerZhandler_configr<   r“   rX   rM   rT   r   rº   ZdeferredrR   rS   rb   rc   rd   re   r   r   r   Ú	configureë  s   
ÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ


ÿÿÿÿzDictConfigurator.configurec           
   
   C   sâ   d|krr|d }z|   |¡}W qÞ tk
rn } z2dt|ƒkr>‚ | d¡|d< ||d< |   |¡}W 5 d }~X Y qÞX nl| dd ¡}| dd ¡}| dd¡}| dd ¡}|s®tj}	nt|ƒ}	d	|krÒ|	||||d	 ƒ}n|	|||ƒ}|S )
Nr:   z'format'r*   rJ   r-   r.   r/   r0   Zvalidate)r²   rŸ   r%   r   r2   r
   r3   r"   )
rw   r‹   Úfactoryrz   ÚterJ   Zdfmtr.   Úcnamer4   r   r   r   rÀ   ‰  s*    z$DictConfigurator.configure_formatterc                 C   s.   d|kr|   |¡}n| dd¡}t |¡}|S )Nr:   r   r8   )r²   r2   r
   ZFilter)rw   r‹   rz   r   r   r   r   rÁ   ­  s
    
z!DictConfigurator.configure_filterc                 C   sX   |D ]N}z|  | jd | ¡ W q tk
rP } ztd| ƒ|‚W 5 d }~X Y qX qd S )Nrº   zUnable to add filter %r)Z	addFilterr‹   r½   rj   )rw   Zfiltererrº   r6   r“   r   r   r   Úadd_filters¶  s
    zDictConfigurator.add_filtersc              
      s„  t ˆ ƒ}ˆ  dd ¡}|r\z| jd | }W n0 tk
rZ } ztd| ƒ|‚W 5 d }~X Y nX ˆ  dd ¡}ˆ  dd ¡}dˆ kr ˆ  d¡}t|ƒs˜|  |¡}|}nˆ  d¡}	|  |	¡}
t|
tj	j
ƒrFdˆ krFz>| jd	 ˆ d  }t|tjƒsˆ  |¡ td
ƒ‚|ˆ d< W n6 tk
rB } ztdˆ d  ƒ|‚W 5 d }~X Y nX nZt|
tj	jƒrtdˆ krt|  ˆ d ¡ˆ d< n,t|
tj	jƒr dˆ kr |  ˆ d ¡ˆ d< |
}ˆ  dd ¡}‡ fdd„ˆ D ƒ}z|f |Ž}W nL tk
r } z,dt|ƒkrô‚ | d¡|d< |f |Ž}W 5 d }~X Y nX |r.| |¡ |d k	rH| t |¡¡ |rZ|  ||¡ |r€| ¡ D ]\}}t|||ƒ qh|S )Nr7   r   zUnable to set formatter %rr<   rº   r:   r0   r=   r   r»   zUnable to set target handler %rZmailhostZaddressr   c                    s   i | ]}t |ƒr|ˆ | “qS r   r¨   r©   r¬   r   r   r­   æ  s       z6DictConfigurator.configure_handler.<locals>.<dictcomp>z'stream'ÚstreamZstrm)r   r   r‹   r½   rj   r®   r–   rC   r
   r   rD   r   ZHandlerÚupdaterŸ   ZSMTPHandlerr³   ZSysLogHandlerr%   rB   rA   r¼   rÉ   r¯   r°   )rw   r‹   Zconfig_copyr7   r“   r<   rº   r4   rÆ   rÈ   rI   Zthr±   r;   rz   rÇ   r   rx   r   r¬   r   rÃ   ¾  s~    ÿÿ



ÿ
ÿÿÿÿ

z"DictConfigurator.configure_handlerc                 C   sX   |D ]N}z|  | jd | ¡ W q tk
rP } ztd| ƒ|‚W 5 d }~X Y qX qd S )Nr   zUnable to add handler %r)r^   r‹   r½   rj   )rw   rV   r   rK   r“   r   r   r   Úadd_handlersý  s
    zDictConfigurator.add_handlersFc                 C   s‚   |  dd ¡}|d k	r$| t |¡¡ |s~|jd d … D ]}| |¡ q6|  dd ¡}|rb|  ||¡ |  dd ¡}|r~|  ||¡ d S )Nr<   r   rº   )r2   rA   r
   r¼   r   r]   rÌ   rÉ   )rw   rV   r‹   r¹   r<   rK   r   rº   r   r   r   Úcommon_logger_config  s    z%DictConfigurator.common_logger_configc                 C   s6   t  |¡}|  |||¡ | dd ¡}|d k	r2||_d S )NrP   )r
   r`   rÍ   r2   rP   )rw   r   r‹   r¹   rV   rP   r   r   r   r¾     s
    
z!DictConfigurator.configure_loggerc                 C   s   t  ¡ }|  |||¡ d S r#   )r
   r`   rÍ   )rw   r‹   r¹   rM   r   r   r   r¿     s    zDictConfigurator.configure_rootN)F)F)F)r|   r}   r~   rÅ   rÀ   rÁ   rÉ   rÃ   rÌ   rÍ   r¾   r¿   r   r   r   r   r·   å  s    $	?

r·   c                 C   s   t | ƒ ¡  d S r#   )ÚdictConfigClassrÅ   r¬   r   r   r   Ú
dictConfig&  s    rÏ   c                    sD   G dd„ dt ƒ}G dd„ dtƒ}G ‡ fdd„dtjƒ‰ ˆ ||| |ƒS )Nc                   @   s   e Zd Zdd„ ZdS )z#listen.<locals>.ConfigStreamHandlerc                 S   sD  z
| j }| d¡}t|ƒdkr
t d|¡d }| j  |¡}t|ƒ|k rb|| |t|ƒ ¡ }q>| jjd k	rz| j |¡}|d k	rô| d¡}zdd l}| 	|¡}t
|ƒ W nH tk
rò   t |¡}zt|ƒ W n tk
rì   t ¡  Y nX Y nX | jjr
| jj ¡  W n2 tk
r> } z|jtkr.‚ W 5 d }~X Y nX d S )Né   z>Lr   zutf-8)Z
connectionZrecvr1   ÚstructZunpackÚserverÚverifyÚdecodeÚjsonÚloadsrÏ   r½   ÚioÚStringIOr   Ú	tracebackÚ	print_excÚreadyÚsetÚOSErrorÚerrnoÚRESET_ERROR)rw   ZconnÚchunkZslenrÕ   r¡   Úfiler“   r   r   r   ÚhandleF  s6    




z*listen.<locals>.ConfigStreamHandler.handleN)r|   r}   r~   râ   r   r   r   r   ÚConfigStreamHandler?  s   rã   c                   @   s,   e Zd ZdZdedddfdd„Zdd„ ZdS )z$listen.<locals>.ConfigSocketReceiverrZ   Z	localhostNc                 S   s>   t  | ||f|¡ t ¡  d| _t ¡  d| _|| _|| _d S )Nr   rZ   )	r   rŒ   r
   r   Úabortr   ÚtimeoutrÛ   rÓ   )rw   ZhostÚportrÄ   rÛ   rÓ   r   r   r   rŒ   t  s    z-listen.<locals>.ConfigSocketReceiver.__init__c                 S   s`   dd l }d}|sT|  | j ¡ gg g | j¡\}}}|r<|  ¡  t ¡  | j}t ¡  q|  	¡  d S )Nr   )
ÚselectZsocketÚfilenorå   Zhandle_requestr
   r   rä   r   Zserver_close)rw   rç   rä   ZrdZwrZexr   r   r   Úserve_until_stopped~  s     þ

z8listen.<locals>.ConfigSocketReceiver.serve_until_stopped)r|   r}   r~   Zallow_reuse_addressÚDEFAULT_LOGGING_CONFIG_PORTrŒ   ré   r   r   r   r   ÚConfigSocketReceiverm  s     ÿ

rë   c                       s&   e Zd Z‡‡ fdd„Zdd„ Z‡  ZS )zlisten.<locals>.Serverc                    s4   t ˆ | ƒ ¡  || _|| _|| _|| _t ¡ | _d S r#   )	ÚsuperrŒ   ÚrcvrÚhdlrræ   rÓ   Ú	threadingZEventrÛ   )rw   rí   rî   ræ   rÓ   )ÚServerÚ	__class__r   r   rŒ   Ž  s    zlisten.<locals>.Server.__init__c                 S   sZ   | j | j| j| j| jd}| jdkr0|jd | _| j ¡  t ¡  |a	t 
¡  | ¡  d S )N)ræ   rÄ   rÛ   rÓ   r   rZ   )rí   ræ   rî   rÛ   rÓ   Zserver_addressrÜ   r
   r   Ú	_listenerr   ré   )rw   rÒ   r   r   r   Úrun–  s    þ

zlisten.<locals>.Server.run)r|   r}   r~   rŒ   ró   Ú__classcell__r   ©rð   )rñ   r   rð   Œ  s   rð   )r   r   rï   ZThread)ræ   rÓ   rã   rë   r   rõ   r   Úlisten+  s    .rö   c                   C   s*   t  ¡  ztrdt_d aW 5 t  ¡  X d S )NrZ   )r
   r   r   rò   rä   r   r   r   r   ÚstopListening¥  s    r÷   )NT)*rÞ   r×   r
   Zlogging.handlersr´   rÑ   r   rï   rÙ   Zsocketserverr   r   rê   Z
ECONNRESETrß   rò   r   r"   r'   r	   r   rW   r   r   rµ   ÚIrh   rm   Úobjectrn   r   rr   r[   rs   r‡   rt   rˆ   r·   rÎ   rÏ   rö   r÷   r   r   r   r   Ú<module>   sF   
"%W!
   Az