eaiovnaovbqoebvqoeavibavo  kx]c@sddlmZddlZddlZddlZddlZddlZdZdZdZ dZ dZ dZ d Z d d+d YZd d ZdZdadZdZdZdZdZiied6dd6dd6d6ied6dd6dd6d6ied6dd6dd6d6ZdZiZdZdZd d,d!YZd"Zd#Zied$6ed%6ed&6ed'6Z d(Z!d)Z"e#d*kre"ndS(-i(tprint_functionNcCs&|drt|ddStjSdS(Ntintrb(topentsyststdin(topts((s./usr/lib/python2.7/site-packages/pycriu/cli.pytinf s cCs&|drt|ddStjSdS(Ntoutsw+(RRtstdout(R((s./usr/lib/python2.7/site-packages/pycriu/cli.pytoutfs cCsttjj|d|S(Ntdir(Rtostpathtjoin(Rtname((s./usr/lib/python2.7/site-packages/pycriu/cli.pytdinfscCsd}y*tjjt||d|d}Wn@tjjk rr}td|jdtj tj dnX|drd}nt |}t j ||d||tjkr|jdndS( NtprettytnoplsSUnknown magic %#x. Maybe you are feeding me an image with raw data(i.e. pages.img)?tfileiitindents (tNonetpycriutimagestloadRtMagicExceptiontprinttmagicRtstderrtexitR tjsontdumpR twrite(RRtimgtexctf((s./usr/lib/python2.7/site-packages/pycriu/cli.pytdecodes*   cCs2tjt|}tjj|t|dS(N(RRRRRRR (RR!((s./usr/lib/python2.7/site-packages/pycriu/cli.pytencode0scCs<tjjt|}tj|tjddtdS(NRi( RRtinfoRRRRR R(Rtinfs((s./usr/lib/python2.7/site-packages/pycriu/cli.pyR&5scCs$||kr||S|d|dS(Ntns_i((tptval((s./usr/lib/python2.7/site-packages/pycriu/cli.pyt get_task_id;stps_itemcBseZdZRS(cCs>t|d|_|d|_||_||_g|_dS(Ntpidtppid(R+R-R.R)tcoretkids(tselfR)R/((s./usr/lib/python2.7/site-packages/pycriu/cli.pyt__init__Es    (t__name__t __module__R2(((s./usr/lib/python2.7/site-packages/pycriu/cli.pyR,DsicCswtd|jt|jdt|jddd||jddfx%|jD]}t|||dqUWdS( Ns%7d%7d%7d %s%stpgidtsidt ittctcommi(RR-R+R)R/R0tshow_ps(R)Rtdepthtkid((s./usr/lib/python2.7/site-packages/pycriu/cli.pyR:Ms 'c Csi}tjjt|d}x^|dD]R}tjjt|dt|d}t||dd}|||jR?R@RA( RRRRR+R,R-RR.R0tappendRR:( Rtpsstps_imgR)R/tpstpsrR-tpp((s./usr/lib/python2.7/site-packages/pycriu/cli.pyt explore_psUs"    cCstdkrBy#tjjt|ddaWqBgaqBXnttdkrXdSx"tD]}|d|kr_|Sq_WdS(Ns files.imgR=itid(t files_imgRRRRRtlen(RtfttfidR#((s./usr/lib/python2.7/site-packages/pycriu/cli.pytftype_find_in_filesps #  cCst|||}|r$||dS|ddkrZtjjt||d|d} d} x||d| kr||} ||krK| d7} nl| d| d| d| dd?f7} | dddB@r| dt|idd6| dd67} n|}| dd7} |d 7}qW|d 8}td| | fqWq&WdS( Ns pstree.imgR=R-s mm-%d.imgiRzspagemap-%d.imgs%diis %lx / %-8dtvaddrtnr_pagesRi RURs ~s %08lx / %-8dR{iiR7R]RdR|RIs %23ss%-24s%si@i(RRRRR+RRi( RRDR)R-RztpmstvmitpvmitpmtpstrtpmetvstrR((s./usr/lib/python2.7/site-packages/pycriu/cli.pyt explore_rss%s<#   " REtfdstmemstrsscCst|d|dS(Ntwhat(t explorers(R((s./usr/lib/python2.7/site-packages/pycriu/cli.pytexploreTsc Cs.d}tjd|dtj}|jdd}|jddd}|jddd d d |jd d dd|jdddd|jdtdt|jddd}|jd d dd|jdddd|jdt |jddd}|jd|jdt |jddd}|jd|jddd d!d"d#g|jdt |jd$dd%}|jd|jd&dd'd d |jdtd(t d)dt|j}|stjj|jtjjd*tjd+n|d|dS(,NsCRiu Image Toolt descriptiontformatter_classthelps-Use crit CMD --help for command-specific helpR$s+convert criu image from binary type to jsons--prettysIMultiline with indents and some numerical fields in field-specific formattactiont store_trues-is--ins<criu image in binary format to be decoded (stdin by default)s-os--outs:where to put criu image in json format (stdout by default)tfuncRR%s+convert criu image from json type to binarys:criu image in json format to be encoded (stdin by default)s<where to put criu image in binary format (stdout by default)R&sshow info about imageRRsexplore image dirR RtchoicesRERRRtshows5convert criu image from binary to human-readable jsons--nopls%do not show entry payload (if exists)RRscrit: error: too few arguments i(targparsetArgumentParsertRawTextHelpFormattertadd_subparserst add_parsert add_argumentt set_defaultsR$tFalseR%R&RtTrueRtvarst parse_argsRRR t format_usageR( tdesctparsert subparserst decode_parsert encode_parsert info_parsertx_parsert show_parserR((s./usr/lib/python2.7/site-packages/pycriu/cli.pytmainXsf       t__main__((($t __future__RRRRR RRR RR$R%R&R+R,R:RHRRJRNRPRRRTRZRfRcReRiRrRsRRRRRR3(((s./usr/lib/python2.7/site-packages/pycriu/cli.pytsd                       5 '   E