GIF89a=( õ' 7IAXKgNgYvYx\%wh…hŽth%ˆs%—x¨}9®Œ©€&©‰%¶†(¹–.¹5·œD¹&Çš)ÇŸ5ǘ;Í£*È¡&Õ²)ׯ7×µ<Ñ»4ï°3ø‘HÖ§KͯT÷¨Yÿšqÿ»qÿÔFØ !ù ' !ÿ NETSCAPE2.0 , =( þÀ“pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§gª«ªE¯°¨¬ª±²Œ¹º¹E¾­”´ÂB¶¯ §Åȸ»ÑD¾¿Á•ÄÅ®° ÝH¾ÒLÀÆDÙ«D¶BÝïðÀ¾DÑÑÔTÌÍíH òGö¨A RÎڐ |¥ ٭&ºìE8œ¹kGÔAÞpx­a¶­ã R2XB®åE8I€Õ6Xî:vT)äžþÀq¦è³¥ì仕F~%xñ  4#ZÔ‰O|-4Bs‘X:= QÉ œš lºÒyXJŠGȦ|s hÏíK–3l7·B|¥$'7Jީܪ‰‡àá”Dæn=Pƒ ¤Òëí‰`䌨ljóá¯Éüv>á–Á¼5 ½.69ûϸd«­ºÀûnlv©‹ªîf{¬ÜãPbŸ  l5‘ޝpß ´ ˜3aÅùäI«O’ý·‘áÞ‡˜¾Æ‚ÙÏiÇÿ‹Àƒ #öó)pâš Þ½ ‘Ý{ó)vmÞü%D~ 6f s}ŃƒDØW Eþ`‡þ À…L8xá†ç˜{)x`X/> Ì}mø‚–RØ‘*|`D=‚Ø_ ^ð5 !_…'aä“OÚ—7âcð`D”Cx`ÝÂ¥ä‹éY¹—F¼¤¥Š?¡Õ™ n@`} lď’ÄÉ@4>ñd œ à‘vÒxNÃ×™@žd=ˆgsžG±æ ´²æud &p8Qñ)ˆ«lXD©øÜéAžHìySun jª×k*D¤LH] †¦§C™Jä–´Xb~ʪwStŽ6K,°£qÁœ:9ت:¨þªl¨@¡`‚ûÚ ».Û¬¯t‹ÆSÉ[:°=Š‹„‘Nåû”Ìî{¿ÂA ‡Rà›ÀÙ6úë°Ÿð0Ä_ ½;ÃϱîÉì^ÇÛÇ#Ëë¼ôº!±Ä˜íUîÅÇ;0L1óÁµö«p% AÀºU̬ݵ¼á%霼€‡¯Á~`ÏG¯»À× ­²± =4ªnpð3¾¤³¯­ü¾¦îuÙuµÙ®|%2ÊIÿür¦#0·ÔJ``8È@S@5ê¢ ö×Þ^`8EÜ]ý.뜃Âç 7 ú ȉÞj œ½Dç zý¸iþœÑÙûÄë!ˆÞÀl§Ïw‹*DçI€nEX¯¬¼ &A¬Go¼QföõFç°¯;é¦÷îŽêJ°îúôF5¡ÌQ|îúöXªæ»TÁÏyñêï]ê² o óÎC=öõ›ÒÓPB@ D×½œä(>èCÂxŽ`±«Ÿ–JЀ»Û á¤±p+eE0`ëŽ`A Ú/NE€Ø†À9‚@¤à H½7”à‡%B‰`Àl*ƒó‘–‡8 2ñ%¸ —€:Ù1Á‰E¸àux%nP1ð!‘ðC)¾P81lÑɸF#ˆ€{´âé°ÈB„0>±û °b¡Š´±O‚3È–Ù()yRpbµ¨E.Z‘D8ÊH@% òŒx+%Ù˜Æcü »¸˜fõ¬b·d`Fê™8èXH"ÉÈ-±|1Ô6iI, 2““¬$+](A*jÐ QTÂo‰.ÛU슬Œã„Ž`¯SN¡–¶Äåyše¯ª’­¬‚´b¦Éož œ)åyâ@Ì®3 ÎtT̉°&Ø+žLÀf"Ø-|žçÔ>‡Ðv¦Ðžì\‚ Q1)Ž@Žh#aP72”ˆ™¨$‚ !ù " , =( …7IAXG]KgNgYvYxR"k\%w]'}hŽth%ˆg+ˆs%—r.—m3šx3˜x¨}9®€&©€+¨‡7§‰%¶†(¹–.¹œD¹&ǘ;Í•&ײ)×»4ïÌ6ò§KÍ þ@‘pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§g «¬ E ±± ¨­¶°ººE Á´”·®C¬²§Ç¶Œ»ÓDÃÕƷ¯Ê±H½ºM×ÁGÚ¬D¶BËÁ½î½DÓôTÏÛßîG»ôõC×CÌ l&âž:'òtU³6ɹ#·Ø)€'Ü.6±&ëÍÈ» K(8p0N?!æ2"ÛˆNIJX>R¼ÐO‚M '¡¨2¸*Ÿþ>#n↠å@‚<[:¡Iïf’ ¤TÚ˘CdbÜÙ“[«ŽEú5MBo¤×@€`@„€Êt W-3 ¶Ÿ¡BíêäjIÝ…Eò9[T…$íêﯧ„…•s»Óȳ¹€ÅÚdc®UUρ#±Ùïldj?´í¼²`\ŽÁðÞu|3'ÖŒ]ë6 ¶S#²‡˜FKLÈ *N E´‘áäŠ$˜›eÄYD„ºq«.è촁ƒs \-ÔjA 9²õ÷å- üúM[Âx(ís÷ì®x€|í¡Ù’p¦‚ ŽkÛTÇDpE@WÜ ²Ç]kŠ1¨ þ€·Yb ÓÁ‰l°*n0 ç™—žzBdОu¾7ĉBl€â‰-ºx~|UåU‰  h*Hœ|e"#"?vpÄiŠe6^ˆ„+qâŠm8 #VÇá ‘å–ÄV„œ|Аè•m"сœn|@›U¶ÆÎž—Špb¥G¨ED”€±Úê2FÌIç? >Éxå Œ± ¡¤„%‘žjŸ‘ꄯ<Ìaà9ijÐ2˜D¦È&›†Z`‚å]wþ¼Â:ç6àB¤7eFJ|õÒ§Õ,¨äàFÇ®cS·Ê¶+B°,‘Þ˜ºNûãØ>PADÌHD¹æž«ÄÀnÌ¥}­#Ë’ë QÀÉSÌÂÇ2ÌXÀ{æk²lQÁ2«ÊðÀ¯w|2Í h‹ÄÂG€,m¾¶ë3ÐÙ6-´ÅE¬L°ÆIij*K½ÀÇqï`DwVÍQXœÚÔpeœ±¬Ñ q˜§Tœ½µƒ°Œìu Â<¶aØ*At¯lmEØ ü ôÛN[P1ÔÛ¦­±$ÜÆ@`ùåDpy¶yXvCAyåB`ŽD¶ 0QwG#¯ æš[^Äþ $ÀÓÝǦ{„L™[±úKÄgÌ;ï£S~¹ìGX.ôgoT.»åˆ°ùŸûù¡?1zö¦Ÿž:ÅgÁ|ìL¹ „®£œŠ‚à0œ]PÁ^p F<"•ç?!,ñ‡N4—…PÄ Á„ö¨Û:Tè@hÀ‹%táÿ:ø-žI<`þ‹p I….)^ 40D#p@ƒj4–؀:²‰1Øâr˜¼F2oW¼#Z†;$Q q” ‘ ÂK¦ñNl#29 !’F@¥Bh·ᏀL!—XFóLH‘Kh¤.«hE&JòG¨¥<™WN!€ÑÙÚˆY„@†>Œž19J" 2,/ &.GXB%ÌRÈ9B6¹W]’î×ÔW¥’IÎ$ ñ‹ÓŒE8YÆ ¼³™ñA5“à®Q.aŸB€&Ø©³ JÁ—! ¦t)K%tœ-¦JF bòNMxLôþ)ÐR¸Ð™‘ èÝ6‘O!THÌ„HÛ ‰ !ù ) , =( …AXKgNgYvYxR"k\%wh…hŽh%ˆg+ˆs%—r.—x3˜x¨}9®€&©€+¨Œ,©‡7§‰%¶†(¹–.¹5·&Çš)ǘ;Í•&×£*Ȳ)ׯ7×»4ï°3øÌ6ò‘HÖ§KÍ»Hó¯T÷¨Yÿ»qÿÇhÿ þÀ”pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§g ª« E$±²¨ª­ · °²½$E$ÂÕ««D· Í ¿¦Ç¶¸ÌŒ¾³CÃÅÆ E ééH½MÛÂGâªD­ çBêêϾD²ÒaÀà€Š1r­ðÓ¤ ÔožzU!L˜C'¾yW½UGtäÇïÙllê0×àÂuGþ)AÀs[þ·xì ÁxO%ƒûX2ó—  P£n›R/¡ÑšHše+êDm?# —‘Ç£6¡8íJ¡ŸâDiäªM¥Ö„ôj“¬¹£5oQ7°- <‡ *´lãÓŒ2r/a!l)dÈ A™ÈE¢ôÔ͆…ð ;Ö˜c ¡%ß‚’Ùˆâ¸b½—pe~C"BíëÚHïeF2§æŠ8qb t_`urŠeü wÅu3êæPv§h•"ß`íÍxçLĹÜÖ3á  ~Öº“®›¸ÏMDfJÙ °„ÛµáWõ%§œ‚à©–‚X ÓØ)@®Ñ›Eþ´wëuÅSxb8y\mÖzœ¥§ZbºE—ÂLªÌw!y(>¡™wú=Ç|ÅÝs¢d €CÁW)HÜcC$€L Ä7„r.á\{)@ð` @ äXÈ$PD” `šaG:§æˆOˆ72EÐamn]ù"ŒcÊxÑŒ° &dR8`g«iÙŸLR!¦P …d’ä¡“¦ðÎTƒ¦ià|À _ ¥ Qi#¦Šg›Æ ›noMµ ›V ã£)p ç£ÎW…š=Âeªk§†j„ ´®1ß²sÉxéW«jšl|0¯B0Û, \jÛ´›6±¬¶C ÛíWþï|ëÙ‹¸ñzĸV {ì;Ýñn¼òVˆm³I¼³.Ðã¤PN¥ ²µ¼„µCã+¹ÍByî£Ñ¾HŸ›ëê 7ìYÆFTk¨SaoaY$Dµœìï¿Ã29RÈkt Çïfñ ÇÒ:ÀÐSp¹3ÇI¨â¥DZÄ ü9Ïýögñ½­uÔ*3)O‘˜Ö[_hv ,àî×Et Ÿé¶BH€ Õ[ü±64M@ÔSÌM7dÐl5-ÄÙU܍´©zߌ3Ô€3ž„ „ ¶ÛPô½5×g› êÚ˜kN„Ý…0Îj4€Ìë°“#{þÕ3S2çKÜ'ợlø¼Ú2K{° {Û¶?žm𸧠ËI¼nEò='êüóºè^üæÃ_Û=°óž‚ì#Oý¿Í'¡½áo..ÏYìnüñCœO±Áa¿¢Kô½o,üÄËbö²çºíï{ËC Ú— "”Ï{ËK ÍÒw„õ±Oz dÕ¨à:$ ƒô—«v»] A#ð «€¿šéz)Rx׿ˆ¥‚d``èw-îyÏf×K!ð€þ­Ð|ìPľ„=Ì`ý(f” 'Pa ¥ÐBJa%Ðâf§„%Š¡}FàáÝ×6>ÉäŠG"éŽè=ø!oа^FP¼Ø©Q„ÀCÙÁ`(Ž\ÄÝ® ©Â$<n@dÄ E#ììUÒI! ‚#lù‹`k¦ÐÇ'Rró’ZýNBÈMF Í[¤+‹ðɈ-áwj¨¥þ8¾rá ,VÂh„"|½œ=×G_¦Ñ™EØ 0i*%̲˜Æda0mV‚k¾)›;„&6 p>ÓjK “¦Ç# âDÂ:ûc?:R Ó¬fÞéI-Ì“•Ã<ä=™Ï7˜3œ¨˜c2ŒW ,ˆ”8(T™P‰F¡Jhç"‚ ; 403WebShell
403Webshell
Server IP : 172.67.177.218  /  Your IP : 216.73.216.66
Web Server : LiteSpeed
System : Linux premium229.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
User : akhalid ( 749)
PHP Version : 8.3.22
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/cloudlinux/venv/lib/python3.11/site-packages/astroid/nodes/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/cloudlinux/venv/lib/python3.11/site-packages/astroid/nodes/__pycache__/node_ng.cpython-311.pyc
�

�hHn���ddlmZddlZddlZddlZddlmZmZddlm	Z
ddlmZm
Z
mZmZmZmZmZmZmZddlmZmZddlmZddlmZmZmZmZmZdd	l m!Z!dd
l"m#Z#ddl$m%Z%ddl&m'Z'dd
l(m)Z)m*Z*m+Z+erddlm,Z,ej-dkrddlm.Z.nddl/m.Z.ej-dkrddlm0Z0nddl1m2Z0edd���Z3edd���Z4edd���Z5ededeeddffZ6Gd�d��Z7dS)�)�annotationsN)�	Generator�Iterator)�singledispatch)	�
TYPE_CHECKING�Any�ClassVar�Tuple�Type�TypeVar�Union�cast�overload)�
decorators�util)�InferenceContext)�AstroidError�InferenceError�ParentMissingError�StatementMissing�UseInferenceDefault)�AstroidManager��AsStringVisitor)�
OP_PRECEDENCE)�Position)�InferenceErrorInfo�InferenceResult�InferFn)�nodes)��)�Literal)�cached_property)�cachedproperty�_NodesT�NodeNG)�bound�_NodesT2�_NodesT3.c���eZdZUdZdZded<	dZded<	dZded<	dZded<dZ	d	ed
<	dZ
d	ed<	dZd	ed<	d
Zded<			dkd
d
d�dld�Z
	dmdnd �Zdod"�Zdod#�Zdod$�Zd%�Zdpd'�Zdqd(�Zdpd)�Zdrd+�Zed,d-�dsd0���Zedtd3���Zd
d-�dud5�Zd
d-�dvd7�Zdwd9�Zdxd;�Zd<�Zd=�Zd>�Zd?�Ze dyd@���Z!e dydA���Z"dydB�Z#dC�Z$dzdF�Z%e	d{d|dL���Z&e	d{d}dO���Z&e	d{d~dR���Z&e	d{ddT���Z&	dmd�dV�Z&e'j(dW���Z)dX�Z*dY�Z+dZ�Z,d[�Z-	dmd�d]�Z.d^�Z/d_�Z0drd`�Z1drda�Z2drdb�Z3dodc�Z4						d�dodg�Z5dmd�dh�Z6di�Z7d�dj�Z8d
S)�r'zlA node of the new Abstract Syntax Tree (AST).

    This is the base class for all Astroid node classes.
    FzClassVar[bool]�is_statement�optional_assign�is_function�	is_lambda�zClassVar[tuple[str, ...]]�_astroid_fields�
_other_fields�_other_other_fieldsNzInferFn | None�_explicit_inference)�
end_lineno�end_col_offset�lineno�
int | None�
col_offset�parent�
NodeNG | Noner5r6�return�Nonec�d�||_	||_	||_	||_	||_	d|_dS)a�
        :param lineno: The line that this node appears on in the source code.

        :param col_offset: The column that this node appears on in the
            source code.

        :param parent: The parent node in the syntax tree.

        :param end_lineno: The last line this node appears on in the source code.

        :param end_col_offset: The end column this node appears on in the
            source code. Note: This is after the last symbol.
        N)r7r9r:r5r6�position)�selfr7r9r:r5r6s      �f/builddir/build/BUILD/cloudlinux-venv-1.0.8/venv/lib/python3.11/site-packages/astroid/nodes/node_ng.py�__init__zNodeNG.__init__]sL��,#)���D�&0���F�%+���1�&0���D�*8���	�
*.��
�	�	��context�InferenceContext | None�kwargsr�&Generator[InferenceResult, None, None]c+�K�|�|j�||��}|j�V	t|j||fi|����}|�|xjt|��z
c_|Ed{V��dS#t$rYnwxYw|s|jdd|i|��Ed{V��dS||j|j	|j
f}||jvr|j|Ed{V��dSg}tj
}t|jdd|i|����D]s\}}||ks|j|jkr/|�t"j��t"jV�n*|�|��|V�|xjdz
c_�tt'|��|j|<dS)aVGet a generator of the inferred values.

        This is the main entry point to the inference system.

        .. seealso:: :ref:`inference`

        If the instance has some explicit inference function set, it will be
        called instead of the default interface.

        :returns: The inferred values.
        :rtype: iterable
        NrD�r0)�
extra_context�getr4�list�nodes_inferred�lenr�_infer�
lookupname�callcontext�	boundnode�inferredr�max_inferable_values�	enumerate�max_inferred�appendr�Uninferable�tuple)r@rDrF�results�key�limit�i�results        rA�inferzNodeNG.infer�s
�������+�/�/��g�>�>�G��#�/�
��7�t�7��g�P�P��P�P�Q�Q���&��*�*�c�'�l�l�:�*�*�"�"�"�"�"�"�"�"����&�
�
�
���
�����	�"�t�{�=�=�7�=�f�=�=�=�=�=�=�=�=�=��F��W�'��)<�g�>O�P���'�"�"�"��'��,�,�,�,�,�,�,�,��F����3��"�;�4�;�#I�#I�w�#I�&�#I�#I�J�J�	(�	(�I�A�v��E�z�z�g�4�w�7K�K�K����t�/�0�0�0��&�&�&�&����N�N�6�"�"�"��L�L�L��"�"�a�'�"�"�"�!&�g��������s�AA-�-
A:�9A:�strc���t�fd�dD����r"t�dd��pt�dd��SdS)z�Get a name for nice representation.

        This is either :attr:`name`, :attr:`attrname`, or the empty string.

        :returns: The nice name.
        :rtype: str
        c3�*�K�|]
}|�jvV��dS�N)r1)�.0�namer@s  �rA�	<genexpr>z$NodeNG._repr_name.<locals>.<genexpr>�s+�����Q�Q�D�t�4�/�/�Q�Q�Q�Q�Q�QrC)re�attrnamere�rg)�all�getattr�r@s`rA�
_repr_namezNodeNG._repr_name�sT����Q�Q�Q�Q�<P�Q�Q�Q�Q�Q�	N��4���,�,�M���j�"�0M�0M�M��rrCc��|���}t|��j}|r%d}t|��t|��zdz}nd}t|��dz}g}|j|jzD]�}t
||��}dt|��z
|z
}tj|d|����	d��}	|	dg}
|	dd�D]}|
�
d	|z|z���|�
|�d
d�|
��������|||dd	|zz�|��d
�zS)Nz%(cname)s.%(rname)s(%(fields)s)�z%(cname)s(%(fields)s)rI�P)�indent�widthTr� �=rh�,
)�cname�rname�fields)rl�type�__name__rNr2r1rj�pprint�pformat�
splitlinesrW�join)r@rvru�string�	alignmentr^�field�valuerq�lines�inner�lines            rA�__str__zNodeNG.__str__�sg�����!�!���T�
�
�#���	'�6�F��E�
�
�S��Z�Z�/�!�3�I�I�,�F��E�
�
�Q��I����'�$�*>�>�	7�	7�E��D�%�(�(�E���U���O�i�/�E��N�5��%�@�@�@�K�K�D�Q�Q�E��1�X�J�E��a�b�b�	�
5�
5�����S�9�_�t�3�4�4�4�4��M�M�U�5�5�R�W�W�U�^�^�5�5�6�6�6�6�����s�Y��.�4�4�V�<�<�
�
�
�	
rCc��|���}|rd}nd}|t|��j||jt	|��d�zS)Nz.<%(cname)s.%(rname)s l.%(lineno)s at 0x%(id)x>z$<%(cname)s l.%(lineno)s at 0x%(id)x>)rurvr7�id)rlrxry�
fromlinenor�)r@rvr~s   rA�__repr__zNodeNG.__repr__�sY�����!�!���	<�E�F�F�;�F���$�Z�Z�(���o��T�(�(�	
�
�
�	
rCc�v�t|d|jj���z��}||��S)z(Visit this node using the given visitor.�visit_)rj�	__class__ry�lower)r@�visitor�funcs   rA�acceptz
NodeNG.accept�s5���w��4�>�+B�+H�+H�+J�+J� J�K�K���t�D�z�z�rC�Iterator[NodeNG]c#�K�|jD]>}t||��}|��t|ttf��r	|Ed{V���:|V��?dEd{V��dS)z$Get the child nodes below this node.Nr0�r1rj�
isinstancerLrY�r@r��attrs   rA�get_childrenzNodeNG.get_children�sx�����)�	�	�E��4��'�'�D��|���$��u�
�.�.�
�����������
�
�
�
��
�
�
�
�
�
�
�
�
rCc��|jddd�D]>}t||��}|s�t|ttf��r
|dcS|cSdS)z1An optimized version of list(get_children())[-1].N���r�r�s   rA�
last_childzNodeNG.last_child
sj���)�$�$�B�$�/�	�	�E��4��'�'�D��
���$��u�
�.�.�
 ��B�x�����K�K�K��trCc#�:K�|j}|�|V�|j}|�
dSdS)z7Yield parent, grandparent, etc until there are no more.N)r:)r@r:s  rA�node_ancestorszNodeNG.node_ancestorss7�������� ��L�L�L��]�F�� � � � � rC�boolc�^��t�fd�|���D����S)z�Check if this node is the parent of the given node.

        :param node: The node to check if it is the child.
        :type node: NodeNG

        :returns: Whether this node is the parent of the given node.
        c3� �K�|]}�|uV��	dSrcr0)rdr:r@s  �rArfz#NodeNG.parent_of.<locals>.<genexpr>$s'�����F�F�f�4�6�>�F�F�F�F�F�FrC)�anyr��r@�nodes` rA�	parent_ofzNodeNG.parent_ofs4����F�F�F�F��0C�0C�0E�0E�F�F�F�F�F�FrC.��futurer��nodes.Statement | nodes.Modulec��dSrcr0�r@r�s  rA�	statementzNodeNG.statement&����rC�
Literal[True]�nodes.Statementc��dSrcr0r�s  rAr�zNodeNG.statement*r�rC�Literal[None, True]c���|jrtd|��S|js@|rt|����t	jdtd���t|�d����|j�|���S)aPThe first parent node, including self, marked as statement node.

        TODO: Deprecate the future parameter and only raise StatementMissing and return
        nodes.Statement

        :raises AttributeError: If self has no parent attribute
        :raises StatementMissing: If self has no parent attribute and future is True
        r���targetz�In astroid 3.0.0 NodeNG.statement() will return either a nodes.Statement or raise a StatementMissing exception. AttributeError will no longer be raised. This behaviour can already be triggered by passing 'future=True' to a statement() call.rn��
stacklevel�! object has no attribute 'parent'r�)	r,rr:r�warnings�warn�DeprecationWarning�AttributeErrorr�r�s  rAr�zNodeNG.statement.s�����	1��)�4�0�0�0��{�	M��
4�&�d�3�3�3�3��M�B�#��

�
�
�
�!�D�!K�!K�!K�L�L�L��{�$�$�F�$�3�3�3rC�@nodes.FunctionDef | nodes.Module | nodes.ClassDef | nodes.Lambdac���|j�@|rt|����tjdtd���t|�d����|j�|���S)z�The first parent frame node.

        A frame node is a :class:`Module`, :class:`FunctionDef`,
        :class:`ClassDef` or :class:`Lambda`.

        :returns: The first parent frame node.
        Nr�z�In astroid 3.0.0 NodeNG.frame() will return either a Frame node, or raise ParentMissingError. AttributeError will no longer be raised. This behaviour can already be triggered by passing 'future=True' to a frame() call.rnr�r�r�)r:rr�r�r�r��framer�s  rAr�zNodeNG.frameIs}���;���
6�(��5�5�5�5��M�>�#��

�
�
�
�!�D�!K�!K�!K�L�L�L��{� � �� �/�/�/rC�nodes.LocalsDictNodeNGc�b�|jst|����|j���S)z�The first parent node defining a new scope.

        These can be Module, FunctionDef, ClassDef, Lambda, or GeneratorExp nodes.

        :returns: The first parent scope node.
        r�)r:r�scoperks rAr�zNodeNG.scopebs3���{�	2�$�D�1�1�1�1��{� � �"�"�"rC�nodes.Modulec�F�|jr|j���S|S)zSReturn the root node of the syntax tree.

        :returns: The root node.
        )r:�rootrks rAr�zNodeNG.rootms'��
�;�	&��;�#�#�%�%�%��rCc���|jD]?}t||��}||ur|gcSt|ttf��r||vr|cS�@d}t|t
|��t
|��fz���)a_Search for the sequence that contains this child.

        :param child: The child node to search sequences for.
        :type child: NodeNG

        :returns: The sequence containing the given child node.
        :rtype: iterable(NodeNG)

        :raises AstroidError: If no sequence could be found that contains
            the given child.
        �"Could not find %s in %s's children�r1rjr�rYrLr�repr�r@�childr��node_or_sequence�msgs     rA�child_sequencezNodeNG.child_sequencevs����)�		(�		(�E�&�t�U�3�3���5�(�(�(�)�)�)�)��+�e�T�]�;�;�
(��-�-�-�'�'�'�'��2���3�$�u�+�+�t�D�z�z�!:�:�;�;�;rCc��|jD]B}t||��}||ur||fcSt|ttf��r
||vr||fcS�Cd}t|t
|��t
|��fz���)a�Find the field of this node that contains the given child.

        :param child: The child node to search fields for.
        :type child: NodeNG

        :returns: A tuple of the name of the field that contains the child,
            and the sequence or node that contains the child node.
        :rtype: tuple(str, iterable(NodeNG) or NodeNG)

        :raises AstroidError: If no field could be found that contains
            the given child.
        r�r�r�s     rA�locate_childzNodeNG.locate_child�s����)�		/�		/�E�&�t�U�3�3���(�(�(��e�|�#�#�#��+�e�T�]�;�;�
/��-�-�-��.�.�.�.�.��2���3�$�u�+�+�t�D�z�z�!:�:�;�;�;rCc�4�|j���S)z|The next sibling statement node.

        :returns: The next sibling statement node.
        :rtype: NodeNG or None
        )r:�next_siblingrks rAr�zNodeNG.next_sibling�s���{�'�'�)�)�)rCc�4�|j���S)zThe previous sibling statement.

        :returns: The previous sibling statement node.
        :rtype: NodeNG or None
        )r:�previous_siblingrks rAr�zNodeNG.previous_sibling�s���{�+�+�-�-�-rCc�F�|j�|���S|jS)z<The first line that this node appears on in the source code.)r7�_fixed_source_linerks rAr�zNodeNG.fromlineno�s&���;���*�*�,�,�,��{�rCc�z�|j�|jS|jsd}n|���}|�|jS|jS)z;The last line that this node appears on in the source code.N)r5r1r�r��tolineno)r@r�s  rAr�zNodeNG.tolineno�sL���?�&��?�"��#�	+��J�J����*�*�J����?�"��"�"rCc���|j}|}	|�*t|�����}|j}|�*n-#t$r |j}|r|�|j}|j}|r|�YnwxYw|S)z�Attempt to find the line that this node appears on.

        We need this method since not all nodes have :attr:`lineno` set.
        )r7�nextr��
StopIterationr:)r@r��_noder:s    rAr�zNodeNG._fixed_source_line�s���
�{����	'��,��U�/�/�1�1�2�2���|���,����	'�	'�	'��[�F��
'�T�\��}������
'�T�\���	'����
�s�,8�'A"�!A"c��||jfS)a@Get a range from the given line number to where this node ends.

        :param lineno: The line number to start the range at.
        :type lineno: int

        :returns: The range of line numbers that this node belongs to,
            starting at the given line number.
        :rtype: tuple(int, int or None)
        )r�)r@r7s  rA�block_rangezNodeNG.block_range�s���t�}�$�$rCre�stmtc�N�|jsJ�|j�||��dS)a$Define that the given name is declared in the given statement node.

        This definition is stored on the parent scope node.

        .. seealso:: :meth:`scope`

        :param name: The name that is being defined.

        :param stmt: The statement that defines the given name.
        N)r:�	set_local)r@rer�s   rAr�zNodeNG.set_local�s/���{���{�����d�D�)�)�)�)�)rC�klass�
type[_NodesT]�
skip_klass�
SkipKlassT�Iterator[_NodesT]c��dSrcr0�r@r�r�s   rA�nodes_of_classzNodeNG.nodes_of_class�	��	�rC�$tuple[type[_NodesT], type[_NodesT2]]�&Iterator[_NodesT] | Iterator[_NodesT2]c��dSrcr0r�s   rAr�zNodeNG.nodes_of_class	r�rC�4tuple[type[_NodesT], type[_NodesT2], type[_NodesT3]]�;Iterator[_NodesT] | Iterator[_NodesT2] | Iterator[_NodesT3]c��dSrcr0r�s   rAr�zNodeNG.nodes_of_classr�rC�tuple[type[_NodesT], ...]c��dSrcr0r�s   rAr�zNodeNG.nodes_of_classr�rC��type[_NodesT] | tuple[type[_NodesT], type[_NodesT2]] | tuple[type[_NodesT], type[_NodesT2], type[_NodesT3]] | tuple[type[_NodesT], ...]c#�(K�t||��r|V�|�5|���D]}|�||��Ed{V���dS|���D]/}t||��r�|�||��Ed{V���0dS)a+Get the nodes (including this one or below) of the given types.

        :param klass: The types of node to search for.

        :param skip_klass: The types of node to ignore. This is useful to ignore
            subclasses of :attr:`klass`.

        :returns: The node of the given types.
        N)r�r�r�)r@r�r��
child_nodes    rAr�zNodeNG.nodes_of_class!s�����&�d�E�"�"�	��J�J�J���"�/�/�1�1�
H�
H�
�%�4�4�U�J�G�G�G�G�G�G�G�G�G�G��F��+�+�-�-�	D�	D�J��*�j�1�1�
��!�0�0��
�C�C�C�C�C�C�C�C�C�C�	D�	DrCc��gSrcr0rks rA�_get_assign_nodeszNodeNG._get_assign_nodesBs���	rCc#�lK�|���D]}|���Ed{V���dSrc)r��_get_name_nodes)r@r�s  rAr�zNodeNG._get_name_nodesFsR�����+�+�-�-�	4�	4�J�!�1�1�3�3�3�3�3�3�3�3�3�3�	4�	4rCc#�K�dEd{V��dS�Nr0r0rks rA� _get_return_nodes_skip_functionsz'NodeNG._get_return_nodes_skip_functionsJ������
�
�
�
�
�
�
�
�
rCc#�K�dEd{V��dSr�r0rks rA�_get_yield_nodes_skip_lambdasz$NodeNG._get_yield_nodes_skip_lambdasMr�rCc��dSrcr0)r@r�res   rA�_infer_namezNodeNG._infer_namePs���rC�;Generator[InferenceResult, None, InferenceErrorInfo | None]c�&�td||����)z4We don't know how to resolve a statement by default.z#No inference function for {node!r}.)r�rD)r)r@rDrFs   rArOz
NodeNG._inferTs"��
�1��g�
�
�
�	
rCc�D�t|�����S)z�Get a list of the inferred values.

        .. seealso:: :ref:`inference`

        :returns: The inferred values.
        :rtype: list
        )rLr_rks rArSzNodeNG.inferred]s���D�J�J�L�L�!�!�!rCc��|S)z�Instantiate an instance of the defined class.

        .. note::

            On anything other than a :class:`ClassDef` this will return self.

        :returns: An instance of the defined class.
        :rtype: object
        r0rks rA�instantiate_classzNodeNG.instantiate_classgs	���rCc��dS)z�Check if this node inherits from the given type.

        :param node: The node defining the base to look for.
            Usually this is a :class:`Name` node.
        :type node: NodeNG
        Fr0r�s  rA�has_basezNodeNG.has_basess	���urCc��dS)z�Whether this node defines something that is callable.

        :returns: Whether this defines something that is callable.
        Fr0rks rA�callablezNodeNG.callable|s	��
�urCc��dS)NFr0)r@r�s  rA�eqz	NodeNG.eq�s���urCc�0�t��|��S)z.Get the source code that this node represents.rrks rA�	as_stringzNodeNG.as_string�s�� �� � ��&�&�&rC�   rroc�z�������
�td�fd�	���
�
�t���
�t��d�
�fd�	����}�
�t��d�
�����fd�	��}g}	�
||	t����d�|	��S)aGet a string representation of the AST from this node.

        :param ids: If true, includes the ids with the node type names.
        :type ids: bool

        :param include_linenos: If true, includes the line numbers and
            column offsets.
        :type include_linenos: bool

        :param ast_state: If true, includes information derived from
            the whole AST like local and global variables.
        :type ast_state: bool

        :param indent: A string to use to indent the output string.
        :type indent: str

        :param max_depth: If set to a positive integer, won't return
            nodes deeper than max_depth in the string.
        :type max_depth: int

        :param max_width: Attempt to format the output string to stay
            within this number of characters, but can exceed it under some
            circumstances. Only positive integer values are valid, the default is 80.
        :type max_width: int

        :returns: The string representation of the AST.
        :rtype: str
        rhrIc	�B���tj|t�t���z
d������d��}|�|d��|��fd�|dd�D����t|��dkS)z�Outputs a representation of a non-tuple/list, non-node that's
            contained within an AST, including strings.
            rI)rqTrc���g|]}�|z��Sr0r0)rdr��
cur_indents  �rA�
<listcomp>z8NodeNG.repr_tree.<locals>._repr_tree.<locals>.<listcomp>�s���C�C�C��:��,�C�C�CrCN)rzr{�maxrNr|rW�extend)r�r^�doner�depthr��	max_widths   `  �rA�
_repr_treez$NodeNG.repr_tree.<locals>._repr_tree�s�����
�N��C�	�C�
�O�O� ;�Q�?�?�����j����
�
�M�M�%��(�#�#�#��M�M�C�C�C�C��q�r�r��C�C�C�D�D�D��u�:�:��?�"rCc����|�z
}|�d��|sd}�n3t|��dkr�|d||||��}�n	t|��dkro�|d||||��}|s|�d��n*|�d��|�|���|d||||��p|}n�|�d��|�|��|d	d
�D];}�|||||��|�d��|�|���<�|d
||||��d}|�d��|S)
z_Outputs a representation of a sequence that's contained within an
            AST.
            �[FrIrrnz, rt�
Nr�T�])rWrN)	r�r^rrr�brokenr�rrps	       ��rA�	_repr_seqz#NodeNG.repr_tree.<locals>._repr_seq�s����
�&� �J��M�M�#�����
�����T���a���#��D��G�V�T�:�u�M�M����T���a���#��D��G�V�T�:�u�M�M���.��M�M�$�'�'�'�'��M�M�%�(�(�(��M�M�*�-�-�-�#��D��G�V�T�:�u�M�M�W�QW����
�
�d�#�#�#��
�
�j�)�)�)�!�#�2�#�Y�.�.�E��J�u�f�d�J��F�F�F��M�M�%�(�(�(��M�M�*�-�-�-�-��
�4��8�V�T�:�u�E�E�E����M�M�#�����MrCc	�L��||vr?|��dt|��j�dt|����z��dS|�|���
r|�
kr|�d��dS|dz
}|�z
}�
r<|�t|��j�dt|��d�d���n*|�t|��j�d	���g}�r|�d
��|�|j��|�|j���	r|�|j��|sd}�n5t|��dkrB|�|d�d����t||d��||||��}n�|�d
��|�|��|dd�D]h}|dkr�	|�|�d����t||��||||��|�d��|�|���i|�|d�d����t||d��||||��d}|�d��|S)z4Outputs a strings representation of an astroid node.z<Recursion on z	 with id=Fz...rIz<0x�xz>(
�()r7r9rrsrNr��docrtT�))rWrxryr��addrr2r1r3rNrj)r�r^rrrrwrr�r�	ast_state�ids�include_linenosrp�	max_depths        ������rA�
_repr_nodez$NodeNG.repr_tree.<locals>._repr_node�s�����t�|�|��
�
��V�d�4�j�j�.A�V�V�B�t�H�H�V�V�V�����u��H�H�T�N�N�N��
�U�Y�.�.��
�
�e�$�$�$��u��Q�J�E��&� �J��
9��
�
��d���!4�I�I��D���I�I�I�I�J�J�J�J��
�
��d���!4�7�7�7�8�8�8��F��
8��
�
�6�7�7�7��M�M�$�,�-�-�-��M�M�$�.�/�/�/��
8��
�
�d�6�7�7�7��
�����V����!�!��
�
����o�o�o�.�.�.�#���D�&��)�,�,�f�d�J�������
�
�d�#�#�#��
�
�j�)�)�)�#�C�R�C�[�.�.�E���~�~� ��M�M�U�+�+�+�.�.�.��J�w�t�U�3�3�V�T�:�u�U�U�U��M�M�%�(�(�(��M�M�*�-�-�-�-��
�
����.�.�.�/�/�/��
�7�4����4�4�f�d�J�PU�V�V�V����M�M�#�����MrC)rhrI)�_singledispatch�registerrYrLr'�setr})r@r$r%r#rpr&rrr'r^rs ``````   @rA�	repr_treezNodeNG.repr_tree�s
���������L
�		#�		#�		#�		#�		#�
��		#�
�	�	�U�	#�	#�	�	�	�T�	"�	"�	�	�	�	�	�	�
#�	"�
$�	#�	�>
�	�	�V�	$�	$�/	�/	�/	�/	�/	�/	�/	�/	�/	�/	�
%�	$�/	�b���
�4�����'�'�'��w�w�v���rCc��tjS)akDetermine the boolean value of this node.

        The boolean value of a node can have three
        possible values:

            * False: For instance, empty data structures,
              False, empty strings, instances which return
              explicitly False from the __nonzero__ / __bool__
              method.
            * True: Most of constructs are True by default:
              classes, functions, modules etc
            * Uninferable: The inference engine is uncertain of the
              node's value.

        :returns: The boolean value of this node.
        :rtype: bool or Uninferable
        )rrX)r@rDs  rA�
bool_valuezNodeNG.bool_values
��$��rCc�d�tj|jjt	t����Src)rrKr�ryrNrks rA�
op_precedencezNodeNG.op_precedence(s"��� ���!8�#�m�:L�:L�M�M�MrCc��dS)NTr0rks rA�op_left_associativezNodeNG.op_left_associative,s���trC)NNN)r7r8r9r8r:r;r5r8r6r8r<r=rc)rDrErFrr<rG)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<r8)rer`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�)rDrErFrr<r�)FFFrrro)rDrE)r<r�)9ry�
__module__�__qualname__�__doc__r,�__annotations__r-r.r/r1r2r3r4rBr_rlr�r�r�r�r�r�r�rr�r�r�r�r�r�r�r�r$r�r�r�r�r�r�r�cachedr�r�r�r�r�rOrSrrrrr
r+r-r/r1r0rCrAr'r';s]���������
$)�L�(�(�(�(�2�	�������#(�K�'�'�'�'�1� %�I�%�%�%�%�24�O�3�3�3�3��02�M�1�1�1�1�:�57��7�7�7�7�7�*.��.�.�.�.�"�!%� $�	-�"&�%)�-�-�-�-�-�-�`26�8�8�8�8�8�t
�
�
�
�
�
�
�
�4
�
�
�
����

�
�
�
�	�	�	�	�#�#�#�#�G�G�G�G��*-�������X�������X��04�4�4�4�4�4�4�804�0�0�0�0�0�0�2	#�	#�	#�	#�����<�<�<�4<�<�<�:*�*�*�.�.�.������_���#�#�#��_�#�����$
%�
%�
%�*�*�*�*��"%������X���"%������X���"%������X���"%������X��"&�D�D�D�D�D�B�������4�4�4�������
�
�
�
26�
�
�
�
�
�"�"�"�
�
�
�������������'�'�'�'�
������H�H�H�H�H�T � � � � �(N�N�N������rC)8�
__future__rrz�sysr��collections.abcrr�	functoolsrr(�typingrrr	r
rrr
rr�astroidrr�astroid.contextr�astroid.exceptionsrrrrr�astroid.managerr�astroid.nodes.as_stringr�astroid.nodes.constr�astroid.nodes.utilsr�astroid.typingrrrr �version_infor#�typing_extensionsr$�astroid.decoratorsr%r&r)r*r�r'r0rCrA�<module>rGs���
#�"�"�"�"�"�
�
�
�
�
�
�
�
�����/�/�/�/�/�/�/�/�7�7�7�7�7�7�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�%�$�$�$�$�$�$�$�,�,�,�,�,�,���������������+�*�*�*�*�*�3�3�3�3�3�3�-�-�-�-�-�-�(�(�(�(�(�(�G�G�G�G�G�G�G�G�G�G�����������v����������)�)�)�)�)�)���v���)�)�)�)�)�)�)�D�D�D�D�D�D��'�)�8�
,�
,�
,���7�:�X�.�.�.���7�:�X�.�.�.��
�4��h���t�H�~�s�/B�)C�C�
D�
�s�s�s�s�s�s�s�s�s�srC

Youez - 2016 - github.com/yon3zu
LinuXploit