Edit File: nntplib.cpython-38.opt-2.pyc
U ����@��d������������������������@���s���d�dl�Z�d�dlZd�dlZd�dlZd�dlZd�dlZzd�dlZW�n�ek rT���dZY�nX�dZd�dl m Z�d�dlmZ�dddd d ddd gZ dZG�dd��de�ZG�dd��de�ZG�dd ��d e�ZG�dd ��d e�ZG�dd��de�ZG�dd��de�ZdZdZdddddddddd d!d"hZd#d$d%d&d'd(d)gZd(d)d*�Zd+Ze�d,d-d.d/d0g�Ze�d1d2d3d4g�Zd5d ��Z d6d7��Zdld8d9�Z dmd:d;�Z!dnd<d=�Z"e�r�d>d?��Z#G�d@dA��dA�Z$G�dBd��de$�Z%e�r�G�dCdD��dDe$�Z&e �'dD��e(dEk�r�d�dl)Z)e)j*dFdG�Z+e+j,dHdIdJdKdL��e+j,dMdNdOdPdL��e+j,dQdRdSe-dTeef�dU��e+j,dVdWdXe-dYdU��e+j,dZd[d\dd]d^��e+�.��Z/e/j0Z0e/j�s�e0dSk�rxeZ0e%e/j1e0d_�Z2ne0dSk�r�eZ0e&e/j1e0d_�Z2e2�3��Z4d`e4k�r�e2�5���e2�6e/j6�\Z7Z8Z9Z:Z;e<dae;dbe8dce9dde:��dedf��Z=e>e-e:�e/j?�dg��Z9e2�@e9e:�\Z7ZAeAD�]Z\ZBZCe eCd$���Ddhdg�d��ZEe eCd#��ZFe-eCd)��ZGe<di�HeBe=eEdj�e=eFdk�eG����qe2�I���dS�)o�����NFT)� decode_header)�_GLOBAL_DEFAULT_TIMEOUT�NNTP� NNTPError�NNTPReplyError�NNTPTemporaryError�NNTPPermanentError�NNTPProtocolError� NNTPDataErrorr���i���c�������������������@���s���e�Zd�Zdd��ZdS�)r���c�����������������G���s>���t�j|�f|����z|d�|�_W�n�tk r8���d|�_Y�nX�d�S�)Nr���zNo response given)� Exception�__init__�response� IndexError)�self�args��r����,/opt/alt/python38/lib64/python3.8/nntplib.pyr���c���s ����zNNTPError.__init__N)�__name__� __module__�__qualname__r���r���r���r���r���r���a���s���c�������������������@���s���e�Zd�ZdS�)r���N�r���r���r���r���r���r���r���r���j���s���c�������������������@���s���e�Zd�ZdS�)r���Nr���r���r���r���r���r���n���s���c�������������������@���s���e�Zd�ZdS�)r���Nr���r���r���r���r���r���r���s���c�������������������@���s���e�Zd�ZdS�)r ���Nr���r���r���r���r���r ���v���s���c�������������������@���s���e�Zd�ZdS�)r ���Nr���r���r���r���r���r ���z���s����w���i3��Z100Z101�211�215Z220Z221Z222Z224Z225Z230Z231Z282�subject�from�datez message-idZ referencesz:bytesz:lines)�bytes�lines���� � GroupInfo�group�last�first�flag�ArticleInfoZnumber� message_idr���c�����������������C���sJ���g�}t�|��D�]2\}}t|t�r4|�|�|p,d���q|�|��qd�|�S�)N�ascii��)�_email_decode_header� isinstancer����append�decode�join)Z header_str�parts�v�encr���r���r���r�������s���� c�����������������C���s����g�}|�D�]`}|d�dkr:|dd�����d�\}}}d|�}n|��d�\}}}|���}t�||�}|�|��qt}t|�t|�k�r�td��|d�t|���|kr�td��|S�)Nr����:����z$LIST OVERVIEW.FMT response too shortz*LIST OVERVIEW.FMT redefines default fields)� partition�lower�_OVERVIEW_FMT_ALTERNATIVES�getr+����_DEFAULT_OVERVIEW_FMT�lenr ���)r����fmt�line�name�_�suffix�defaultsr���r���r����_parse_overview_fmt����s���� r?���c�����������������C���s����t�t�}g�}|�D�]�}i�}|�d�^}}t|�}t|�D�]�\} } | t�|�krLq6|| �}|�d�}| |kr�|s�|d�} | r�| d�t�| ������| kr�td��| r�| t�| �d���nd�} | ||| �<�q6|�||f��q|S�)N� r1���z: z?OVER/XOVER response doesn't include names of additional headers) r8���r7����split�int� enumerate� startswithr4���r ���r+���)r���r9���Zdata_process_funcZ n_defaultsZoverviewr:���ZfieldsZarticle_number�tokens�i�tokenZ field_nameZis_metadata�hr���r���r����_parse_overview����s&���� rI���c�����������������C���s����|d�kr |�dd���}|�d�d��}�t�|d�d���}t�|dd���}t�|dd����}t�|�d�d���}t�|�dd���}t�|�dd����}|dk�r�|d7�}n|dk�r�|d 7�}t�||||||�S�) Ni�������������������F���i����d���il��)rB����datetime)�date_str�time_strZhoursZminutesZseconds�yearZmonthZdayr���r���r����_parse_datetime����s���� rT���c�����������������C���sP���t�|�tj�sd}n d�|��}|�j}|r<|d�}d�||��}nd�||��}||fS�)NZ000000z({0.hour:02d}{0.minute:02d}{0.second:02d}rO���z{0:02d}{1.month:02d}{1.day:02d}z{0:04d}{1.month:02d}{1.day:02d})r*���rP����formatrS���)ZdtZlegacyrR����yrQ���r���r���r����_unparse_datetime����s���� rW���c�����������������C���s���|d�krt����}|j|�|d�S�)N)Zserver_hostname)�sslZ_create_stdlib_contextZwrap_socket)�sock�contextZhostnamer���r���r����_encrypt_on��s����r[���c�������������������@���s��e�Zd�ZdZdZdefdd�Zdd��Zdd ��Zd d��Z dd ��Z dd��ZeZdd��Z dd��Zdhdd�Zdd��Zdidd�Zdd��Zdjdd�Zdkdd �Zd!d"��Zd#d$��Zd%d&��Zdd'�d(d)�Zdd'�d*d+�Zdldd'�d,d-�Zd.d/��Zd0d1��Zd2d3��Zd4d5��Zdd'�d6d7�Zd8d9��Z d:d;��Z!dmd<d=�Z"d>d?��Z#d@dA��Z$dndBdC�Z%dodd'�dDdE�Z&dpdd'�dFdG�Z'dqdd'�dHdI�Z(dJdK��Z)dd'�dLdM�Z*dd'�dNdO�Z+dd'�dPdQ�Z,dd'�dRdS�Z-dTdU��Z.dVdW��Z/dXdY��Z0dZd[��Z1d\d]��Z2d^d_��Z3d`da��Z4drdbdc�Z5ddde��Z6e7�rdsdfdg�Z8dS�)t� _NNTPBasezutf-8�surrogateescapeNc�����������������C���sj���||�_�||�_d|�_|����|�_d�|�_|�����d|�_|rZd|�jkrZ|�����|�jsZd�|�_|�����d|�_ d|�_ d�S�)Nr���F�READER)�host�file� debugging�_getresp�welcome�_caps�getcapabilities�readermode_afterauth�_setreadermode�tls_on� authenticated)r���r`���r_���� readermode�timeoutr���r���r���r���9��s���� z_NNTPBase.__init__c�����������������C���s���|�S��Nr����r���r���r���r���� __enter__h��s����z_NNTPBase.__enter__c�������������� ������sR�����fdd�}|��rNz*z������W�n�ttfk r8���Y�nX�W�5�|��rL�������X�d�S�)Nc����������������������s ���t���d�S�)Nr`���)�hasattrr���rm���r���r����<lambda>l�������z$_NNTPBase.__exit__.<locals>.<lambda>)�_close�quit�OSError�EOFError)r���r���Zis_connectedr���rm���r����__exit__k��s���� z_NNTPBase.__exit__c�����������������C���s���|�j�rtdt|�j���|�jS�)Nz *welcome*)ra����print�reprrc���rm���r���r���r���� getwelcomev��s�����z_NNTPBase.getwelcomec�������������� ���C���s����|�j�d�kr�d|�_d�|�_z|����\}}W�n�ttfk rD���i�|�_�Y�n<X�||�_�d|krhttt|d���|�_d|kr�d� |d��|�_|�j�S�)Nr2���ZVERSIONZIMPLEMENTATION� ) rd����nntp_versionZnntp_implementation�capabilitiesr���r����max�maprB���r-���)r����resp�capsr���r���r���re�����s���� z_NNTPBase.getcapabilitiesc�����������������C���s ���||�_�d�S�rl���)ra���)r����levelr���r���r����set_debuglevel���s����z_NNTPBase.set_debuglevelc�����������������C���sH���t��d|�|��|t�}|�jdkr.tdt|���|�j�|��|�j����d�S�)Nznntplib.putliner2���z*put*) �sys�audit�_CRLFra���rw���rx���r`����write�flush�r���r:���r���r���r����_putline���s���� �z_NNTPBase._putlinec�����������������C���s2���|�j�rtdt|���|�|�j|�j�}|��|��d�S�)Nz*cmd*)ra���rw���rx����encode�encoding�errorsr����r����r���r���r����_putcmd���s�����z_NNTPBase._putcmdTc�����������������C���s����|�j��td��}t|�tkr$td��|�jdkr<tdt|���|sDt�|r�|dd���t krf|d�d��}n|dd���t kr�|d�d��}|S�)Nr2���z line too longz*get*rM������) r`����readline�_MAXLINEr8���r ���ra���rw���rx���ru���r����)r���Z strip_crlfr:���r���r���r����_getline���s���� �z_NNTPBase._getlinec�����������������C���sl���|�����}|�jrtdt|���|�|�j|�j�}|d�d��}|dkrHt|��|dkrXt|��|dkrht |��|S�)Nz*resp*r2����4�5Z123) r����ra���rw���rx���r,���r����r����r���r���r ���)r���r����cr���r���r���rb������s�����z_NNTPBase._getrespc�����������������C���s����d�}z�t|ttf�r"t|d��}}|����}|d�d��tkrBt|��g�}|d�k r�dt�df}|�� d�}||krnq�|� d�r�|dd���}|�|��qZn8d}|�� ��}||kr�q�|� d�r�|dd���}|�|��q�W�5�|r�|�����X�||fS�)N�wb��������.s���. Fs���..r2���) �closer*����strr����openrb���� _LONGRESPr���r����r����rD���r����r+���)r���r`���Z openedFiler���r���Zterminatorsr:���� terminatorr���r���r����_getlongresp���s4���� z_NNTPBase._getlongrespc�����������������C���s���|���|��|����S�rl���)r����rb���r����r���r���r���� _shortcmd���s���� z_NNTPBase._shortcmdc�����������������C���s���|���|��|��|�S�rl����r����r����)r���r:���r`���r���r���r����_longcmd��s���� z_NNTPBase._longcmdc��������������������s.�������|�����|�\}}|��fdd�|D��fS�)Nc��������������������s���g�|�]}|����j��j��qS�r���)r,���r����r������.0r:���rm���r���r���� <listcomp>��s����z,_NNTPBase._longcmdstring.<locals>.<listcomp>r����)r���r:���r`���r����listr���rm���r����_longcmdstring ��s ���� �z_NNTPBase._longcmdstringc�����������������C���sd���z|�j�W�S��tk r���Y�nX�z|��d�\}}W�n �tk rP���td�d���}Y�n X�t|�}||�_�|S�)NzLIST OVERVIEW.FMT)Z_cachedoverviewfmt�AttributeErrorr����r���r7���r?���)r���r���r���r9���r���r���r����_getoverviewfmt��s����z_NNTPBase._getoverviewfmtc�����������������C���s���dd��|D��S�)Nc�����������������S���s���g�|�]}t�|������qS�r���)r ���rA���r����r���r���r���r����&��s�����z(_NNTPBase._grouplist.<locals>.<listcomp>r���)r���r���r���r���r���� _grouplist$��s����z_NNTPBase._grouplistc�����������������C���s8���i�}|���d�\}}|D�]}|���^}}|||<�q||fS�)NZCAPABILITIES)r����rA���)r���r����r���r���r:���r;���rE���r���r���r���r|���(��s���� z_NNTPBase.capabilities)r`���c����������������C���sb���t�|tjtjf�s$td�|jj���t||�jdk��\}}d�||�}|�� ||�\}}||�� |�fS�)N�Athe date parameter must be a date or datetime object, not '{:40}'rJ���zNEWGROUPS {0} {1})r*���rP���r���� TypeErrorrU���� __class__r���rW���r{���r����r����)r���r���r`���rQ���rR����cmdr���r���r���r���r���� newgroups6��s������z_NNTPBase.newgroupsc����������������C���sR���t�|tjtjf�s$td�|jj���t||�jdk��\}}d�|||�}|�� ||�S�)Nr����rJ���zNEWNEWS {0} {1} {2}) r*���rP���r���r����rU���r����r���rW���r{���r����)r���r!���r���r`���rQ���rR���r����r���r���r����newnewsF��s������z_NNTPBase.newnewsc����������������C���s4���|d�k rd|�}nd}|���||�\}}||��|�fS�)NzLIST ACTIVE ZLIST)r����r����)r���� group_patternr`����commandr���r���r���r���r���r����V��s ���� z_NNTPBase.listc�����������������C���s����t��d�}|��d|��\}}|�d�s8|��d|��\}}i�}|D�]:}|�|����}|r@|�dd�\} } |sr| ��S�| || <�q@|r�||fS�dS�d�S�)Nz^(?P<group>[^ ]+)[ ]+(.*)$zLIST NEWSGROUPS r����XGTITLE r2���rJ���r(���)�re�compiler����rD����search�stripr!���)r���r����Z return_all�line_patr���r����groups�raw_line�matchr;���Zdescr���r���r����_getdescriptionse��s���� z_NNTPBase._getdescriptionsc�����������������C���s���|���|d�S�)NF�r����)r���r!���r���r���r����description|��s����z_NNTPBase.descriptionc�����������������C���s���|���|d�S�)NTr����)r���r����r���r���r����descriptions���s����z_NNTPBase.descriptionsc�����������������C���s����|���d|��}|�d�s t|��|���}d�}�}}t|�}|dkr�|d�}|dkr�|d�}|dkr�|d�}|dkr�|d����}|t|�t|�t|�|fS�)NzGROUP r���r���r2���rJ���r����rK���)r����rD���r���rA���r8���r4���rB���)r���r;���r����words�countr#���r"����nr���r���r���r!������s���� z_NNTPBase.groupc����������������C���s���|���d|�S�)NZHELP)r����)r���r`���r���r���r����help���s����z_NNTPBase.helpc�����������������C���s8���|��d�st|��|���}t|d��}|d�}|||fS�)NZ22r2���rJ���)rD���r���rA���rB���)r���r���r�����art_numr&���r���r���r���� _statparse���s���� z_NNTPBase._statparsec�����������������C���s���|���|�}|��|�S�rl���)r����r����)r���r:���r���r���r���r����_statcmd���s���� z_NNTPBase._statcmdc�����������������C���s"���|r|���d�|��S�|���d�S�d�S�)NzSTAT {0}ZSTAT)r����rU���)r����message_specr���r���r����stat���s���� z_NNTPBase.statc�����������������C���s ���|���d�S�)NZNEXT�r����rm���r���r���r����next���s����z_NNTPBase.nextc�����������������C���s ���|���d�S�)NZLASTr����rm���r���r���r���r"������s����z_NNTPBase.lastc�����������������C���s0���|���||�\}}|��|�\}}}|t|||�fS�rl���)r����r����r%���)r���r:���r`���r���r���r����r&���r���r���r����_artcmd���s����z_NNTPBase._artcmdc����������������C���s$���|d�k rd��|�}nd}|��||�S�)NzHEAD {0}ZHEAD�rU���r�����r���r����r`���r����r���r���r����head���s����z_NNTPBase.headc����������������C���s$���|d�k rd��|�}nd}|��||�S�)NzBODY {0}ZBODYr����r����r���r���r����body���s����z_NNTPBase.bodyc����������������C���s$���|d�k rd��|�}nd}|��||�S�)NzARTICLE {0}ZARTICLEr����r����r���r���r����article���s����z_NNTPBase.articlec�����������������C���s ���|���d�S�)NZSLAVE)r����rm���r���r���r����slave��s����z_NNTPBase.slavec�������������������sD���t��d���|��d�||�|�\}}��fdd��|�fdd�|D��fS�)Nz^([0-9]+) ?(.*) ?zXHDR {0} {1}c��������������������s�������|��}|r|�dd�S�|�S�)Nr2���rJ���)r����r!���)r:����m)�patr���r���� remove_number��s���� z%_NNTPBase.xhdr.<locals>.remove_numberc��������������������s���g�|�]}��|��qS�r���r���r����)r����r���r���r������s�����z"_NNTPBase.xhdr.<locals>.<listcomp>)r����r����r����rU���)r���Zhdrr����r`���r���r���r���)r����r����r����xhdr��s���� z_NNTPBase.xhdrc����������������C���s.���|���d�||�|�\}}|����}|t||�fS�)Nz XOVER {0}-{1})r����rU���r����rI���)r����start�endr`���r���r���r9���r���r���r����xover��s ���� �z_NNTPBase.xoverc���������� ������C���sx���d|�j�krdnd}t|ttf�r>|\}}|d�||p6d�7�}n|d�k rR|d�|�}|��||�\}}|����}|t||�fS�)NZOVERZXOVERz {0}-{1}r(���rz���)rd���r*����tupler����rU���r����r����rI���) r���r����r`���r����r����r����r���r���r9���r���r���r����over*��s����z_NNTPBase.overc���������� ������C���sf���t��dtd��t�d�}|��d|�|�\}}g�}|D�](}|�|����}|r4|�|� dd���q4||fS�)NzFThe XGTITLE extension is not actively used, use descriptions() insteadrJ���z^([^ ]+)[ ]+(.*)$r����r2���) �warnings�warn�DeprecationWarningr����r����r����r����r����r+���r!���) r���r!���r`���r����r���Z raw_linesr���r����r����r���r���r����xgtitleE��s������ z_NNTPBase.xgtitlec�����������������C���sl���t��dtd��|��d�|��}|�d�s0t|��z|���\}}W�n�tk r^���t|�d��Y�n X�||fS�d�S�)Nz(The XPATH extension is not actively usedrJ���z XPATH {0}Z223) r����r����r����r����rU���rD���r���rA���� ValueError)r����idr���Zresp_num�pathr���r���r����xpathW��s������ z_NNTPBase.xpathc�����������������C���sb���|���d�}|�d�st|��|���}t|�dkr8t|��|d�}t|�dkrTt|��|t|d��fS�)NZDATEZ111rJ���r2�������)r����rD���r���rA���r8���r ���rT���)r���r����elemr���r���r���r���r���k��s���� z_NNTPBase.datec�����������������C���s����|���|�}|�d�st|��t|ttf�r2|���}|D�]:}|�t�sR|� d�t�}|�d�rdd|�}|�j �|��q6|�j �d��|�j ����|�� ��S�)N�3r���r����s���. )r����rD���r���r*���r���� bytearray� splitlines�endswithr�����rstripr`���r����r����rb���)r���r�����fr���r:���r���r���r����_post|��s���� z_NNTPBase._postc�����������������C���s���|���d|�S�)NZPOST)r����)r����datar���r���r����post���s����z_NNTPBase.postc�����������������C���s���|���d�|�|�S�)Nz IHAVE {0})r����rU���)r���r&���r����r���r���r����ihave���s����z_NNTPBase.ihavec�����������������C���s���|�j�����|�`�d�S�rl���)r`���r����rm���r���r���r���rr������s���� z_NNTPBase._closec�����������������C���s���z|��d�}W�5�|������X�|S�)NZQUIT)rr���r����)r���r���r���r���r���rs������s���� z_NNTPBase.quitc�����������������C���s����|�j�rtd��|s|std��z<|rX|sXdd�l}|���}|�|�j�}|rX|d�}|d�}W�n�tk rn���Y�nX�|sxd�S�|��d|��}|�d�r�|s�t|��n |��d|��}|�d�s�t |��d�|�_ |�����|�jr�d |�j kr�|�� ���d�|�_ |�����d�S�) NzAlready logged in.z7At least one of `user` and `usenetrc` must be specifiedr���rJ���zauthinfo user Z381zauthinfo pass Z281r^���)ri���r�����netrcZauthenticatorsr_���rt���r����rD���r���r���rd���re���rf���rg���)r����user�password�usenetrcr����ZcredentialsZauthr���r���r���r����login���s>����� z_NNTPBase.loginc�������������� ���C���s`���z|���d�|�_W�nJ�tk r$���Y�n8�tk rZ�}�z|j�d�rHd|�_n��W�5�d�}~X�Y�nX�d�S�)Nzmode readerZ480T)r����rc���r���r���r ���rD���rf���)r����er���r���r���rg������s����z_NNTPBase._setreadermodec�����������������C���s|���|�j�rtd��|�jrtd��|��d�}|�d�rp|�j����t|�j||�j �|�_|�j� d�|�_d|�_�d�|�_|�����nt d��d�S�)NzTLS is already enabled.z+TLS cannot be started after authentication.�STARTTLSZ382�rwbTzTLS failed to start.)rh���r����ri���r����rD���r`���r����r[���rY���r_����makefilerd���re���r���)r���rZ���r���r���r���r����starttls���s���� z_NNTPBase.starttls)T)N)N)N)N)N)N)N)N)N)NNT)N)9r���r���r���r����r����r���r���rn���rv���ry���re���r�����debugr����r����r����rb���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����r����r����r����r����r����r���r����r����r����rr���rs���r����rg���� _have_sslr����r���r���r���r���r\���)��sn��� �� / . ) r\���c�������������������@���s*���e�Zd�Zeddddefdd�Zdd��ZdS�)r���NFc����������� ������C���s����||�_�||�_t�d|�||��t�||f|�|�_d�}z8|�j�d�}t� |�||||��|sZ|rh|�� |||��W�n$���|r~|����|�j������Y�nX�d�S�)N�nntplib.connectr����)r_����portr����r�����socket�create_connectionrY���r����r\���r���r����r����) r���r_���r����r����r����rj���r����rk���r`���r���r���r���r������s$���� �� z NNTP.__init__c�����������������C���s ���zt�|���W�5�|�j�����X�d�S�rl����rY���r����r\���rr���rm���r���r���r���rr���$��s����zNNTP._close)r���r���r���� NNTP_PORTr���r���rr���r���r���r���r���r������s����� %c�������������������@���s,���e�Zd�Zedddddefdd�Zdd��ZdS�)�NNTP_SSLNFc ����������� ������C���s����t��d|�||��t�||f|�|�_d�} zJt|�j||�|�_|�j�d�} tj|�| |||d��|s`|rn|�� |||��W�n$���| r�| � ���|�j� �����Y�nX�d�S�)Nr����r����)rj���rk���)r����r����r����r����rY���r[���r����r\���r���r����r����) r���r_���r����r����r����Zssl_contextrj���r����rk���r`���r���r���r���r���.��s"���� �� zNNTP_SSL.__init__c�����������������C���s ���zt�|���W�5�|�j�����X�d�S�rl���r����rm���r���r���r���rr���E��s����zNNTP_SSL._close)r���r���r���� NNTP_SSL_PORTr���r���rr���r���r���r���r���r����,��s������� r�����__main__zJ nntplib built-in demo - display the latest articles in a newsgroup)r����z-gz--groupzgmane.comp.python.generalz3group to fetch messages from (default: %(default)s))�defaultr����z-sz--serverz news.gmane.ioz+NNTP server hostname (default: %(default)s)z-pz--portr����z#NNTP port number (default: %s / %s))r���typer����z-nz --nb-articles� ���z2number of articles to fetch (default: %(default)s)z-Sz--ssl� store_truezuse NNTP over SSL)�actionr��r����)r_���r����r����ZGroupZhaszarticles, range�toc�����������������C���s$���t�|��|kr |�d�|d���d�}�|�S�)NrK���z...)r8���)�sZlimr���r���r����cutp��s����r ��r2����<z{:7} {:20} {:42} ({})�����*���)N)N)F)Jr����r�����collectionsrP���r����r����rX����ImportErrorr����Zemail.headerr���r)���r����__all__r����r���r���r���r���r���r ���r ���r����r���r����r7���r5���r����� namedtupler ���r%���r?���rI���rT���rW���r[���r\���r���r����r+���r����argparse�ArgumentParser�parser�add_argumentrB���� parse_argsr���r����Zserverr��re���r����r����r!���r���r����r#���r"���r;���rw���r ��r����Znb_articlesr����Z overviewsZartnumr����rA���Zauthorr���r���rU���rs���r���r���r���r����<module>B���s���� ����� ��������� �� �����Y. � � ��� ����