Your IP : 18.188.76.161
�
��f�'c@s�dZddlZddlZddlTddlmZddddd d
ddgeZ[ejejeje fZ
d
d�Zddd�Z
ddd�Zidd6dd6dd6dd6dd6dd6dd6Zdd �Zd!d�Zd"d#�Zd$d�Zd/d%d�Zd0dddd&d'�Zd(d)�ZeZd*d�Zd+d
�Zd,d-�Zed.kr|e�ndS(1u0Disassembler of Python byte code into mnemonics.iN(u*(u__all__u code_infoudisudisassembleudistbudiscoufindlinestartsu
findlabelsu show_codecCsAyt||d�}Wn$tk
r<t||d�}YnX|S(u�Attempts to compile the given source, first as an expression and
then as a statement if the first approach fails.
Utility function to accept strings in functions that otherwise
expect code objects
uevaluexec(ucompileuSyntaxError(usourceunameuc((u(/opt/alt/python33/lib64/python3.3/dis.pyu_try_compiles
u_try_compilecCsl|dkrt�dSt|d�r2|j}nt|d�rM|j}nt|d�r�t|jj��}x�|D]v\}}t|t �rxt
d|�yt|�Wn2tk
r�}zt
d|�WYdd}~XnXt
�qxqxWnst|d�rt
|�nWt|ttf�r3t|�n5t|t�rOt|�ntdt|�j��dS( unDisassemble classes, methods, functions, or code.
With no argument, disassemble the last traceback.
Nu__func__u__code__u__dict__uDisassembly of %s:uSorry:uco_codeu(don't know how to disassemble %s objects(uNoneudistbuhasattru__func__u__code__usortedu__dict__uitemsu
isinstanceu
_have_codeuprintudisu TypeErrorudisassembleubytesu bytearrayu_disassemble_bytesustru_disassemble_strutypeu__name__(uxuitemsunameux1umsg((u(/opt/alt/python33/lib64/python3.3/dis.pyudiss2
cCsp|dkrVy
tj}Wntk
r9td��YnXx|jrR|j}q=Wnt|jj|j �dS(u2Disassemble a traceback (default: last traceback).u no last traceback to disassembleN(
uNoneusysulast_tracebackuAttributeErroruRuntimeErrorutb_nextudisassembleutb_frameuf_codeutb_lasti(utb((u(/opt/alt/python33/lib64/python3.3/dis.pyudistb=s
u OPTIMIZEDiu NEWLOCALSiuVARARGSiuVARKEYWORDSiuNESTEDiu GENERATORi uNOFREEi@cCs�g}xqtd�D]P}d|>}||@r|jtj|t|���||N}|scPqcqqW|jt|��dj|�S(u+Return pretty representation of code flags.i iu, (urangeuappenduCOMPILER_FLAG_NAMESugetuhexujoin(uflagsunamesuiuflag((u(/opt/alt/python33/lib64/python3.3/dis.pyupretty_flagsTs
upretty_flagscCs�t|d�r|j}nt|d�r6|j}nt|t�rWt|d�}nt|d�rpt|�Stdt|�j ��dS(u1Formatted details of methods, functions, or code.u__func__u__code__u<code_info>uco_codeu(don't know how to disassemble %s objectsN(
uhasattru__func__u__code__u
isinstanceustru_try_compileu_format_code_infou TypeErrorutypeu__name__(ux((u(/opt/alt/python33/lib64/python3.3/dis.pyu code_infobs
cCs�g}|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�|jdt|j��|j r�|jd�x+t
|j �D]}|jd |�q�Wn|jr |jd
�x+t
|j�D]}|jd|�qWn|jrd|jd�x+t
|j�D]}|jd|�qFWn|j
r�|jd
�x+t
|j
�D]}|jd|�q�Wn|jr�|jd�x+t
|j�D]}|jd|�q�Wndj|�S(NuName: %suFilename: %suArgument count: %suKw-only arguments: %suNumber of locals: %suStack size: %suFlags: %su
Constants:u%4d: %ruNames:u%4d: %suVariable names:uFree variables:uCell variables:u
(uappenduco_nameuco_filenameuco_argcountuco_kwonlyargcountu
co_nlocalsuco_stacksizeupretty_flagsuco_flagsu co_constsu enumerateuco_namesuco_varnamesuco_freevarsuco_cellvarsujoin(ucoulinesui_cui_n((u(/opt/alt/python33/lib64/python3.3/dis.pyu_format_code_infops:
u_format_code_infocCstt|��dS(u7Print details of methods, functions, or code to stdout.N(uprintu code_info(uco((u(/opt/alt/python33/lib64/python3.3/dis.pyu show_code�scCsB|j}t|�}tt|��}t|�}d}d}d}x�||kr=||} ||kr�|dkr�t�ntd||dd�ntddd�||kr�tddd�ntddd�||kr�tddd�ntddd�tt|�jd �dd�tt | j
d
�dd�|d}| tkr3||||dd|}
d}|d
}| tkr�|
d}ntt|
�jd�dd�| t
kr�tdt|j|
�ddd�q3| tkr#td|j|
ddd�q3| tkrTtdt||
�ddd�q3| tkr�td|j|
ddd�q3| tkr�tdt|
ddd�q3| tkr�|dkr�|j|j}ntd||
ddd�q3| tkr3td||d
||dfdd�q3nt�qHWdS(uDisassemble a code object.iu%3duendu u u-->u>>u iiiiiiiu(u)u(to u (%d positional, %d keyword pair)N(uco_codeu
findlabelsudictufindlinestartsulenuNoneuprintureprurjustuopnameuljustu
HAVE_ARGUMENTuEXTENDED_ARGuhasconstu co_constsuhasnameuco_namesuhasjreluhaslocaluco_varnamesu
hascompareucmp_opuhasfreeuco_cellvarsuco_freevarsuhasnargs(ucoulastiucodeulabelsu
linestartsunuiuextended_argufreeuopuoparg((u(/opt/alt/python33/lib64/python3.3/dis.pyudisassemble�s`
("%"*c
Cs�t|�}t|�}d}x�||kr�||}||krVtddd�ntddd�||kr�tddd�ntddd�tt|�jd�dd�tt|jd �dd�|d
}|tkr�||||d
d} |d}tt| �jd
�dd�|tkrx|ratdt|| �ddd�q�td| dd�q�|t kr�|dk r�td|| ddd�q�td| dd�q�|tkr�tdt|| �ddd�q�|tkr?|r(td|| ddd�q�td| dd�q�|t
krjtdt| ddd�q�|tkr�td||d||d
fdd�q�nt�q!WdS(Niu-->uendu u u>>u iiiiiiu(u)u(%d)u(to u (%d positional, %d keyword pair)(u
findlabelsulenuprintureprurjustuopnameuljustu
HAVE_ARGUMENTuhasconstuhasnameuNoneuhasjreluhaslocalu
hascompareucmp_opuhasnargs(
ucodeulastiuvarnamesunamesu constantsulabelsunuiuopuoparg((u(/opt/alt/python33/lib64/python3.3/dis.pyu_disassemble_bytes�sL
%%*u_disassemble_bytescCstt|d��dS(u<Compile the source string, then disassemble the code object.u<dis>N(udisassembleu_try_compile(usource((u(/opt/alt/python33/lib64/python3.3/dis.pyu_disassemble_str�su_disassemble_strcCs�g}t|�}d}x�||kr�||}|d}|tkr||||dd}|d}d}|tkr�||}n|tkr�|}n|dkr�||kr�|j|�q�q�qqW|S(u`Detect all offsets in a byte code which are jump targets.
Return the list of offsets.
iiiii����(ulenu
HAVE_ARGUMENTuhasjreluhasjabsuappend(ucodeulabelsunuiuopuopargulabel((u(/opt/alt/python33/lib64/python3.3/dis.pyu
findlabels�s$
ccs�t|jddd��}t|jddd��}d}|j}d}xZt||�D]I\}}|r�||kr�||fV|}n||7}n||7}q]W||kr�||fVndS(u�Find the offsets in a byte code which are start of lines in the source.
Generate pairs (offset, lineno) as described in Python/compile.c.
iNii(ulistu co_lnotabuNoneuco_firstlinenouzip(ucodeubyte_incrementsuline_incrementsu
lastlinenoulinenouaddru byte_incru line_incr((u(/opt/alt/python33/lib64/python3.3/dis.pyufindlinestartss
cCs�tjdd�rrtjdd�rFtjjd�tjd�ntjd}|sf|dkrxd}qxnd}|dkr�tj}nt|�}|j�}|dk r�|j �nd}t
||d�}t|�dS(u*Simple test program to disassemble a file.iNiuusage: python dis.py [-|file]
u-u<stdin>uexec(usysuargvustderruwriteuexituNoneustdinuopenureaducloseucompileudis(ufnufusourceucode((u(/opt/alt/python33/lib64/python3.3/dis.pyu_test%s"
u_testu__main__i����i����(u__doc__usysutypesuopcodeu__all__u_opcodes_allu
MethodTypeuFunctionTypeuCodeTypeutypeu
_have_codeu_try_compileuNoneudisudistbuCOMPILER_FLAG_NAMESupretty_flagsu code_infou_format_code_infou show_codeudisassembleu_disassemble_bytesu_disassemble_strudiscou
findlabelsufindlinestartsu_testu__name__(((u(/opt/alt/python33/lib64/python3.3/dis.pyu<module>sB
!
3 )
?>