PNG  IHDRQgAMA a cHRMz&u0`:pQ<bKGDgmIDATxwUﹻ& ^CX(J I@ "% (** BX +*i"]j(IH{~R)[~>h{}gy)I$Ij .I$I$ʊy@}x.: $I$Ii}VZPC)I$IF ^0ʐJ$I$Q^}{"r=OzI$gRZeC.IOvH eKX $IMpxsk.쒷/&r[޳<v| .I~)@$updYRa$I |M.e JaֶpSYR6j>h%IRز if&uJ)M$I vLi=H;7UJ,],X$I1AҒJ$ XY XzI@GNҥRT)E@;]K*Mw;#5_wOn~\ DC&$(A5 RRFkvIR}l!RytRl;~^ǷJj اy뷦BZJr&ӥ8Pjw~vnv X^(I;4R=P[3]J,]ȏ~:3?[ a&e)`e*P[4]T=Cq6R[ ~ޤrXR Հg(t_HZ-Hg M$ãmL5R uk*`%C-E6/%[t X.{8P9Z.vkXŐKjgKZHg(aK9ڦmKjѺm_ \#$5,)-  61eJ,5m| r'= &ڡd%-]J on Xm|{ RҞe $eڧY XYrԮ-a7RK6h>n$5AVڴi*ֆK)mѦtmr1p| q:흺,)Oi*ֺK)ܬ֦K-5r3>0ԔHjJئEZj,%re~/z%jVMڸmrt)3]J,T K֦OvԒgii*bKiNO~%PW0=dii2tJ9Jݕ{7"I P9JKTbu,%r"6RKU}Ij2HKZXJ,妝 XYrP ެ24c%i^IK|.H,%rb:XRl1X4Pe/`x&P8Pj28Mzsx2r\zRPz4J}yP[g=L) .Q[6RjWgp FIH*-`IMRaK9TXcq*I y[jE>cw%gLRԕiFCj-ďa`#e~I j,%r,)?[gp FI˨mnWX#>mʔ XA DZf9,nKҲzIZXJ,L#kiPz4JZF,I,`61%2s $,VOϚ2/UFJfy7K> X+6 STXIeJILzMfKm LRaK9%|4p9LwJI!`NsiazĔ)%- XMq>pk$-$Q2x#N ؎-QR}ᶦHZډ)J,l#i@yn3LN`;nڔ XuX5pF)m|^0(>BHF9(cզEerJI rg7 4I@z0\JIi䵙RR0s;$s6eJ,`n 䂦0a)S)A 1eJ,堌#635RIgpNHuTH_SԕqVe ` &S)>p;S$魁eKIuX`I4춒o}`m$1":PI<[v9^\pTJjriRŭ P{#{R2,`)e-`mgj~1ϣLKam7&U\j/3mJ,`F;M'䱀 .KR#)yhTq;pcK9(q!w?uRR,n.yw*UXj#\]ɱ(qv2=RqfB#iJmmL<]Y͙#$5 uTU7ӦXR+q,`I}qL'`6Kͷ6r,]0S$- [RKR3oiRE|nӦXR.(i:LDLTJjY%o:)6rxzҒqTJjh㞦I.$YR.ʼnGZ\ֿf:%55 I˼!6dKxm4E"mG_ s? .e*?LRfK9%q#uh$)i3ULRfK9yxm܌bj84$i1U^@Wbm4uJ,ҪA>_Ij?1v32[gLRD96oTaR׿N7%L2 NT,`)7&ƝL*꽙yp_$M2#AS,`)7$rkTA29_Iye"|/0t)$n XT2`YJ;6Jx".e<`$) PI$5V4]29SRI>~=@j]lp2`K9Jaai^" Ԋ29ORI%:XV5]JmN9]H;1UC39NI%Xe78t)a;Oi Ҙ>Xt"~G>_mn:%|~ޅ_+]$o)@ǀ{hgN;IK6G&rp)T2i୦KJuv*T=TOSV>(~D>dm,I*Ɛ:R#ۙNI%D>G.n$o;+#RR!.eU˽TRI28t)1LWϚ>IJa3oFbu&:tJ*(F7y0ZR ^p'Ii L24x| XRI%ۄ>S1]Jy[zL$adB7.eh4%%누>WETf+3IR:I3Xה)3אOۦSRO'ٺ)S}"qOr[B7ϙ.edG)^ETR"RtRݜh0}LFVӦDB^k_JDj\=LS(Iv─aTeZ%eUAM-0;~˃@i|l @S4y72>sX-vA}ϛBI!ݎߨWl*)3{'Y|iSlEڻ(5KtSI$Uv02,~ԩ~x;P4ցCrO%tyn425:KMlD ^4JRxSهF_}شJTS6uj+ﷸk$eZO%G*^V2u3EMj3k%)okI]dT)URKDS 7~m@TJR~荪fT"֛L \sM -0T KfJz+nإKr L&j()[E&I ߴ>e FW_kJR|!O:5/2跌3T-'|zX ryp0JS ~^F>-2< `*%ZFP)bSn"L :)+pʷf(pO3TMW$~>@~ū:TAIsV1}S2<%ޟM?@iT ,Eūoz%i~g|`wS(]oȤ8)$ ntu`өe`6yPl IzMI{ʣzʨ )IZ2= ld:5+請M$-ї;U>_gsY$ÁN5WzWfIZ)-yuXIfp~S*IZdt;t>KūKR|$#LcԀ+2\;kJ`]YǔM1B)UbG"IRߊ<xܾӔJ0Z='Y嵤 Leveg)$znV-º^3Ւof#0Tfk^Zs[*I꯳3{)ˬW4Ւ4 OdpbZRS|*I 55#"&-IvT&/윚Ye:i$ 9{LkuRe[I~_\ؠ%>GL$iY8 9ܕ"S`kS.IlC;Ҏ4x&>u_0JLr<J2(^$5L s=MgV ~,Iju> 7r2)^=G$1:3G< `J3~&IR% 6Tx/rIj3O< ʔ&#f_yXJiގNSz; Tx(i8%#4 ~AS+IjerIUrIj362v885+IjAhK__5X%nV%Iͳ-y|7XV2v4fzo_68"S/I-qbf; LkF)KSM$ Ms>K WNV}^`-큧32ŒVؙGdu,^^m%6~Nn&͓3ŒVZMsRpfEW%IwdǀLm[7W&bIRL@Q|)* i ImsIMmKmyV`i$G+R 0tV'!V)֏28vU7͒vHꦼtxꗞT ;S}7Mf+fIRHNZUkUx5SAJㄌ9MqμAIRi|j5)o*^'<$TwI1hEU^c_j?Е$%d`z cyf,XO IJnTgA UXRD }{H}^S,P5V2\Xx`pZ|Yk:$e ~ @nWL.j+ϝYb퇪bZ BVu)u/IJ_ 1[p.p60bC >|X91P:N\!5qUB}5a5ja `ubcVxYt1N0Zzl4]7­gKj]?4ϻ *[bg$)+À*x쳀ogO$~,5 زUS9 lq3+5mgw@np1sso Ӻ=|N6 /g(Wv7U;zωM=wk,0uTg_`_P`uz?2yI!b`kĸSo+Qx%!\οe|އԁKS-s6pu_(ֿ$i++T8=eY; צP+phxWQv*|p1. ά. XRkIQYP,drZ | B%wP|S5`~́@i޾ E;Չaw{o'Q?%iL{u D?N1BD!owPHReFZ* k_-~{E9b-~P`fE{AܶBJAFO wx6Rox5 K5=WwehS8 (JClJ~ p+Fi;ŗo+:bD#g(C"wA^ r.F8L;dzdIHUX݆ϞXg )IFqem%I4dj&ppT{'{HOx( Rk6^C٫O.)3:s(۳(Z?~ٻ89zmT"PLtw䥈5&b<8GZ-Y&K?e8,`I6e(֍xb83 `rzXj)F=l($Ij 2*(F?h(/9ik:I`m#p3MgLaKjc/U#n5S# m(^)=y=đx8ŬI[U]~SцA4p$-F i(R,7Cx;X=cI>{Km\ o(Tv2vx2qiiDJN,Ҏ!1f 5quBj1!8 rDFd(!WQl,gSkL1Bxg''՞^ǘ;pQ P(c_ IRujg(Wz bs#P­rz> k c&nB=q+ؔXn#r5)co*Ũ+G?7< |PQӣ'G`uOd>%Mctz# Ԫڞ&7CaQ~N'-P.W`Oedp03C!IZcIAMPUۀ5J<\u~+{9(FbbyAeBhOSܳ1 bÈT#ŠyDžs,`5}DC-`̞%r&ڙa87QWWp6e7 Rϫ/oY ꇅ Nܶըtc!LA T7V4Jsū I-0Pxz7QNF_iZgúWkG83 0eWr9 X]㾮݁#Jˢ C}0=3ݱtBi]_ &{{[/o[~ \q鯜00٩|cD3=4B_b RYb$óBRsf&lLX#M*C_L܄:gx)WΘsGSbuL rF$9';\4Ɍq'n[%p.Q`u hNb`eCQyQ|l_C>Lb꟟3hSb #xNxSs^ 88|Mz)}:](vbۢamŖ࿥ 0)Q7@0=?^k(*J}3ibkFn HjB׻NO z x}7p 0tfDX.lwgȔhԾŲ }6g E |LkLZteu+=q\Iv0쮑)QٵpH8/2?Σo>Jvppho~f>%bMM}\//":PTc(v9v!gոQ )UfVG+! 35{=x\2+ki,y$~A1iC6#)vC5^>+gǵ@1Hy٪7u;p psϰu/S <aʸGu'tD1ԝI<pg|6j'p:tպhX{o(7v],*}6a_ wXRk,O]Lܳ~Vo45rp"N5k;m{rZbΦ${#)`(Ŵg,;j%6j.pyYT?}-kBDc3qA`NWQū20/^AZW%NQ MI.X#P#,^Ebc&?XR tAV|Y.1!؅⨉ccww>ivl(JT~ u`ٵDm q)+Ri x/x8cyFO!/*!/&,7<.N,YDŽ&ܑQF1Bz)FPʛ?5d 6`kQձ λc؎%582Y&nD_$Je4>a?! ͨ|ȎWZSsv8 j(I&yj Jb5m?HWp=g}G3#|I,5v珿] H~R3@B[☉9Ox~oMy=J;xUVoj bUsl_35t-(ՃɼRB7U!qc+x4H_Qo֮$[GO<4`&č\GOc[.[*Af%mG/ ňM/r W/Nw~B1U3J?P&Y )`ѓZ1p]^l“W#)lWZilUQu`-m|xĐ,_ƪ|9i:_{*(3Gѧ}UoD+>m_?VPۅ15&}2|/pIOʵ> GZ9cmíتmnz)yߐbD >e}:) r|@R5qVSA10C%E_'^8cR7O;6[eKePGϦX7jb}OTGO^jn*媓7nGMC t,k31Rb (vyܴʭ!iTh8~ZYZp(qsRL ?b}cŨʊGO^!rPJO15MJ[c&~Z`"ѓޔH1C&^|Ш|rʼ,AwĴ?b5)tLU)F| &g٣O]oqSUjy(x<Ϳ3 .FSkoYg2 \_#wj{u'rQ>o;%n|F*O_L"e9umDds?.fuuQbIWz |4\0 sb;OvxOSs; G%T4gFRurj(֍ڑb uԖKDu1MK{1^ q; C=6\8FR艇!%\YÔU| 88m)֓NcLve C6z;o&X x59:q61Z(T7>C?gcļxѐ Z oo-08jہ x,`' ҔOcRlf~`jj".Nv+sM_]Zk g( UOPyεx%pUh2(@il0ݽQXxppx-NS( WO+轾 nFߢ3M<;z)FBZjciu/QoF 7R¥ ZFLF~#ȣߨ^<쩡ݛкvџ))ME>ώx4m#!-m!L;vv#~Y[đKmx9.[,UFS CVkZ +ߟrY٧IZd/ioi$%͝ب_ֶX3ܫhNU ZZgk=]=bbJS[wjU()*I =ώ:}-蹞lUj:1}MWm=̛ _ ¾,8{__m{_PVK^n3esw5ӫh#$-q=A̟> ,^I}P^J$qY~Q[ Xq9{#&T.^GVj__RKpn,b=`żY@^՝;z{paVKkQXj/)y TIc&F;FBG7wg ZZDG!x r_tƢ!}i/V=M/#nB8 XxЫ ^@CR<{䤭YCN)eKOSƟa $&g[i3.C6xrOc8TI;o hH6P&L{@q6[ Gzp^71j(l`J}]e6X☉#͕ ׈$AB1Vjh㭦IRsqFBjwQ_7Xk>y"N=MB0 ,C #o6MRc0|$)ف"1!ixY<B9mx `,tA>)5ػQ?jQ?cn>YZe Tisvh# GMމȇp:ԴVuږ8ɼH]C.5C!UV;F`mbBk LTMvPʍϤj?ԯ/Qr1NB`9s"s TYsz &9S%U԰> {<ؿSMxB|H\3@!U| k']$U+> |HHMLޢ?V9iD!-@x TIî%6Z*9X@HMW#?nN ,oe6?tQwڱ.]-y':mW0#!J82qFjH -`ѓ&M0u Uγmxϵ^-_\])@0Rt.8/?ٰCY]x}=sD3ojަЫNuS%U}ԤwHH>ڗjܷ_3gN q7[q2la*ArǓԖ+p8/RGM ]jacd(JhWko6ڎbj]i5Bj3+3!\j1UZLsLTv8HHmup<>gKMJj0@H%,W΃7R) ">c, xixј^ aܖ>H[i.UIHc U1=yW\=S*GR~)AF=`&2h`DzT󑓶J+?W+}C%P:|0H܆}-<;OC[~o.$~i}~HQ TvXΈr=b}$vizL4:ȰT|4~*!oXQR6Lk+#t/g lԁߖ[Jڶ_N$k*". xsxX7jRVbAAʯKҎU3)zSNN _'s?f)6X!%ssAkʱ>qƷb hg %n ~p1REGMHH=BJiy[<5 ǁJҖgKR*倳e~HUy)Ag,K)`Vw6bRR:qL#\rclK/$sh*$ 6덤 KԖc 3Z9=Ɣ=o>X Ώ"1 )a`SJJ6k(<c e{%kϊP+SL'TcMJWRm ŏ"w)qc ef꒵i?b7b('"2r%~HUS1\<(`1Wx9=8HY9m:X18bgD1u ~|H;K-Uep,, C1 RV.MR5άh,tWO8WC$ XRVsQS]3GJ|12 [vM :k#~tH30Rf-HYݺ-`I9%lIDTm\ S{]9gOڒMNCV\G*2JRŨ;Rҏ^ڽ̱mq1Eu?To3I)y^#jJw^Ńj^vvlB_⋌P4x>0$c>K†Aļ9s_VjTt0l#m>E-,,x,-W)سo&96RE XR.6bXw+)GAEvL)͞K4$p=Ũi_ѱOjb HY/+@θH9޼]Nԥ%n{ &zjT? Ty) s^ULlb,PiTf^<À] 62R^V7)S!nllS6~͝V}-=%* ʻ>G DnK<y&>LPy7'r=Hj 9V`[c"*^8HpcO8bnU`4JȪAƋ#1_\ XϘHPRgik(~G~0DAA_2p|J묭a2\NCr]M_0 ^T%e#vD^%xy-n}-E\3aS%yN!r_{ )sAw ڼp1pEAk~v<:`'ӭ^5 ArXOI驻T (dk)_\ PuA*BY]yB"l\ey hH*tbK)3 IKZ򹞋XjN n *n>k]X_d!ryBH ]*R 0(#'7 %es9??ښFC,ՁQPjARJ\Ρw K#jahgw;2$l*) %Xq5!U᢯6Re] |0[__64ch&_}iL8KEgҎ7 M/\`|.p,~`a=BR?xܐrQ8K XR2M8f ?`sgWS%" Ԉ 7R%$ N}?QL1|-эټwIZ%pvL3Hk>,ImgW7{E xPHx73RA @RS CC !\ȟ5IXR^ZxHл$Q[ŝ40 (>+ _C >BRt<,TrT {O/H+˟Pl6 I B)/VC<6a2~(XwV4gnXR ϱ5ǀHٻ?tw똤Eyxp{#WK qG%5],(0ӈH HZ])ג=K1j&G(FbM@)%I` XRg ʔ KZG(vP,<`[ Kn^ SJRsAʠ5xՅF`0&RbV tx:EaUE/{fi2;.IAwW8/tTxAGOoN?G}l L(n`Zv?pB8K_gI+ܗ #i?ޙ.) p$utc ~DžfՈEo3l/)I-U?aԅ^jxArA ΧX}DmZ@QLےbTXGd.^|xKHR{|ΕW_h] IJ`[G9{).y) 0X YA1]qp?p_k+J*Y@HI>^?gt.06Rn ,` ?);p pSF9ZXLBJPWjgQ|&)7! HjQt<| ؅W5 x W HIzYoVMGP Hjn`+\(dNW)F+IrS[|/a`K|ͻ0Hj{R,Q=\ (F}\WR)AgSG`IsnAR=|8$}G(vC$)s FBJ?]_u XRvύ6z ŨG[36-T9HzpW̞ú Xg큽=7CufzI$)ki^qk-) 0H*N` QZkk]/tnnsI^Gu't=7$ Z;{8^jB% IItRQS7[ϭ3 $_OQJ`7!]W"W,)Iy W AJA;KWG`IY{8k$I$^%9.^(`N|LJ%@$I}ֽp=FB*xN=gI?Q{٥4B)mw $Igc~dZ@G9K X?7)aK%݅K$IZ-`IpC U6$I\0>!9k} Xa IIS0H$I H ?1R.Чj:4~Rw@p$IrA*u}WjWFPJ$I➓/6#! LӾ+ X36x8J |+L;v$Io4301R20M I$-E}@,pS^ޟR[/s¹'0H$IKyfŸfVOπFT*a$I>He~VY/3R/)>d$I>28`Cjw,n@FU*9ttf$I~<;=/4RD~@ X-ѕzἱI$: ԍR a@b X{+Qxuq$IЛzo /~3\8ڒ4BN7$IҀj V]n18H$IYFBj3̵̚ja pp $Is/3R Ӻ-Yj+L;.0ŔI$Av? #!5"aʄj}UKmɽH$IjCYs?h$IDl843.v}m7UiI=&=0Lg0$I4: embe` eQbm0u? $IT!Sƍ'-sv)s#C0:XB2a w I$zbww{."pPzO =Ɔ\[ o($Iaw]`E).Kvi:L*#gР7[$IyGPI=@R 4yR~̮´cg I$I/<tPͽ hDgo 94Z^k盇΄8I56^W$I^0̜N?4*H`237}g+hxoq)SJ@p|` $I%>-hO0eO>\ԣNߌZD6R=K ~n($I$y3D>o4b#px2$yڪtzW~a $I~?x'BwwpH$IZݑnC㧄Pc_9sO gwJ=l1:mKB>Ab<4Lp$Ib o1ZQ@85b̍ S'F,Fe,^I$IjEdù{l4 8Ys_s Z8.x m"+{~?q,Z D!I$ϻ'|XhB)=…']M>5 rgotԎ 獽PH$IjIPhh)n#cÔqA'ug5qwU&rF|1E%I$%]!'3AFD/;Ck_`9 v!ٴtPV;x`'*bQa w I$Ix5 FC3D_~A_#O݆DvV?<qw+I$I{=Z8".#RIYyjǪ=fDl9%M,a8$I$Ywi[7ݍFe$s1ՋBVA?`]#!oz4zjLJo8$I$%@3jAa4(o ;p,,dya=F9ً[LSPH$IJYЉ+3> 5"39aZ<ñh!{TpBGkj}Sp $IlvF.F$I z< '\K*qq.f<2Y!S"-\I$IYwčjF$ w9 \ߪB.1v!Ʊ?+r:^!I$BϹB H"B;L'G[ 4U#5>੐)|#o0aڱ$I>}k&1`U#V?YsV x>{t1[I~D&(I$I/{H0fw"q"y%4 IXyE~M3 8XψL}qE$I[> nD?~sf ]o΁ cT6"?'_Ἣ $I>~.f|'!N?⟩0G KkXZE]ޡ;/&?k OۘH$IRۀwXӨ<7@PnS04aӶp.:@\IWQJ6sS%I$e5ڑv`3:x';wq_vpgHyXZ 3gЂ7{{EuԹn±}$I$8t;b|591nءQ"P6O5i }iR̈́%Q̄p!I䮢]O{H$IRϻ9s֧ a=`- aB\X0"+5"C1Hb?߮3x3&gşggl_hZ^,`5?ߎvĸ%̀M!OZC2#0x LJ0 Gw$I$I}<{Eb+y;iI,`ܚF:5ܛA8-O-|8K7s|#Z8a&><a&/VtbtLʌI$I$I$I$I$I$IRjDD%tEXtdate:create2022-05-31T04:40:26+00:00!Î%tEXtdate:modify2022-05-31T04:40:26+00:00|{2IENDB`Mini Shell

HOME


Mini Shell 1.0
DIR:/opt/alt/python311/lib64/python3.11/__pycache__/
Upload File :
Current File : //opt/alt/python311/lib64/python3.11/__pycache__/symtable.cpython-311.pyc
�

�f�(����dZddlZddlmZmZmZmZmZmZmZm	Z	m
Z
mZmZm
Z
mZmZmZddlZgd�Zd�ZGd�d��Ze��ZGd�d	��ZGd
�de��ZGd�d
e��ZGd�d��Zedkr�ddlZddlZeejd��5Ze� ��Z!ddd��n#1swxYwYee!ej"�#ejd��dd��Z$e$�%��D]JZ&e$�'e&��Z(e)e(e(�*��e(�+�����IdSdS)z2Interface to the compiler's internal symbol tables�N)�USE�
DEF_GLOBAL�DEF_NONLOCAL�	DEF_LOCAL�	DEF_PARAM�
DEF_IMPORT�	DEF_BOUND�	DEF_ANNOT�	SCOPE_OFF�
SCOPE_MASK�FREE�LOCAL�GLOBAL_IMPLICIT�GLOBAL_EXPLICIT�CELL)�symtable�SymbolTable�Class�Function�Symbolc�N�tj|||��}t||��S)z� Return the toplevel *SymbolTable* for the source code.

    *filename* is the name of the file with the code
    and *compile_type* is the *compile()* mode argument.
    )�	_symtabler�_newSymbolTable)�code�filename�compile_type�tops    �//opt/alt/python311/lib64/python3.11/symtable.pyrrs(���
�T�8�\�
:�
:�C��3��)�)�)�c� �eZdZd�Zd�Zd�ZdS)�SymbolTableFactoryc�6�tj��|_dS�N)�weakref�WeakValueDictionary�_SymbolTableFactory__memo��selfs r�__init__zSymbolTableFactory.__init__s���1�3�3����rc��|jtjkrt||��S|jtjkrt||��St
||��Sr#)�typer�
TYPE_FUNCTIONr�
TYPE_CLASSrr)r(�tablers   r�newzSymbolTableFactory.newsR���:��0�0�0��E�8�,�,�,��:��-�-�-����)�)�)��5�(�+�+�+rc��||f}|j�|d��}|� |�||��x}|j|<|Sr#)r&�getr/)r(r.r�key�objs     r�__call__zSymbolTableFactory.__call__ sI���X�o���k�o�o�c�4�(�(���;�%)�X�X�e�X�%>�%>�>�C�$�+�c�"��
rN)�__name__�
__module__�__qualname__r)r/r4�rrr!r!sA������4�4�4�,�,�,�����rr!c�b�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�ZdS)rc�0�||_||_i|_dSr#)�_table�	_filename�_symbols)r(�	raw_tablers   rr)zSymbolTable.__init__,s�����!�����
�
�
rc���|jtkrd}nd|jjz}|jjdkrd�||j��Sd�||jj|j��S)N�z%s rz<{0}SymbolTable for module {1}>z<{0}SymbolTable for {1} in {2}>)�	__class__rr5r;�name�formatr<)r(�kinds  r�__repr__zSymbolTable.__repr__1sw���>�[�(�(��D�D��4�>�2�2�D��;��u�$�$�4�;�;�D�$�.�Q�Q�Q�4�;�;�D�<@�K�<L�<@�N�L�L�
Lrc��|jjtjkrdS|jjtjkrdS|jjtjkrdS|jjdvs'Jd�|jj�����dS)zxReturn the type of the symbol table.

        The values returned are 'class', 'module' and
        'function'.
        �module�function�class)���zunexpected type: {0}N)r;r+r�TYPE_MODULEr,r-rCr's r�get_typezSymbolTable.get_type>s����;��y�4�4�4��8��;��y�6�6�6��:��;��y�3�3�3��7��{��9�,�,�,�%�,�,�T�[�-=�>�>�-�,�,�,�,rc��|jjS)z,Return an identifier for the table.
        )r;�idr's r�get_idzSymbolTable.get_idMs���{�~�rc��|jjS)z�Return the table's name.

        This corresponds to the name of the class, function
        or 'top' if the table is for a class, function or
        global respectively.
        )r;rBr's r�get_namezSymbolTable.get_nameRs���{��rc��|jjS)zPReturn the number of the first line in the
        block for the table.
        )r;�linenor's r�
get_linenozSymbolTable.get_lineno[s���{�!�!rc�P�t|jjtjk��S)zJReturn *True* if the locals in the table
        are optimizable.
        )�boolr;r+rr,r's r�is_optimizedzSymbolTable.is_optimizedas���D�K�$�	�(?�?�@�@�@rc�4�t|jj��S)zAReturn *True* if the block is a nested class
        or function.)rXr;�nestedr's r�	is_nestedzSymbolTable.is_nestedgs���D�K�&�'�'�'rc�4�t|jj��S)z:Return *True* if the block has nested namespaces.
        )rXr;�childrenr's r�has_childrenzSymbolTable.has_childrenls���D�K�(�)�)�)rc�>�|jj���S)zKReturn a view object containing the names of symbols in the table.
        )r;�symbols�keysr's r�get_identifierszSymbolTable.get_identifiersqs���{�"�'�'�)�)�)rc���|j�|��}|�T|jj|}|�|��}|jjdk}t
||||���x}|j|<|S)zLLookup a *name* in the table.

        Returns a *Symbol* instance.
        Nr��module_scope)r=r1r;ra�_SymbolTable__check_childrenrBr)r(rB�sym�flags�
namespacesrfs      r�lookupzSymbolTable.lookupvs���
�m����%�%���;��K�'��-�E��.�.�t�4�4�J� �K�,��5�L�(.�t�U�J�<H�)J�)J�)J�
J�C�$�-��%��
rc�D���fd�����D��S)zLReturn a list of *Symbol* instances for
        names in the table.
        c�:��g|]}��|����Sr8)rk)�.0�identr(s  �r�
<listcomp>z+SymbolTable.get_symbols.<locals>.<listcomp>�s%���G�G�G�u����E�"�"�G�G�Gr)rcr's`r�get_symbolszSymbolTable.get_symbols�s,���H�G�G�G��0D�0D�0F�0F�G�G�G�Grc�8�����fd��jjD��S)Nc�P��g|]"}|j�k�
t|�j����#Sr8)rBrr<)rn�strBr(s  ��rrpz0SymbolTable.__check_children.<locals>.<listcomp>�s8���$�$�$���7�d�?�?� ��D�N�3�3�"�?�?r�r;r^)r(rBs``r�__check_childrenzSymbolTable.__check_children�s9����$�$�$�$�$��+�.�$�$�$�	$rc�4���fd��jjD��S)z3Return a list of the nested symbol tables.
        c�:��g|]}t|�j����Sr8)rr<)rnrtr(s  �rrpz,SymbolTable.get_children.<locals>.<listcomp>�s5���0�0�0�� ��D�N�3�3�0�0�0rrur's`r�get_childrenzSymbolTable.get_children�s3���0�0�0�0��+�.�0�0�0�	0rN)r5r6r7r)rErNrQrSrVrYr\r_rcrkrqrgryr8rrrr*s����������
L�L�L�
?�
?�
?����
 � � �"�"�"�A�A�A�(�(�(�
*�*�*�
*�*�*�
���H�H�H�$�$�$�
0�0�0�0�0rrc�F�eZdZdZdZdZdZdZd�Zd�Z	d�Z
d�Zd�Zd�Z
dS)rNc�b���t��fd�����D����S)Nc3�R�K�|]!}��jj|���|V��"dSr#)r;ra)rnror(�	test_funcs  ��r�	<genexpr>z-Function.__idents_matching.<locals>.<genexpr>�sO�����?�?�u�!�	�$�+�"5�e�"<�=�=�?�U�?�?�?�?�?�?r)�tuplerc)r(r}s``r�__idents_matchingzFunction.__idents_matching�sL�����?�?�?�?�?��(<�(<�(>�(>�?�?�?�?�?�	?rc�T�|j�|�d���|_|jS)z6Return a tuple of parameters to the function.
        Nc��|tzSr#)r��xs r�<lambda>z)Function.get_parameters.<locals>.<lambda>�s
��A�	�M�r)�_Function__params�_Function__idents_matchingr's r�get_parameterszFunction.get_parameters�s-���=� � �2�2�3I�3I�J�J�D�M��}�rc�z��|j�-ttf��fd�}|�|��|_|jS)z2Return a tuple of locals in the function.
        Nc�,��|tz	tz�vSr#�rr)r��locss �rr�z%Function.get_locals.<locals>.<lambda>�s���q�I�~��;��D�r)�_Function__localsrrr�)r(�testr�s  @r�
get_localszFunction.get_locals�sA����=� ��4�=�D�D�D�D�D�D� �2�2�4�8�8�D�M��}�rc�z��|j�-ttf��fd�}|�|��|_|jS)z3Return a tuple of globals in the function.
        Nc�,��|tz	tz�vSr#r�)r��globs �rr�z&Function.get_globals.<locals>.<lambda>�s���a�9�n�
�:�t�C�r)�_Function__globalsrrr�)r(r�r�s  @r�get_globalszFunction.get_globals�sB����>�!�#�_�5�D�C�C�C�C�D�!�3�3�D�9�9�D�N��~�rc�T�|j�|�d���|_|jS)z5Return a tuple of nonlocals in the function.
        Nc��|tzSr#)rr�s rr�z(Function.get_nonlocals.<locals>.<lambda>�s��q�<�?O�r)�_Function__nonlocalsr�r's r�
get_nonlocalszFunction.get_nonlocals�s0����#�#�5�5�6O�6O�P�P�D����rc�X�|j�d�}|�|��|_|jS)z:Return a tuple of free variables in the function.
        Nc�8�|tz	tztkSr#)rrr
r�s rr�z$Function.get_frees.<locals>.<lambda>�s���i��:� =�$�F�r)�_Function__freesr�)r(�is_frees  r�	get_freeszFunction.get_frees�s1���<��F�F�G��1�1�'�:�:�D�L��|�r)r5r6r7r�r�r�r�r�r�r�r�r�r�r�r8rrrr�s��������H��H��G��I��K�?�?�?���������� � � �����rrc��eZdZdZd�ZdS)rNc�|�|j�/i}|jjD]}d||j<�
t	|��|_|jS)z9Return a tuple of methods declared in the class.
        NrJ)�_Class__methodsr;r^rBr)r(�drts   r�get_methodszClass.get_methods�sG���>�!��A��k�*�
�
����"�'�
�
�"�1�X�X�D�N��~�r)r5r6r7r�r�r8rrrr�s(�������I�����rrc�v�eZdZddd�d�Zd�Zd�Zd�Zd�Zd	�Zd
�Z	d�Z
d�Zd
�Zd�Z
d�Zd�Zd�Zd�Zd�ZdS)rNFrec�p�||_||_|tz	tz|_|pd|_||_dS)Nr8)�
_Symbol__name�_Symbol__flagsrr�_Symbol__scope�_Symbol__namespaces�_Symbol__module_scope)r(rBrirjrfs     rr)zSymbol.__init__�s<����������*�j�8���&�,�"���*����rc�6�d�|j��S)Nz<symbol {0!r}>)rCr�r's rrEzSymbol.__repr__�s���&�&�t�{�3�3�3rc��|jS)z#Return a name of a symbol.
        )r�r's rrSzSymbol.get_name�s���{�rc�D�t|jtjz��S)zBReturn *True* if the symbol is used in
        its block.
        )rXr�rrr's r�
is_referencedzSymbol.is_referenced�s���D�L�9�=�0�1�1�1rc�:�t|jtz��S)z4Return *True* if the symbol is a parameter.
        )rXr�rr's r�is_parameterzSymbol.is_parameter�����D�L�9�,�-�-�-rc�r�t|jttfvp|jo|jtz��S)z/Return *True* if the symbol is global.
        )rXr�rrr�r�r	r's r�	is_globalzSymbol.is_global�s?���D�L�_�o�$F�F�J��+�H���y�0H�K�K�	Krc�:�t|jtz��S)z(Return *True* if the symbol is nonlocal.)rXr�rr's r�is_nonlocalzSymbol.is_nonlocal�s���D�L�<�/�0�0�0rc�<�t|jtk��S)zOReturn *True* if the symbol is declared global
        with a global statement.)rXr�rr's r�is_declared_globalzSymbol.is_declared_globals���D�L�O�3�4�4�4rc�r�t|jttfvp|jo|jtz��S)z.Return *True* if the symbol is local.
        )rXr�rrr�r�r	r's r�is_localzSymbol.is_locals>���D�L�U�D�M�1�J��+�H���y�0H�K�K�	Krc�:�t|jtz��S)z2Return *True* if the symbol is annotated.
        )rXr�r
r's r�is_annotatedzSymbol.is_annotatedr�rc�<�t|jtk��S)zIReturn *True* if a referenced symbol is
        not assigned to.
        )rXr�r
r's rr�zSymbol.is_frees���D�L�D�(�)�)�)rc�:�t|jtz��S)zQReturn *True* if the symbol is created from
        an import statement.
        )rXr�rr's r�is_importedzSymbol.is_importeds���D�L�:�-�.�.�.rc�:�t|jtz��S)z)Return *True* if a symbol is assigned to.)rXr�rr's r�is_assignedzSymbol.is_assigneds���D�L�9�,�-�-�-rc�*�t|j��S)a�Returns *True* if name binding introduces new namespace.

        If the name is used as the target of a function or class
        statement, this will be true.

        Note that a single name can be bound to multiple objects.  If
        is_namespace() is true, the name may also be bound to other
        objects, like an int or list, that does not introduce a new
        namespace.
        )rXr�r's r�is_namespacezSymbol.is_namespace!s���D�%�&�&�&rc��|jS)z.Return a list of namespaces bound to this name)r�r's r�get_namespaceszSymbol.get_namespaces.s��� � rc��t|j��dkrtd���t|j��dkrtd���|jdS)z�Return the single namespace bound to this name.

        Raises ValueError if the name is bound to multiple namespaces
        or no namespace.
        rz#name is not bound to any namespacesrJz$name is bound to multiple namespaces)�lenr��
ValueErrorr's r�
get_namespacezSymbol.get_namespace2s\���t� �!�!�Q�&�&��B�C�C�C�
��"�
#�
#�a�
'�
'��C�D�D�D��$�Q�'�'rr#)r5r6r7r)rErSr�r�r�r�r�r�r�r�r�r�r�r�r�r8rrrr�s������+�U�+�+�+�+�+�4�4�4����
2�2�2�.�.�.�
K�K�K�1�1�1�5�5�5�
K�K�K�.�.�.�
*�*�*�/�/�/�.�.�.�'�'�'�!�!�!�(�(�(�(�(rr�__main__rJ�exec),�__doc__rrrrrrrr	r
rrr
rrrrr$�__all__rr!rrrrrr5�os�sys�open�argv�f�read�src�path�split�modrcrork�info�printr�r�r8rr�<module>r�s���8�8�����4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�����
D�
D�
D��*�*�*���������$%�$�&�&��i0�i0�i0�i0�i0�i0�i0�i0�X3�3�3�3�3�{�3�3�3�l�����K����b(�b(�b(�b(�b(�b(�b(�b(�H�z����N�N�N�N�N�N�N�	
��c�h�q�k�	�	��a��f�f�h�h��������������������
�(�3���
�
�c�h�q�k�2�2�1�5�v�
>�
>�C��$�$�&�&�:�:���z�z�%� � ��
��d�D�M�M�O�O�T�%6�%6�%8�%8�9�9�9�9���
:�:s�%C�C
�
C