403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.37
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/beniget/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/beniget/__pycache__/beniget.cpython-311.pyc
�

��a������ddlmZmZddlmZddlZddlZGd�de��Z	Gd�dej
��ZGd�d	e��ZiZ
ejjd
kreZnddlZejZd�e���D��Z
ee
d<e��e��cZZGd
�dej
��ZGd�dej
��ZGd�de��Zedkr�ddlZGd�dej
��Zejdd�pdZeD]^Zere e��nej!5Z"ej#e"�$����Z%eee%��ddd��n#1swxYwY�]dSdS)�)�defaultdict�OrderedDict)�contextmanagerNc�:�eZdZd	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	dS)
�ordered_setNc�<�tj|pg��|_dS�N)r�fromkeys�values)�self�elementss  �1/usr/lib/python3/dist-packages/beniget/beniget.py�__init__zordered_set.__init__	s��!�*�8�>�r�:�:�����c��d|j|<dSr	�r�r�values  r�addzordered_set.adds��!���E���rc�N�|j�d�|D����dS)Nc3�K�|]}|dfV��	dSr	�)�.0�ks  r�	<genexpr>z%ordered_set.update.<locals>.<genexpr>s&����5�5��A�t�9�5�5�5�5�5�5r)r�update)rrs  rrzordered_set.updates-������5�5�f�5�5�5�5�5�5�5�5rc�N�t|j�����Sr	)�iterr�keys�rs r�__iter__zordered_set.__iter__s���D�K�$�$�&�&�'�'�'rc��||jvSr	rrs  r�__contains__zordered_set.__contains__s�����#�#rc�l�|j���}|�|j��|Sr	)r�copyr)r�other�outs   r�__add__zordered_set.__add__s.���k��� � ���
�
�5�<� � � ��
rc�*�t|j��Sr	)�lenrr s r�__len__zordered_set.__len__s���4�;���rr	)
�__name__�
__module__�__qualname__rrrr!r#r(r+rrrrrs�������;�;�;�;�"�"�"�6�6�6�(�(�(�$�$�$����
 � � � � rrc�F��eZdZdZd�Z�fd�Zd�Zd�Zd�Zd�Z	d�Z
�xZS)	�	Ancestorsa0
    Build the ancestor tree, that associates a node to the list of node visited
    from the root node (the Module) to the current node

    >>> import gast as ast
    >>> code = 'def foo(x): return x + 1'
    >>> module = ast.parse(code)

    >>> from beniget import Ancestors
    >>> ancestors = Ancestors()
    >>> ancestors.visit(module)

    >>> binop = module.body[0].body[0].value
    >>> for n in ancestors.parents(binop):
    ...    print(type(n))
    <class 'gast.gast.Module'>
    <class 'gast.gast.FunctionDef'>
    <class 'gast.gast.Return'>
    c�R�t��|_t��|_dSr	)�dict�_parents�list�_currentr s rrzAncestors.__init__6s������
�����
�
�
rc���t|j��|j|<|j�|��t	t
|���|��|j���dSr	)r4r5r3�append�superr0�
generic_visit�pop)r�node�	__class__s  �rr9zAncestors.generic_visit:sg���"�4�=�1�1��
�d���
���T�"�"�"�
�i����,�,�T�2�2�2��
�������rc�(�|j|dS�N����r3�rr;s  r�parentzAncestors.parent@s���}�T�"�2�&�&rc��|j|Sr	r@rAs  r�parentszAncestors.parentsCs���}�T�"�"rc��t|j|��D]}t||��r|cS�td�||�����)Nz{} has no parent of type {})�reversedr3�
isinstance�
ValueError�format)rr;�cls�ns    r�parentInstancezAncestors.parentInstanceFs_���$�-��-�.�.�	�	�A��!�S�!�!�
�����
��6�=�=�d�C�H�H�I�I�Irc�Z�|�|tjtjf��Sr	)rL�ast�FunctionDef�AsyncFunctionDefrAs  r�parentFunctionzAncestors.parentFunctionLs/���"�"�4�#�/�*-�*>�*@�A�A�	Arc�B�|�|tj��Sr	)rLrN�stmtrAs  r�
parentStmtzAncestors.parentStmtPs���"�"�4���2�2�2r)r,r-r.�__doc__rr9rBrDrLrQrT�
__classcell__�r<s@rr0r0!s����������(��������'�'�'�#�#�#�J�J�J�A�A�A�3�3�3�3�3�3�3rr0c�F�eZdZdZdZd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�ZdS)�DefzE
    Model a definition, either named or unnamed, and its users.
    )r;�_usersc�:�||_t��|_dSr	)r;rrZrAs  rrzDef.__init__[s����	�!�m�m����rc�h�t|t��sJ�|j�|��dSr	)rGrYrZrrAs  r�add_userzDef.add_user_s2���$��$�$�$�$�$����������rc��t|jtjtjtjf��r|jjSt|jtj��r|jjSt|jtj	��r4|jj�
dd��d}|jjp|St|jt��r
|jdSt|j��jS)zv
        If the node associated to this Def has a name, returns this name.
        Otherwise returns its type
        �.�r)rGr;rN�ClassDefrOrP�name�Name�id�alias�split�asname�tuple�typer,)r�bases  rrbzDef.namecs���
�d�i�#�,�"%�/�"%�"6�"8�9�9�	,��9�>�!�
��	�3�8�
,�
,�	,��9�<��
��	�3�9�
-�
-�	,��9�>�'�'��Q�/�/��2�D��9�#�+�t�+�
��	�5�
)�
)�	,��9�Q�<����	�?�?�+�+rc��|jS)zL
        The list of ast entity that holds a reference to this node
        )rZr s r�usersz	Def.usersvs���{�rc�,�|�i��Sr	)�_reprr s r�__repr__zDef.__repr__|s���z�z�"�~�~�rc����|�vrd��|��St����|<d�|jd��fd�|jD������S)N�(#{})�
{} -> ({})�, c3�f�K�|]+}|�������V��,dSr	)rnr%�r�u�nodess  �rrzDef._repr.<locals>.<genexpr>�sK�����%;�%;�)*�&'�W�W�U�Z�Z�\�\�%:�%:�%;�%;�%;�%;�%;�%;r)rIr*r;�joinrZ�rrws `rrnz	Def._reprs�����5�=�=��>�>�%��+�.�.�.��e�*�*�E�$�K��&�&��	�4�9�9�%;�%;�%;�%;�.2�k�%;�%;�%;�;�;���
rc�,�|�i��Sr	)�_strr s r�__str__zDef.__str__�s���y�y��}�}�rc���|�vrd��|��St����|<d�|���d��fd�|jD������S)Nrqrrrsc3�f�K�|]+}|�������V��,dSr	)r{r%rus  �rrzDef._str.<locals>.<genexpr>�sK�����'=�'=�+,�()�v�v�e�j�j�l�l�';�';�'=�'=�'=�'=�'=�'=r)rIr*rbrxrZrys `rr{zDef._str�s�����5�=�=��>�>�%��+�.�.�.��e�*�*�E�$�K��&�&��	�	���T�Y�Y�'=�'=�'=�'=�04��'=�'=�'=�=�=���
rN)
r,r-r.rU�	__slots__rr]rbrlrornr|r{rrrrYrYTs���������!�I�$�$�$����,�,�,�&����������������rrY�c��i|]\}}||��	Srr�rr�vs   r�
<dictcomp>r��s��1�1�1�T�Q��A�q�1�1�1r�__file__c��eZdZd�Zd�ZdS)�CollectGlobalsc�8�tt��|_dSr	)rr4�Globalsr s rrzCollectGlobals.__init__�s��"�4�(�(����rc�^�|jD]$}|j|�||f���%dSr	)�namesr�r7�rr;rbs   r�visit_GlobalzCollectGlobals.visit_Global�s?���J�	4�	4�D��L���%�%�t�T�l�3�3�3�3�	4�	4rN)r,r-r.rr�rrrr�r��s2������)�)�)�4�4�4�4�4rr�c���eZdZdZdCd�ZdDd�Zd�Zd�Zd�Zd	�Z	d
�Z
d�Zed���Z
ed
���Zd�Zd�Zed���Zd�Zefd�ZeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z e Z!d�Z"d�Z#d�Z$e$Z%d �Z&d!�Z'd"�Z(d#�Z)d$�Z*d%�Z+d&�Z,d'�Z-d(�Z.d)�Z/d*�Z0d+�Z1efd,�Z2d-�Z3d.�Z4d/�Z5d0�Z6e6Z7d1�Z8e6Z9d2�Z:d3�Z;e:Z<d4�Z=d5�Z>e:Z?d6�Z@d7�ZAd8�ZBe:ZCd9�ZDe:ZEd:�ZFd;�ZGd<�ZHd=�ZIeIZJd>�ZKd?�ZLd@�ZMdA�ZNdB�ZOdS)E�DefUseChainsa|
    Module visitor that gathers two kinds of informations:
        - locals: Dict[node, List[Def]], a mapping between a node and the list
          of variable defined in this node,
        - chains: Dict[node, Def], a mapping between nodes and their chains.

    >>> import gast as ast
    >>> module = ast.parse("from b import c, d; c()")
    >>> duc = DefUseChains()
    >>> duc.visit(module)
    >>> for head in duc.locals[module]:
    ...     print("{}: {}".format(head.name(), len(head.users())))
    c: 1
    d: 0
    >>> alias_def = duc.chains[module.body[0].names[0]]
    >>> print(alias_def)
    c -> (c -> (Call -> ()))
    Nc��i|_tt��|_||_d�t
���D��|_g|_g|_	g|_
g|_g|_g|_
g|_d|_dS)zN
            - filename: str, included in error messages if specified
        c�4�i|]\}}|t|����Sr)rYr�s   rr�z)DefUseChains.__init__.<locals>.<dictcomp>�s$��A�A�A���1�!�S��V�V�A�A�ArrN)�chainsrr4�locals�filename�Builtins�items�	_builtins�_defered�_definitions�_promoted_locals�_undefs�_currenthead�_breaks�
_continues�deadcode)rr�s  rrzDefUseChains.__init__�s������!�$�'�'��� ��
�B�A����0@�0@�A�A�A�����
����!#�����������������
�
�
rTc���t|tj��rK|sId�|j���D���t�fd�|j|D����Std�|j|D����S)Nc��h|]}|��Srr�r�ds  r�	<setcomp>z0DefUseChains.dump_definitions.<locals>.<setcomp>�s��;�;�;�a��;�;�;rc3�H�K�|]}|�v�|���V��dSr	�rb)rr��builtinss  �rrz0DefUseChains.dump_definitions.<locals>.<genexpr>�sE�����K�K����8I�8I��&�&�(�(�8I�8I�8I�8I�K�Krc3�>K�|]}|���V��dSr	r�r�s  rrz0DefUseChains.dump_definitions.<locals>.<genexpr>�s*����>�>�q�!�&�&�(�(�>�>�>�>�>�>r)rGrN�Moduler�r�sortedr�)rr;�ignore_builtinsr�s   @r�dump_definitionszDefUseChains.dump_definitions�s�����d�C�J�'�'�	?��	?�;�;�4�>�#8�#8�#:�#:�;�;�;�H��K�K�K�K�#'�;�t�#4�K�K�K�K�K�
K��>�>�D�K��,=�>�>�>�>�>�>rc�n�g}|j|D]$}|�t|�����%|Sr	)r�r7�str)rr;r�r�s    r�dump_chainszDefUseChains.dump_chains�s=������T�"�	"�	"�A��M�M�#�a�&�&�!�!�!�!��
rc��t|d��rEd�|j�dn|j��}d�||j|j��}nd}td�||����dS)N�linenoz{}:z	<unknown>z at {}{}:{}�zW: unbound identifier '{}'{})�hasattrrIr�r��
col_offset�print)rrbr;r��locations     r�unbound_identifierzDefUseChains.unbound_identifier�s����4��"�"�	��|�|�#�}�4���$�-���H�%�+�+�H�,0�K�,0�O�=�=�H�H��H�
�,�3�3�D�(�C�C�D�D�D�D�Drc�P�t|j��D]}||vr
||cS�gSr	)rFr�)rrbr�s   r�lookup_identifierzDefUseChains.lookup_identifiers<���$�+�,�,�	�	�A��q�y�y���w������	rc���|j}g}t|j��D]I}||vr$|s||n|t||��zcSd|vr|�|d���J|j�|t|����}|jr(|jd|�	||f��|r||gzS|js|�
||��|gS)N�*r?)rdrFr�r4�extendr��
setdefaultrYr�r7r�)rr;rb�starsr�s     r�defszDefUseChains.defss����w�����$�+�,�,�	%�	%�A��q�y�y�&+�F�q��w�w���a��g���1F�F�F�F��a�x�x����Q�s�V�$�$�$���K�"�"�4��T���3�3���<�	6��L���T�"�)�)�1�e�*�5�5�5��	��A�3�;���<�
4��'�'��d�3�3�3��3�Jrc���d}|D]\}t|tjtjtjf��r|sd}|xjdz
c_|�|���]|r|xjdzc_dSdS)NFTr`)rGrN�Break�Continue�Raiser��visit)r�stmtsr�rSs    r�process_bodyzDefUseChains.process_bodys������	�	�D��$���C�L�#�)� D�E�E�
'��'�#�H��M�M�Q�&�M�M��J�J�t������	��M�M�Q��M�M�M�M�	�	rc��|jd���D]�\}}||jdvrK|jd|D]6}|D]1\}}|���D]}|�|����2�7�_|D]"\}}|s|�||j���#��|j���dSr>)r�r�r�rlr]r�r;r:)r�
undef_namer��newdef�undef�_�userr�s        r�process_undefszDefUseChains.process_undefs(s��#'�<��#3�#9�#9�#;�#;�		H�		H��J���T�.�r�2�2�2�"�/��3�J�?�2�2�F�$+�2�2���q�$)�K�K�M�M�2�2�D�"�O�O�D�1�1�1�1�2�2�2�
%,�H�H�L�E�5� �H��/�/�
�E�J�G�G�G��H�	
��������rc#�K�|j�|��|j�tt����|j�t
����dV�|j���|j���|j���dSr	)r�r7r�rrr��setr:rAs  r�DefinitionContextzDefUseChains.DefinitionContext5s������� � ��&�&�&��� � ��[�!9�!9�:�:�:���$�$�S�U�U�+�+�+�
������!�!�#�#�#����������������rc#��K�tjjdkrl|j�|��|j�t
t����|j�t����dV�tjjdkrM|j�
��|j�
��|j�
��dSdS)N�)�sys�version_info�majorr�r7r�rrr�r�r:rAs  r�CompDefinitionContextz"DefUseChains.CompDefinitionContext?s�������!�Q�&�&���$�$�T�*�*�*���$�$�[��%=�%=�>�>�>��!�(�(����/�/�/�
������!�Q�&�&��!�%�%�'�'�'���!�!�#�#�#���!�!�#�#�#�#�#�'�&rc
��||_|�|��5|jd�d�|j���D����|j�g��|�|j	��t��}|�|��|j�
��D]`}|D][\}}||jdvrGt||f��}|�||��|j|�|���\�a|jdD]b\}}t#|d�t'|��j����}	|j|c}
|_|	|t*���|
|_�c|j���	t/��}|j|D]T}|���}||jvr|�|��||jdvsJ||jf����Ut7|jd��}
t7|j��}t7|��}t7d�|j|D����}|
||z|z
ksJ�	ddd��n#1swxYwY|jrJ�|jrJ�dS)Nr?c�6�i|]\}}|t|f����Sr)rr�s   rr�z-DefUseChains.visit_Module.<locals>.<dictcomp>Qs(��I�I�I�$�!�Q��K���%�%�I�I�Irzvisit_{})�stepTrc�6�h|]}|�����Srr�r�s  rr�z,DefUseChains.visit_Module.<locals>.<setcomp>vs ��D�D�D�Q������D�D�Dr)�moduler�r�rr�r�r�r7r��bodyr�r�r�rrY�set_definitionr��getattrrIrir,�DefinitionStepr:r�rbrr;r*)rr;�cgrwrKrb�dnode�fnode�ctx�visitorr��overloaded_builtinsr��nb_defs�nb_bltns�nb_overloaded_bltns�nb_headss                 r�visit_ModulezDefUseChains.visit_ModuleLs@�����
�
#�
#�D�
)�
)�)	L�)	L���b�!�(�(�I�I�$�.�2F�2F�2H�2H�I�I�I�
�
�
�
�M� � ��$�$�$����d�i�(�(�(� �!�!�B��H�H�T�N�N�N���*�*�,�,�
8�
8��$�8�8�G�A�t��4�#4�R�#8�8�8� #�Q��I�����+�+�D�%�8�8�8���D�)�0�0��7�7�7��	8�#�m�B�/�
)�
)�
��s�!�$�",�"3�"3�D��K�K�4H�"I�"I�K�K��*.�*;�S�'��d�'����N�3�3�3�3�$(��!�!��M������
L�&)�e�e�#���T�*�H�H�A��6�6�8�8�D��t�~�-�-�+�/�/��5�5�5��4�#4�Q�#7�7�7�7�$����7�7�7�7��d�/��2�3�3���t�~�.�.��&)�*=�&>�&>�#��D�D�$�+�d�2C�D�D�D�E�E���(�X�"5�8K�"K�K�K�K�K�K�S)	L�)	L�)	L�)	L�)	L�)	L�)	L�)	L�)	L�)	L�)	L����)	L�)	L�)	L�)	L�V�$�$�$�$��=� � � � � s�I<J&�&J*�-J*c��|jrdSt|t��r t|f��|jd|<dSt|��|jd|<dSr>)r�rGrYrr��rrb�dnode_or_dnodess   rr�zDefUseChains.set_definition|sg���=�	��F��o�s�+�+�	G�*5��6H�*I�*I�D��b�!�$�'�'�'�*5�o�*F�*F�D��b�!�$�'�'�'rc��t|t��r||�|��dS||�|��dSr	)rGrYrr)�
definitionrbr�s   r�add_to_definitionzDefUseChains.add_to_definition�sR���o�s�+�+�	5��t�� � ��1�1�1�1�1��t��#�#�O�4�4�4�4�4rc�f�|jrdSt�|jd||��dSr>)r�r�r�r�r�s   r�extend_definitionzDefUseChains.extend_definition�sB���=�	��F��&�&�t�'8��'<�d�'6�	8�	8�	8�	8�	8rc�B�|tu�rz|j�|t|����}|�|j|��|j|jd�|��td|j
j��D]*}|�|���
|���+|j
jD]*}|�|���
|���+|jD]}|�|���t!|j��}t%|jdt&j��r|���|jd�||f��dS|t.ur�|jr|�|j��|�|��5|�|j
��|�|j��ddd��dS#1swxYwYdSt9���r>)�DeclarationStepr�r�rYr�rbr�r�r7�filter�args�kw_defaultsr�r]�defaults�decorator_listr4r�rGrNrar:r�r��returnsr�r�r��NotImplementedError)rr;r�r��
kw_default�default�	decorator�definitionss        r�visit_FunctionDefzDefUseChains.visit_FunctionDef�s?���?�"�"��K�*�*�4��T���;�;�E�����	�5�1�1�1��K��)�"�-�.�5�5�e�<�<�<�$�T�4�9�+@�A�A�
7�
7�
��
�
�:�&�&�/�/��6�6�6�6��9�-�
4�
4���
�
�7�#�#�,�,�U�3�3�3�3�!�0�
&�
&�	��
�
�9�%�%�%�%��t�0�1�1�K��$�+�B�/���>�>�
"����!�!�!��M�"��$�$�d�K�%8�9�9�9�9�9�
�^�
#�
#��|�
)��
�
�4�<�(�(�(��'�'��-�-�
-�
-��
�
�4�9�%�%�%��!�!�$�)�,�,�,�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-����
-�
-�
-�
-�
-�
-�&�'�'�'s�5H�H
�
H
c���|j�|t|����}|j|jd�|��|�|j|��|jD]*}|�	|���
|���+|jD]/}|�	|j���
|���0|j
D]*}|�	|���
|���+|�|��5|�dtd����|�|j��ddd��dS#1swxYwYdS)Nr?r<)r�r�rYr�r�r7r�rb�basesr�r]�keywordsrr�r�r�r�)rr;r�rj�keywordr�s      r�visit_ClassDefzDefUseChains.visit_ClassDef�s�����&�&�t�S��Y�Y�7�7����D�%�b�)�*�1�1�%�8�8�8����D�I�u�-�-�-��J�	-�	-�D��J�J�t���%�%�e�,�,�,�,��}�	6�	6�G��J�J�w�}�%�%�.�.�u�5�5�5�5��,�	2�	2�I��J�J�y�!�!�*�*�5�1�1�1�1�
�
#�
#�D�
)�
)�	)�	)�����S��-=�-=�>�>�>����d�i�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�	)�	)s�>E*�*E.�1E.c�L�|jr|�|j��dSdSr	)rr�rAs  r�visit_ReturnzDefUseChains.visit_Return�s0���:�	#��J�J�t�z�"�"�"�"�"�	#�	#rc���|jd���D],\}}t�|jd||���-|jd���dSr>)r�r�r�r�r��clear�rr�rr�s    r�visit_BreakzDefUseChains.visit_Break�sm���%�b�)�/�/�1�1�	C�	C�D�A�q��*�*�4�<��+;�Q��B�B�B�B���"��#�#�%�%�%�%�%rc���|jd���D],\}}t�|jd||���-|jd���dSr>)r�r�r�r�r�r	r
s    r�visit_ContinuezDefUseChains.visit_Continue�sm���%�b�)�/�/�1�1�	F�	F�D�A�q��*�*�4�?�2�+>��1�E�E�E�E���"��#�#�%�%�%�%�%rc�D�|jD]}|�|���dSr	)�targetsr��rr;�targets   r�visit_DeletezDefUseChains.visit_Delete�s2���l�	�	�F��J�J�v�����	�	rc�x�|�|j��|jD]}|�|���dSr	)r�rrrs   r�visit_AssignzDefUseChains.visit_Assign�sF���
�
�4�:�����l�	�	�F��J�J�v�����	�	rc��|jr|�|j��}|�|j��}|�|j��}|�|��|jr|�|��dSdSr	)rr��
annotationrr])rr;�dvalue�dannotation�dtargets     r�visit_AnnAssignzDefUseChains.visit_AnnAssign�s����:�	,��Z�Z��
�+�+�F��j�j���1�1���*�*�T�[�)�)������%�%�%��:�	%��O�O�G�$�$�$�$�$�	%�	%rc��|�|j��}t|jtj���r|jjt	j��c}|j_|�|j��}|�|��||j_|jj	|j
dvr"|�|jj	|��dSd�|�|j��D��}|�
|jj	|��d|vr-|j|jd�|��dSdS|�|j���|��dS)Nr?c�6�g|]}|�����Srr�r�s  r�
<listcomp>z0DefUseChains.visit_AugAssign.<locals>.<listcomp>�s ��H�H�H�A�q�v�v�x�x�H�H�Hrr�)r�rrGrrNrcr��Loadr]rdr�r�r�r�r�r�r7)rr;rr�r�loaded_froms      r�visit_AugAssignzDefUseChains.visit_AugAssign�sM�����D�J�'�'���d�k�3�8�,�,�	5�#'�;�?�C�H�J�J� �C�����j�j���-�-�G��O�O�G�$�$�$�!�D�K�O��{�~��!6�r�!:�:�:��&�&�t�{�~�w�?�?�?�?�?�H�H����4�;�1G�1G�H�H�H���#�#�D�K�N�G�<�<�<��+�%�%��K�� 1�"� 5�6�=�=�g�F�F�F�F�F�&�%�
�J�J�t�{�#�#�,�,�V�4�4�4�4�4rc��|jr|�|j��|jD]}|�|���dSr	)�destr�r)rr;rs   r�visit_PrintzDefUseChains.visit_Print�sP���9�	"��J�J�t�y�!�!�!��[�	�	�E��J�J�u�����	�	rc�f�|�|j��|j�t	t
����|j�t	t
����|j�t	t����|j	�|j	d�
����|�|j��|�|j
��|���|j���}|���D]\}}|�||���|j�t	t
����|�|j��|�|j
��|j	�t	t
����|�|j��|j	���}|j���}|j���}|j	���}|���D]\}}|�||���|���D]\}}|�||���|���D]\}}|�||���|���D]\}}|�||���dSr>)r�rr�r7rrr�r�r4r�r%rr�r�r�r:r�r��orelse)rr;�
continue_defsr�rv�orelse_defs�
break_defs�	body_defss        r�	visit_ForzDefUseChains.visit_For�s����
�
�4�9��������K��4�4�5�5�5�����{�;�7�7�8�8�8�����K��-�-�.�.�.��� � ��!2�2�!6�!;�!;�!=�!=�>�>�>��
�
�4�;�������$�)�$�$�$���������+�+�-�-�
�!�'�'�)�)�	)�	)�D�A�q��"�"�1�a�(�(�(�(�����{�;�7�7�8�8�8�	
�
�
�4�;�������$�)�$�$�$�	
�� � ��[�!9�!9�:�:�:����$�+�&�&�&��'�+�+�-�-���\�%�%�'�'�
���+�+�-�-�
��%�)�)�+�+�	��%�%�'�'�	)�	)�D�A�q��"�"�1�a�(�(�(�(�!�'�'�)�)�	)�	)�D�A�q��"�"�1�a�(�(�(�(��$�$�&�&�	)�	)�D�A�q��"�"�1�a�(�(�(�(��O�O�%�%�	)�	)�D�A�q��"�"�1�a�(�(�(�(�	)�	)rc�P�|j�|jd�����|j�t	t
����|j�t	t����|j�t	t����|�	|j
��|j���|j�|jd�����|�|j
��|�	|j��|���|j���}|���D]\}}|�||���|j�t	t����|�|j
��|�	|j��|�|j
��|j�|jd�����|�	|j
��|j���}|j���}|j���}|j���}|���D]\}}|�||���|���D]\}}|�||���|���D]\}}|�||���|���D]\}}|�||���dSr>)r�r7r%r�rr4r�rr�r�r%r:r��testr�r�r�r�)rr;r&r�rvr'r)r(s        r�visit_WhilezDefUseChains.visit_While$s;���� � ��!2�2�!6�!;�!;�!=�!=�>�>�>�����K��-�-�.�.�.�����K��4�4�5�5�5�����{�;�7�7�8�8�8����$�+�&�&�&���������� � ��!2�2�!6�!;�!;�!=�!=�>�>�>��
�
�4�9�������$�)�$�$�$���������+�+�-�-�
�!�'�'�)�)�	)�	)�D�A�q��"�"�1�a�(�(�(�(�����{�;�7�7�8�8�8�	
�
�
�4�9�������$�)�$�$�$�	
�
�
�4�9������ � ��!2�2�!6�!;�!;�!=�!=�>�>�>����$�+�&�&�&��'�+�+�-�-���%�)�)�+�+�	��\�%�%�'�'�
���+�+�-�-�
�!�'�'�)�)�	)�	)�D�A�q��"�"�1�a�(�(�(�(��$�$�&�&�	)�	)�D�A�q��"�"�1�a�(�(�(�(��%�%�'�'�	)�	)�D�A�q��"�"�1�a�(�(�(�(��O�O�%�%�	)�	)�D�A�q��"�"�1�a�(�(�(�(�	)�	)rc���|�|j��|j�|jd�����|�|j��|j���}|j�|jd�����|�|j��|j���}|D]H}||vr&|�	|||||z���,|�
|||���I|D]#}||vr�|�
|||���$dSr>)r�r,r�r7r%r�r�r:r%r�r�)rr;r)r'r�s     r�visit_IfzDefUseChains.visit_IfVsa���
�
�4�9����	
�� � ��!2�2�!6�!;�!;�!=�!=�>�>�>����$�)�$�$�$��%�)�)�+�+�	��� � ��!2�2�!6�!;�!;�!=�!=�>�>�>����$�+�&�&�&��'�+�+�-�-���	8�	8�A��K����#�#�A�y��|�k�!�n�'D�E�E�E�E��&�&�q�)�A�,�7�7�7�7��	:�	:�A��I�~�~���&�&�q�+�a�.�9�9�9�9�		:�	:rc�x�|jD]}|�|���|�|j��dSr	)r�r�r�r�)rr;�withitems   r�
visit_WithzDefUseChains.visit_WithmsD���
�	!�	!�H��J�J�x� � � � ����$�)�$�$�$�$�$rc��|jr|�|j��|jr|�|j��dSdSr	)�excr��causerAs  r�visit_RaisezDefUseChains.visit_RaisetsN���8�	!��J�J�t�x� � � ��:�	#��J�J�t�z�"�"�"�"�"�	#�	#rc��|j�|jd�����|�|j��|�|j��|j���}|D]}|�|||���|jD]}}|j�tt����|�|��|j���}|D]}|�|||����~|�|j��dSr>)
r�r7r%r�r�r%r:r��handlersrrr��	finalbody)rr;�
failsafe_defsr��
excepthandler�handler_def�hds       r�	visit_TryzDefUseChains.visit_TryzsA���� � ��!2�2�!6�!;�!;�!=�!=�>�>�>����$�)�$�$�$����$�+�&�&�&��)�-�-�/�/�
��	8�	8�A��"�"�1�m�A�&6�7�7�7�7�!�]�	<�	<�M���$�$�[��%=�%=�>�>�>��J�J�}�%�%�%��+�/�/�1�1�K�!�
<�
<���&�&�r�;�r�?�;�;�;�;�
<�	
���$�.�)�)�)�)�)rc��|�|j��|jr|�|j��dSdSr	)r�r,�msgrAs  r�visit_AssertzDefUseChains.visit_Assert�sD���
�
�4�9�����8�	!��J�J�t�x� � � � � �	!�	!rc�<�|jD]�}|j�|t|����}|j�dd��d}|�|jp||��|j|j	d�
|����dS)Nr_r`rr?)r�r�r�rYrbrfr�rgr�r�r7)rr;re�daliasrjs     r�visit_ImportzDefUseChains.visit_Import�s����Z�	>�	>�E��[�+�+�E�3�u�:�:�>�>�F��:�#�#�C��+�+�A�.�D������ 4��f�=�=�=��K��)�"�-�.�5�5�f�=�=�=�=�		>�	>rc��|jD]w}|j�|t|����}|�|jp|j|��|j|jd�	|���xdSr>)
r�r�r�rYr�rgrbr�r�r7)rr;rerCs    r�visit_ImportFromzDefUseChains.visit_ImportFrom�s���Z�	>�	>�E��[�+�+�E�3�u�:�:�>�>�F������ :��
�F�C�C�C��K��)�"�-�.�5�5�f�=�=�=�=�	>�	>rc��|j�|t|����}|�|j��|jr|�|j��n<|jd���D]}|D]}|�|����|j	r|�|j	��nzt��}t|jdd���D]O}|���D]8\}}||vr/|�
|��|D]}|�|����9�P|�d|��dS)Nrr`r�)r�r�rYr�r��globalsr�rr]r�r�rFr�rr�)rr;r�r�r��visible_localsr��dnames        r�
visit_ExeczDefUseChains.visit_Exec�sy����&�&�t�S��Y�Y�7�7���
�
�4�9�����<�	&��J�J�t�|�$�$�$�$��)�!�,�3�3�5�5�
&�
&���&�&�A��J�J�u�%�%�%�%�&��;�
	.��J�J�t�{�#�#�#�#�!�U�U�N� (��):�1�2�2�)>� ?� ?�
.�
.��#/�#5�#5�#7�#7�.�.�K�E�4��N�2�2�&�*�*�5�1�1�1�!%�.�.�A��J�J�u�-�-�-�-��	.�	
���s�E�*�*�*�*�*rc�Z�|jD]"}|jd�|���#dSr>)r�r�rr�s   rr�zDefUseChains.visit_Global�s<���J�	0�	0�D��!�"�%�)�)�$�/�/�/�/�	0�	0rc���|jD]Y}t|jdd���D]$}||vr�|�|||��n|�||���ZdSr>)r�rFr�r�r�)rr;rbr�s    r�visit_NonlocalzDefUseChains.visit_Nonlocal�s����J�		4�		4�D��d�/����4�5�5�
4�
4���q�=�=���'�'��a��g�6�6�6��E��'�'��d�3�3�3��		4�		4rc�0�|�|��dSr	)r9rAs  r�
visit_ExprzDefUseChains.visit_Expr�s�����4� � � � � rc��|j�|t|����}|jD]*}|�|���|���+|Sr	�r�r�rYrr�r]�rr;r�rs    r�visit_BoolOpzDefUseChains.visit_BoolOp��X����&�&�t�S��Y�Y�7�7���[�	.�	.�E��J�J�u���&�&�u�-�-�-�-��rc�
�|j�|t|����}|�|j���|��|�|j���|��|Sr	)r�r�rYr��leftr]�right�rr;r�s   r�visit_BinOpzDefUseChains.visit_BinOp�sh����&�&�t�S��Y�Y�7�7���
�
�4�9���&�&�u�-�-�-��
�
�4�:���'�'��.�.�.��rc��|j�|t|����}|�|j���|��|Sr	)r�r�rYr��operandr]rYs   r�
visit_UnaryOpzDefUseChains.visit_UnaryOp�sF����&�&�t�S��Y�Y�7�7���
�
�4�<� � �)�)�%�0�0�0��rc��|tur^|j�|t|����}|jd�|t
|j��f��|S|tur�|j|}|�	|��5|�
|j��|�
|j���
|��ddd��n#1swxYwY|St���r>)r�r�r�rYr�r7r4r�r�r�r�r�r�r]r�)rr;r�r�s    r�visit_LambdazDefUseChains.visit_Lambda�s#���?�"�"��K�*�*�4��T���;�;�E��M�"��$�$�d�D��1B�,C�,C�%D�E�E�E��L�
�^�
#�
#��K��%�E��'�'��-�-�
6�
6��
�
�4�9�%�%�%��
�
�4�9�%�%�.�.�u�5�5�5�
6�
6�
6�
6�
6�
6�
6�
6�
6�
6�
6����
6�
6�
6�
6��L�%�'�'�'s�AC'�'C+�.C+c�d�|j�|t|����}|�|j���|��|�|j���|��|�|j���|��|Sr	)r�r�rYr�r,r]r�r%rYs   r�visit_IfExpzDefUseChains.visit_IfExp�s�����&�&�t�S��Y�Y�7�7���
�
�4�9���&�&�u�-�-�-��
�
�4�9���&�&�u�-�-�-��
�
�4�;���(�(��/�/�/��rc�:�|j�|t|����}td|j��D]*}|�|���|���+|jD]*}|�|���|���+|Sr	)r�r�rYr�rr�r]r)rr;r��keyrs     r�
visit_DictzDefUseChains.visit_Dict�s�����&�&�t�S��Y�Y�7�7���$��	�*�*�	,�	,�C��J�J�s�O�O�$�$�U�+�+�+�+��[�	.�	.�E��J�J�u���&�&�u�-�-�-�-��rc��|j�|t|����}|jD]*}|�|���|���+|Sr	)r�r�rY�eltsr�r]�rr;r��elts    r�	visit_SetzDefUseChains.visit_Set�sV����&�&�t�S��Y�Y�7�7���9�	,�	,�C��J�J�s�O�O�$�$�U�+�+�+�+��rc�n�|j�|t|����}|�|��5|jD]*}|�|���|���+|�|j���|��ddd��n#1swxYwY|Sr	)r�r�rYr��
generatorsr�r]rh�rr;r��
comprehensions    r�visit_ListCompzDefUseChains.visit_ListComps�����&�&�t�S��Y�Y�7�7��
�
'�
'��
-�
-�	1�	1�!%��
:�
:�
��
�
�=�)�)�2�2�5�9�9�9�9��J�J�t�x� � �)�)�%�0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�
�s�A B*�*B.�1B.c���|j�|t|����}|�|��5|jD]*}|�|���|���+|�|j���|��|�|j���|��ddd��n#1swxYwY|Sr	)	r�r�rYr�rkr�r]rcrrls    r�visit_DictCompzDefUseChains.visit_DictComp
s����&�&�t�S��Y�Y�7�7��
�
'�
'��
-�
-�	3�	3�!%��
:�
:�
��
�
�=�)�)�2�2�5�9�9�9�9��J�J�t�x� � �)�)�%�0�0�0��J�J�t�z�"�"�+�+�E�2�2�2�		3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3��s�B
C�C�Cc��|j�|t|����}|�|j���|��|Sr	)r�r�rYr�rr]rYs   r�visit_AwaitzDefUseChains.visit_AwaitsF����&�&�t�S��Y�Y�7�7���
�
�4�:���'�'��.�.�.��rc��|j�|t|����}|jr-|�|j���|��|Sr	)r�r�rYrr�r]rYs   r�visit_YieldzDefUseChains.visit_YieldsP����&�&�t�S��Y�Y�7�7���:�	3��J�J�t�z�"�"�+�+�E�2�2�2��rc��|j�|t|����}|�|j���|��|jD]*}|�|���|���+|Sr	)r�r�rYr�rWr]�comparators)rr;r��exprs    r�
visit_ComparezDefUseChains.visit_Compare's{����&�&�t�S��Y�Y�7�7���
�
�4�9���&�&�u�-�-�-��$�	-�	-�D��J�J�t���%�%�e�,�,�,�,��rc��|j�|t|����}|�|j���|��|jD]*}|�|���|���+|jD]/}|�|j���|���0|Sr	)	r�r�rYr��funcr]r�rr)rr;r��arg�kws     r�
visit_CallzDefUseChains.visit_Call.s�����&�&�t�S��Y�Y�7�7���
�
�4�9���&�&�u�-�-�-��9�	,�	,�C��J�J�s�O�O�$�$�U�+�+�+�+��-�	1�	1�B��J�J�r�x� � �)�)�%�0�0�0�0��rc�V�|j�|t|����}|Sr	)r�r�rYrYs   r�visit_ConstantzDefUseChains.visit_Constant9s$����&�&�t�S��Y�Y�7�7���rc��|j�|t|����}|�|j���|��|jr-|�|j���|��|Sr	)r�r�rYr�rr]�format_specrYs   r�visit_FormattedValuez!DefUseChains.visit_FormattedValue=st����&�&�t�S��Y�Y�7�7���
�
�4�:���'�'��.�.�.���	9��J�J�t�'�(�(�1�1�%�8�8�8��rc��|j�|t|����}|jD]*}|�|���|���+|Sr	rRrSs    r�visit_JoinedStrzDefUseChains.visit_JoinedStrDrUrc�
�|j�|t|����}|�|j���|��|�|j���|��|Sr	)r�r�rYr�rr]�slicerYs   r�visit_SubscriptzDefUseChains.visit_SubscriptLsh����&�&�t�S��Y�Y�7�7���
�
�4�:���'�'��.�.�.��
�
�4�:���'�'��.�.�.��rc���|j�|t|����}|�|j���|��|�|j��|Sr	)r�r�rYr�rr]rrYs   r�visit_NamedExprzDefUseChains.visit_NamedExprTsZ����&�&�t�S��Y�Y�7�7���
�
�4�:���'�'��.�.�.��
�
�4�;�����rc��t|jtjtjf���r|j�|t|����}|j|j	dvrU|�
|j|��||j|jvr%|j|j�
|��n`|�|j|��||j|jdvr+|j|jd�
|��|j�|�|j��n�t|jtjtjf��rb||jv}|r|j|}nt|��}|�|��D]}|�|���|s
||j|<nt-���|Sr>)rGr�rN�Param�Storer�r�rYrdr�r�r�r�r7r�r�rr�r�Delr�r]r�)rr;r��node_in_chainsr�s     r�
visit_NamezDefUseChains.visit_NameZs����d�h���C�I� 6�7�7�	(��K�*�*�4��T���;�;�E��w�$�/��3�3�3��&�&�t�w��6�6�6����D�K� 8�8�8��K���,�3�3�E�:�:�:���#�#�D�G�U�3�3�3����D�,=�b�,A� B�B�B��K�� 1�"� 5�6�=�=�e�D�D�D���*��
�
�4�?�+�+�+��
���3�8�S�W�"5�
6�
6�	(�!�T�[�0�N��
"���D�)����D�	�	���Y�Y�t�_�_�
"�
"���
�
�5�!�!�!�!�!�
*�$)���D�!��&�'�'�'��rc��|j�|t|����}tj��}|jD]�}t
|tj��r4|j|c}|_|�	|��|j|c}|_�Pt
|tj
��r|�	|����t
|tjtjf��r|�
|����|Sr	)r�r�rYrNr�rfrGrcr�r��	Subscript�List�Tuple�visit_Destructured)rr;r��	tmp_storerhs     rr�zDefUseChains.visit_Destructuredys�����&�&�t�S��Y�Y�7�7���I�K�K�	��9�	-�	-�C��#�s�x�(�(�
-�%(�W�i�"�	�3�7��
�
�3����%(�W�i�"�	�3�7�7��C���/�/�
-��
�
�3������C�#�(�C�I�!6�7�7�
-��'�'��,�,�,���rc�d�t|jtj��r\|j�|t
|����}|jD]*}|�|���	|���+|St|jtj
��r|�|��SdSr	)rGr�rNrr�r�rYrfr�r]r�r�rgs    r�
visit_ListzDefUseChains.visit_List�s����d�h���)�)�	1��K�*�*�4��T���;�;�E��y�
0�
0���
�
�3���(�(��/�/�/�/��L����#�)�
,�
,�	1��*�*�4�0�0�0�	1�	1rc��|j�|t|����}|jr-|�|j���|��|jr-|�|j���|��|jr-|�|j���|��|Sr	)r�r�rY�lowerr�r]�upperr�rYs   r�visit_SlicezDefUseChains.visit_Slice�s�����&�&�t�S��Y�Y�7�7���:�	3��J�J�t�z�"�"�+�+�E�2�2�2��:�	3��J�J�t�z�"�"�+�+�E�2�2�2��9�	2��J�J�t�y�!�!�*�*�5�1�1�1��rc�H�|j�|t|����}|�|j���|��|�|j��|jD]*}|�|���|���+|Sr	)r�r�rYr�rr]r�ifs)rr;r��if_s    r�visit_comprehensionz DefUseChains.visit_comprehension�s�����&�&�t�S��Y�Y�7�7���
�
�4�9���&�&�u�-�-�-��
�
�4�;�����8�	,�	,�C��J�J�s�O�O�$�$�U�+�+�+�+��rc�Z�|j�|t|����}|jr-|�|j���|��|jr-|�|j���|��|�|j��|Sr	)	r�r�rYrir�r]rbr�r�rYs   r�visit_excepthandlerz DefUseChains.visit_excepthandler�s�����&�&�t�S��Y�Y�7�7���9�	2��J�J�t�y�!�!�*�*�5�1�1�1��9�	2��J�J�t�y�!�!�*�*�5�1�1�1����$�)�$�$�$��rc�H�|jD]}|�|���|jD]}|�|���|jr|�|j��|jD]}|�|���|jr|�|j��dSdSr	)r�r��posonlyargs�vararg�
kwonlyargs�kwarg)rr;r{s   r�visit_argumentszDefUseChains.visit_arguments�s����9�	�	�C��J�J�s�O�O�O�O��#�	�	�C��J�J�s�O�O�O�O��;�	$��J�J�t�{�#�#�#��?�	�	�C��J�J�s�O�O�O�O��:�	#��J�J�t�z�"�"�"�"�"�	#�	#rc���|j�|t|����}|�|j���|��|jr|�|j��|Sr	)r�r�rYr��context_exprr]�
optional_varsrYs   r�visit_withitemzDefUseChains.visit_withitem�sg����&�&�t�S��Y�Y�7�7���
�
�4�$�%�%�.�.�u�5�5�5���	+��J�J�t�)�*�*�*��rr	)T)Pr,r-r.rUrr�r�r�r�r�r�r�rr�r�r�r��staticmethodr�r�r�r�visit_AsyncFunctionDefrrrr
rrrr r#r*�visit_AsyncForr-r/r2�visit_AsyncWithr6r>rArDrFrKr�rNrPrTrZr]r_rardrirn�
visit_SetComprp�visit_GeneratorExprrrt�visit_YieldFromrxr}�
visit_Reprrr�r��visit_Attributer��
visit_Starredr�r�r�r��visit_Tupler�r�r�r�r�rrrr�r��sc��������& � � � �H?�?�?�?����
E�
E�
E�������*	�	�	����� � ��^� ��	$�	$��^�	$�.!�.!�.!�`G�G�G��5�5��\�5�8�8�8�,;�(�(�(�(�6/��
)�
)�
)�#�#�#�&�&�&�
&�&�&�
������%�%�%�5�5�5�&���))�))�))�V�N�0)�0)�0)�d:�:�:�.%�%�%�
!�O�#�#�#�*�*�*�&!�!�!�
>�>�>�>�>�>�+�+�+�40�0�0�
4�
4�
4�!�!�!����������
'6�(�(�(�(�������������#�M�	�	�	�(�����
���"�O��������J����������"�O���� �M�������>���	1�	1�	1��K����������
#�
#�
#�����rr�c��eZdZdZd�Zd�ZdS)�UseDefChainsz�
    DefUseChains adaptor that builds a mapping between each user
    and the Def that defines this user:
        - chains: Dict[node, List[Def]], a mapping between nodes and the Defs
          that define it.
    c�*�i|_|j���D]�}t|jtj��r |j�|jg��|���D]5}|j�|jg���|���6��|j	���D]L}|���D]5}|j�|jg���|���6�MdSr	)
r�rrGr;rNrcr�rlr7r�)r�defuses�chain�uses    rrzUseDefChains.__init__�s������^�*�*�,�,�	C�	C�E��%�*�c�h�/�/�
7���&�&�u�z�2�6�6�6��{�{�}�}�
C�
C����&�&�s�x��4�4�;�;�E�B�B�B�B�
C��&�-�-�/�/�	C�	C�E��{�{�}�}�
C�
C����&�&�s�x��4�4�;�;�E�B�B�B�B�
C�	C�	Crc
��g}|j���D]}\}}t|�����}d�|d�t
d�|D��������}|�||f���~|���d�d�|D����S)Nz{} <- {{{}}}rsc3�>K�|]}|���V��dSr	r�)rr�s  rrz'UseDefChains.__str__.<locals>.<genexpr>�s*����'C�'C�s����
�
�'C�'C�'C�'C�'C�'Crc3� K�|]	\}}|V��
dSr	r)rr�ss   rrz'UseDefChains.__str__.<locals>.<genexpr>�s&����+�+�t�q�!��+�+�+�+�+�+r)	r�r�rYrbrIrxr�r7�sort)rr'r�uses�kname�kstrs      rr|zUseDefChains.__str__�s������{�(�(�*�*�	&�	&�G�A�t���F�F�K�K�M�M�E�!�(�(��t�y�y��'C�'C�d�'C�'C�'C�!C�!C�D�D���D�
�J�J��t�}�%�%�%�%����
�
�
��y�y�+�+�s�+�+�+�+�+�+rN)r,r-r.rUrr|rrrr�r��s?��������
C�
C�
C�	,�	,�	,�	,�	,rr��__main__c�2��eZdZ�fd�Zdd�Zd�Zd�Z�xZS)�Benigetc�R��tt|�����|pd|_t	��|_|j�|��t|j��|_|j�|��|�|��dS)Nz<stdin>)	r8r�rr�r0�	ancestorsr�r�r�)rr�r�r<s   �rrzBeniget.__init__�s�����'�4� � �)�)�+�+�+�$�1�	�D�M�&�[�[�D�N��N� � ��(�(�(�'��
�6�6�D�L��L���v�&�&�&��J�J�v�����rrc	��|jj|D]�}|���s�|���dkr�/t	|j|��r�E|j}t
|d��s*|j�|��}t
|d���*t	|tj
��r|jdkr��td�
|���|j|j|j������dS)Nr�r��
__future__z+W: '{}' is defined but not used at {}:{}:{})r�r�rlrbrGr;r�r�rBrN�
ImportFromr�r�rIr�r�r�)rr;�
skipped_types�	local_defr�s     r�check_unusedzBeniget.check_unused�s��!�\�0��6�
�
�	� ���(�(�� �~�~�'�'�3�.�.� �!�)�.�-�@�@�!� �(�~�H�%�h��9�9�C�#'�>�#8�#8��#B�#B��&�h��9�9�C�"�(�C�N�;�;�%�#�?�l�:�:�$��E�L�L�%�N�N�,�,� �M�$�O�$�/�	������
�
rc���|�|��|j�d��rdS|�|tjtjtjtjf���dS)Nz__init__.py)r�)	r9r��endswithr�rNrOrPrarcrAs  rr�zBeniget.visit_Modulest�����t�$�$�$��}�%�%�m�4�4�
�������S�_�c�6J�%(�\�3�8�%=�
�
�
�
�
�
rc�Z�|�|��|�|��dSr	)r9r�rAs  rrzBeniget.visit_FunctionDefs0�����t�$�$�$����d�#�#�#�#�#r)r)r,r-r.rr�r�rrVrWs@rr�r��sj�������	�	�	�	�	�	�	�	�	�2	�	�	�	$�	$�	$�	$�	$�	$�	$rr�r`r	)&�collectionsrr�
contextlibrr��gastrN�objectr�NodeVisitorr0rYr�r�r��__builtins__�BuiltinsSrcr��__dict__r�r�r�r�r�r�r�r,r��argv�paths�path�open�stdinr�parse�readr�rrr�<module>r�s���0�0�0�0�0�0�0�0�%�%�%�%�%�%�
�
�
�
����� � � � � �&� � � �203�03�03�03�03���03�03�03�f@�@�@�@�@�&�@�@�@�F�����Q����K�K��O�O�O��#�K�1�1�[�.�.�0�0�1�1�1������"(�&�(�(�F�F�H�H����4�4�4�4�4�S�_�4�4�4�W�W�W�W�W�3�?�W�W�W�t,�,�,�,�,�6�,�,�,�@�z����J�J�J�2$�2$�2$�2$�2$�#�/�2$�2$�2$�h
�H�Q�R�R�L�#�G�E��"�"���
.�T�T�$�Z�Z�Z�S�Y�	"�&��S�Y�v�{�{�}�}�-�-�F��G�D�&�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"��u��r"�"s�/E�E	�E	

Youez - 2016 - github.com/yon3zu
LinuXploit