/opt/imh/python3.13/lib/python3.13/__pycache__
NameSizeModeActions
abc.cpython-313.pyc79280644editdlrm
antigravity.cpython-313.pyc10000644editdlrm
argparse.cpython-313.pyc1040800644editdlrm
ast.cpython-313.pyc1030860644editdlrm
base64.cpython-313.pyc258320644editdlrm
bdb.cpython-313.pyc405800644editdlrm
bisect.cpython-313.pyc35120644editdlrm
bz2.cpython-313.pyc151800644editdlrm
calendar.cpython-313.pyc397080644editdlrm
cmd.cpython-313.pyc189770644editdlrm
code.cpython-313.pyc157990644editdlrm
codecs.cpython-313.pyc405720644editdlrm
codeop.cpython-313.pyc66550644editdlrm
colorsys.cpython-313.pyc45190644editdlrm
compileall.cpython-313.pyc206150644editdlrm
configparser.cpython-313.pyc689660644editdlrm
contextlib.cpython-313.pyc305090644editdlrm
contextvars.cpython-313.pyc2760644editdlrm
copy.cpython-313.pyc106450644editdlrm
copyreg.cpython-313.pyc75510644editdlrm
cProfile.cpython-313.pyc86790644editdlrm
csv.cpython-313.pyc207150644editdlrm
dataclasses.cpython-313.pyc478390644editdlrm
datetime.cpython-313.pyc4260644editdlrm
decimal.cpython-313.pyc30170644editdlrm
difflib.cpython-313.pyc720550644editdlrm
dis.cpython-313.pyc475320644editdlrm
doctest.cpython-313.pyc1076920644editdlrm
enum.cpython-313.pyc858660644editdlrm
filecmp.cpython-313.pyc150420644editdlrm
fileinput.cpython-313.pyc206480644editdlrm
fnmatch.cpython-313.pyc68190644editdlrm
fractions.cpython-313.pyc383840644editdlrm
ftplib.cpython-313.pyc423460644editdlrm
functools.cpython-313.pyc422860644editdlrm
genericpath.cpython-313.pyc78260644editdlrm
getopt.cpython-313.pyc84790644editdlrm
getpass.cpython-313.pyc73260644editdlrm
gettext.cpython-313.pyc225760644editdlrm
glob.cpython-313.pyc236810644editdlrm
graphlib.cpython-313.pyc102120644editdlrm
gzip.cpython-313.pyc319930644editdlrm
hashlib.cpython-313.pyc82910644editdlrm
heapq.cpython-313.pyc177850644editdlrm
hmac.cpython-313.pyc106750644editdlrm
imaplib.cpython-313.pyc626620644editdlrm
inspect.cpython-313.pyc1365370644editdlrm
io.cpython-313.pyc42900644editdlrm
ipaddress.cpython-313.pyc919790644editdlrm
keyword.cpython-313.pyc10560644editdlrm
linecache.cpython-313.pyc85670644editdlrm
locale.cpython-313.pyc590140644editdlrm
lzma.cpython-313.pyc157330644editdlrm
mailbox.cpython-313.pyc1187480644editdlrm
mimetypes.cpython-313.pyc249130644editdlrm
modulefinder.cpython-313.pyc284070644editdlrm
netrc.cpython-313.pyc93410644editdlrm
ntpath.cpython-313.pyc284840644editdlrm
nturl2path.cpython-313.pyc27520644editdlrm
numbers.cpython-313.pyc140470644editdlrm
opcode.cpython-313.pyc40770644editdlrm
operator.cpython-313.pyc173800644editdlrm
optparse.cpython-313.pyc675940644editdlrm
os.cpython-313.pyc458640644editdlrm
pdb.cpython-313.pyc1061180644editdlrm
pickle.cpython-313.pyc784190644editdlrm
pickletools.cpython-313.pyc804420644editdlrm
pkgutil.cpython-313.pyc199740644editdlrm
platform.cpython-313.pyc446900644editdlrm
plistlib.cpython-313.pyc431130644editdlrm
poplib.cpython-313.pyc184400644editdlrm
posixpath.cpython-313.pyc181150644editdlrm
pprint.cpython-313.pyc297130644editdlrm
profile.cpython-313.pyc225780644editdlrm
pstats.cpython-313.pyc378720644editdlrm
pty.cpython-313.pyc74200644editdlrm
pyclbr.cpython-313.pyc151590644editdlrm
pydoc.cpython-313.pyc1397200644editdlrm
py_compile.cpython-313.pyc100840644editdlrm
queue.cpython-313.pyc173480644editdlrm
quopri.cpython-313.pyc95750644editdlrm
random.cpython-313.pyc352710644editdlrm
reprlib.cpython-313.pyc111750644editdlrm
rlcompleter.cpython-313.pyc85870644editdlrm
runpy.cpython-313.pyc144060644editdlrm
sched.cpython-313.pyc76120644editdlrm
secrets.cpython-313.pyc25190644editdlrm
selectors.cpython-313.pyc263700644editdlrm
shelve.cpython-313.pyc133060644editdlrm
shlex.cpython-313.pyc148670644editdlrm
shutil.cpython-313.pyc674670644editdlrm
signal.cpython-313.pyc45590644editdlrm
site.cpython-313.pyc316620644editdlrm
smtplib.cpython-313.pyc473750644editdlrm
socket.cpython-313.pyc422340644editdlrm
socketserver.cpython-313.pyc346670644editdlrm
sre_compile.cpython-313.pyc6420644editdlrm
sre_constants.cpython-313.pyc6450644editdlrm
sre_parse.cpython-313.pyc6380644editdlrm
ssl.cpython-313.pyc652190644editdlrm
stat.cpython-313.pyc55380644editdlrm
statistics.cpython-313.pyc711130644editdlrm
string.cpython-313.pyc116660644editdlrm
stringprep.cpython-313.pyc252750644editdlrm
struct.cpython-313.pyc3400644editdlrm
subprocess.cpython-313.pyc819690644editdlrm
symtable.cpython-313.pyc232110644editdlrm
tabnanny.cpython-313.pyc124320644editdlrm
tarfile.cpython-313.pyc1258450644editdlrm
tempfile.cpython-313.pyc410080644editdlrm
textwrap.cpython-313.pyc179490644editdlrm
this.cpython-313.pyc14270644editdlrm
threading.cpython-313.pyc633120644editdlrm
timeit.cpython-313.pyc146530644editdlrm
token.cpython-313.pyc35880644editdlrm
tokenize.cpython-313.pyc254490644editdlrm
trace.cpython-313.pyc339780644editdlrm
traceback.cpython-313.pyc721390644editdlrm
tracemalloc.cpython-313.pyc274280644editdlrm
tty.cpython-313.pyc26790644editdlrm
turtle.cpython-313.pyc1751510644editdlrm
types.cpython-313.pyc155600644editdlrm
typing.cpython-313.pyc1545970644editdlrm
uuid.cpython-313.pyc323970644editdlrm
warnings.cpython-313.pyc295530644editdlrm
wave.cpython-313.pyc332520644editdlrm
weakref.cpython-313.pyc318180644editdlrm
webbrowser.cpython-313.pyc269010644editdlrm
zipapp.cpython-313.pyc104090644editdlrm
zipimport.cpython-313.pyc265220644editdlrm
_aix_support.cpython-313.pyc47320644editdlrm
_android_support.cpython-313.pyc76370644editdlrm
_apple_support.cpython-313.pyc34970644editdlrm
_collections_abc.cpython-313.pyc467080644editdlrm
_colorize.cpython-313.pyc40260644editdlrm
_compat_pickle.cpython-313.pyc72070644editdlrm
_compression.cpython-313.pyc78200644editdlrm
_ios_support.cpython-313.pyc27310644editdlrm
_markupbase.cpython-313.pyc124480644editdlrm
_opcode_metadata.cpython-313.pyc106930644editdlrm
_osx_support.cpython-313.pyc181420644editdlrm
_pydatetime.cpython-313.pyc945900644editdlrm
_pydecimal.cpython-313.pyc2170580644editdlrm
_pyio.cpython-313.pyc1117930644editdlrm
_pylong.cpython-313.pyc111730644editdlrm
_py_abc.cpython-313.pyc72070644editdlrm
_sitebuiltins.cpython-313.pyc49170644editdlrm
_strptime.cpython-313.pyc345000644editdlrm
_sysconfigdata__linux_x86_64-linux-gnu.cpython-313.pyc585830644editdlrm
_threading_local.cpython-313.pyc55380644editdlrm
_weakrefset.cpython-313.pyc120640644editdlrm
__future__.cpython-313.pyc47370644editdlrm
__hello__.cpython-313.pyc9810644editdlrm
Edit: /opt/imh/python3.13/lib/python3.13/__pycache__/pdb.cpython-313.pyc (106118B)
e-cSrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK r SSK r SSK r SSK r SSK r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKJr SSKJr SSK Jr "SS\5r/SQrS rS rS r "S S \!5r""SS5r#"SS\#5r$"SS\#5r%"SS\#5r&"SS\RN5r(Sr)"SS\RT\RV5r,\bR/SQr-\-H-r.\\/"\,S\.-5RRa5S-- rM/ \\,RbR- rC-C.S-Sjr2S-Sjr3S r4S!r5SS".S#jr6S.S$jr7S%r8S&r9S'r:S(r;S)r\?S,:XaSSK@r@\@R|"5 gg)/a The Python Debugger Pdb ======================= To use the debugger in its simplest form: >>> import pdb >>> pdb.run('') The debugger's prompt is '(Pdb) '. This will stop in the first function call in . Alternatively, if a statement terminated with an unhandled exception, you can use pdb's post-mortem facility to inspect the contents of the traceback: >>> >>> import pdb >>> pdb.pm() The commands recognized by the debugger are listed in the next section. Most can be abbreviated as indicated; e.g., h(elp) means that 'help' can be typed as 'h' or 'help' (but not as 'he' or 'hel', nor as 'H' or 'Help' or 'HELP'). Optional arguments are enclosed in square brackets. Alternatives in the command syntax are separated by a vertical bar (|). A blank line repeats the previous command literally, except for 'list', where it lists the next 11 lines. Commands that the debugger doesn't recognize are assumed to be Python statements and are executed in the context of the program being debugged. Python statements can also be prefixed with an exclamation point ('!'). This is a powerful way to inspect the program being debugged; it is even possible to change variables or call functions. When an exception occurs in such a statement, the exception name is printed but the debugger's state is not changed. The debugger supports aliases, which can save typing. And aliases can have parameters (see the alias help entry) which allows one a certain level of adaptability to the context under examination. Multiple commands may be entered on a single line, separated by the pair ';;'. No intelligence is applied to separating the commands; the input is split at the first ';;', even if it is in the middle of a quoted string. If a file ".pdbrc" exists in your home directory or in the current directory, it is read in and executed as if it had been typed at the debugger prompt. This is particularly useful for aliases. If both files exist, the one in the home directory is read first and aliases defined there can be overridden by the local file. This behavior can be disabled by passing the "readrc=False" argument to the Pdb constructor. Aside from aliases, the debugger is not directly programmable; but it is implemented as a class from which you can derive your own debugger class, which you can make as fancy as you like. Debugger commands ================= N)contextmanager) Completer)CodeTypec\rSrSrSrSrg)RestartazBCauses a debugger to be restarted for the debugged python program.N)__name__ __module__ __qualname____firstlineno____doc____static_attributes__r )/opt/imh/python3.13/lib/python3.13/pdb.pyrrasLrr) runpmPdbrunevalrunctxruncall set_trace post_mortemhelpcSn[R"U5HUnUbMURS:Xa=URRbURRs $UR s $UnMW UR $)zTry to find the first executable line of the code object. Equivalently, find the line number of the instruction that's after RESUME Return code.co_firstlineno if no executable line is found. NRESUME)disget_instructionsopname positionslinenoco_firstlineno)codeprevinstrs rfind_first_executable_liner&isn D%%d+   x 7%%1---&& & ,   rc^[R"S[R"T5-5n[R"U5nSnSnU [USS9H|upxURU5(aXxpVO U(aXX- nU(dM2[XQS5n [U4SjU R55n [!U 5n TXU -S- 4s sSSS5 $ SSS5 g![ aG [ R"U5nU(dg[R"SRU55nNf=f![a Mf=f!,(df  g=f)Nzdef\s+%s(\s*\[.+\])?\s*[(])startexecc3z># UH0n[U[5(dMURT:XdM,Uv M2 g7fN) isinstancerco_name).0cfuncnames r find_function..s4 S>a *1h 7!"<=IIs ;; ;)recompileescapetokenizeopenOSError linecachegetlinesioStringIOjoin enumeratematch SyntaxErrornext co_constsr&) r2filenamecrefplinesfuncdef funcstartr!liner#funccode lineno_offsets ` r find_functionrNzs1 **2RYYx5HH IC) ]]8 $ GI %b2LFyy%+7w"7f=D  S4>> SS :8 D }+Dq+HHH! 2 " 3 )""8, [[ ( )$# " sMC 9E D45EE 'D1 %D10D14 E>EEE Ec[[R"U55nUR5 UHup4X:dM Us $ gNr)listrfindlinestartsreverse)r#lasti linestartsir!s r lasti2linenorWs>c((./J  :M  rc\rSrSrSrSrSrg)_rstrz#String that doesn't quote its repr.cU$r-r selfs r__repr___rstr.__repr__s rr N)r r r r rr^rr rrrYrYs -rrYc:\rSrSr%\\S'\\-\S'\\S'Srg)_ExecutableTargetrEr# namespacer N) r r r r str__annotations__rdictrr rrrarasM S.OrracP\rSrSrSrSr\S5r\S5r\S5r Sr g) _ScriptTargetcL[RRU5Ul[RR UR5(d%[ SUS35 [ R"S5 [RRUR5(a%[ SUS35 [ R"S5 [ RR(d;[RRUR5[ RS'gg)NzError: z does not existr)z is a directoryr) ospathrealpath_targetexistsprintsysexitisdirflags safe_pathdirname)r]targets r__init___ScriptTarget.__init__sww''/ ww~~dll++ GF8?3 4 HHQK 77== & & GF8?3 4 HHQKyy""''//$,,7CHHQK#rcUR$r-rnr\s rr^_ScriptTarget.__repr__ ||rcUR$r-r{r\s rrE_ScriptTarget.filenames ||rc[R"UR5nSUR5<SUR<S3sSSS5 $!,(df  g=f)Nz exec(compile(z, z , 'exec')))r= open_codernread)r]rGs rr#_ScriptTarget.codes?\\$,, '2"2779-r$,,1AL( ' 's #A Ac6[SUR[SS9$)N__main__)r __file__ __builtins____spec__)rfrnrr\s rrc_ScriptTarget.namespaces\\%   rr{N r r r r rxr^propertyrEr#rcrr rrrhrhsJ 8MM   rrhcP\rSrSrSrSr\S5r\S5r\S5r Sr g) _ModuleTargetcLXlSSKnURUR5uo0lUlg![ a.n[ SU35 [R"S5 SnAgSnAf[a. [R"5 [R"S5 gf=fNrz ImportError: r)) rnrunpy_get_module_details_spec_code ImportErrorrprqrr Exception traceback print_excr]rwr_es rrx_ModuleTarget.__init__sw  (-(A(A$,,(O %Az4:  M!% & HHQKK     ! HHQK s(5 B#$A((8B#"B#cUR$r-r{r\s rr^_ModuleTarget.__repr__r}rc.URR$r-r co_filenamer\s rrE_ModuleTarget.filenamezz%%%rcUR$r-rr\s rr#_ModuleTarget.code zzrc [S[RR[RR UR 55UR RUR RUR [S9$Nr)r r __package__ __loader__rr rfrkrlnormcaseabspathrErparentloaderrr\s rrc_ModuleTarget.namespaceYWW%%bggoodmm&DE ))zz((ZZ%   rrrrnNrr rrrrsH &&  rrcP\rSrSrSrSr\S5r\S5r\S5r Sr g) _ZipTargetcSSKn[RRU5Ul[ RR SUR5 UR5uo0lUl g![a.n[SU35 [ R"S5 SnAgSnAf[a. [R"5 [ R"S5 gf=fr)rrkrlrmrnrqinsert_get_main_module_detailsrrrrprrrrrrs rrx_ZipTarget.__init__sww''/  4<<( (-(F(F(H %Az4:  M!% & HHQKK     ! HHQK sA22 C <$B%%8C C cUR$r-r{r\s rr^_ZipTarget.__repr__ r}rc.URR$r-rr\s rrE_ZipTarget.filename rrcUR$r-rr\s rr#_ZipTarget.coderrc [S[RR[RR UR 55UR RUR RUR [S9$rrr\s rrc_ZipTarget.namespacerrrNrr rrrrsH &&  rrc.^\rSrSrU4SjrSrSrU=r$)_PdbInteractiveConsolei c.>X l[TU] USS9 g)NT)locals local_exit)_messagesuperrx)r]nsmessage __class__s rrx_PdbInteractiveConsole.__init__!s  t4rc$URUSS9 g)Nr(endr)r]datas rwrite_PdbInteractiveConsole.write%s d #rr)r r r r rxrr __classcell__rs@rrr s5$$rrz -> c@^\rSrSrSrSr0rSdSjrSrSr Sr Sr S r S r \ rS rS rS rSrSrSrSr\S5rSrSr\S5rSrSrSrSrSrSr SeSjr!Sr"Sr#U4Sjr$S r%S!r&S"r'S#r(S$r)S%r*\&r+SfS&jr,S'r-\,r.\%r/\%r0S(r1\%r2S)r3S*r4S+r5\&r6S,r7\&r8S-r9\&r:S.r;\&r\%r?\%r@S0rA\ArB\ArCS1rDS2rES3rF\FrGS4rH\HrIS5rJ\JrKS6rL\LrMS7rN\NrOS8rP\PrQS9rR\RrSS:rT\T=rUrVS;rW\WrXS<rY\'rZS=r[\[r\\[r]S>r^S?r_\_r`S@ra\arbSArcSgSBjrdSCreSDrfSErgSFrhSGri\'rj\'rk\'rlSHrm\mrnSIro\orpSJrq\'rrShSKjrsSLrt\'ruSMrv\'rwSNrxSOrySPrzSQr{SRr|SSr}/STQr~SUr\4SVjrSWr\rSXrSYrSZrS[\4S\jrS]\4S^jrS_rS`rSiSajrSbrScrU=r$)jri2Nic[RRXS9 [RRXX#5 [ R "S5 U(aSUlSUl0Ul 0Ul SUl SUl 0Ul SSKnURS5 SUlXPl[RR&S-Ul/UlU(a{[+[,R.R1S 5S S 9nUR(R3U5 SSS5 [+S S S 9nUR(R3U5 SSS5 0Ul0Ul0UlSUlSUl[A5Ul!SUl"g![ a Nf=f!,(df  N=f![4a Nf=f!,(df  Ny=f![4a Nf=f) N)skipzpdb.Pdbrz(Pdb) r(Fz `@#%^&*()=+[{]}\|;:'",<>?z=.[](),"'+-*/%@&|<>~^z~/.pdbrczutf-8)encodingz.pdbrc)#bdbBdbrxcmdCmdrqaudit use_rawinputpromptaliases displaying mainpyfile_wait_for_mainpyfile tb_linenoreadlineset_completer_delimsr allow_kbdintnosigint identcharsrcLinesr9rkrl expanduserextendr:commandscommands_dopromptcommands_silentcommands_defining commands_bnumtuple_chained_exceptions_chained_exception_index) r] completekeystdinstdoutrrreadrcrrcFiles rrx Pdb.__init__;s ) E: )  !D   $)!    ) )*L M" '',,/GG  "'',,Z87KvLL''/L (W5LL''/6  !#!!&!$)7 ()%C   LK  65  sr F 'F5F$#F5, G6GG F! F!$ F2.F52F55 GG GGG G#"G#cUR(a[eURS5 UR5 UR U5 g)Nz- Program interrupted. (Use 'cont' to resume).)rKeyboardInterruptrset_stepr)r]signumframes rsigint_handlerPdb.sigint_handlerps3   # # EF  urcb[RRU5 UR5 gr-)rrresetforgetr\s rr Pdb.resetws  d rcSUl/UlSUl[US5(a7UR(a&URR R SS5 SUl0UlURR5 g)Nrcurframe__pdb_convenience_variables) r!stackcurindexhasattrr  f_globalspopcurframe_localsrclearr\s rr Pdb.forget{sd   4 $ $ MM # # ' '(Et L ! rcfUR5 URX5uUlUlU(aW[ UR R UR5nX0RUR 'URnU(aMWURURSUl URRUl URURSUR5 UR(a4URURSURUR5 UR (agUR Vs/sHBnUR#5(dMUR#5R%S5(aM@UPMD snUl/Ulggs snf)Nr_frame _exception#)r get_stackr r rWtb_framef_codetb_lastirtb_nextr f_localsrset_convenience_variablerrrstrip startswithcmdqueue)r]ftbr!rKs rsetup Pdb.setups? $(NN1$9! DM""++"4"4bkkBF*0NN2;; 'B b 4==1!4  $}}55 %%dmmXt}}M  # #  ) ) (()F)FG  <>% LL $   UD ) !rcLUR(a;URURURR5:wagSUlUR (aUR cUR5 gURU5(aURUS5 gg)z;This function is called when we stop or break at this line.NF) rrcanonicrr trace_opcodesf_lineno set_stepinstr bp_commandsr')r]rs r user_line Pdb.user_lines  $ $4<< 0H0H#II(-D %   ~~%""$   E " "   UD ) #rc[USS5(aURUR;aURnSUlURnUR US5 URUHnUR U5 M X0lUR U(d(URURUR5 URU(aUR5 UR5 gg)zCall every command that was set for the current active breakpoint (if there is one). Returns True if the normal interaction function must be called, False otherwise. currentbpFrNr)) getattrr4rlastcmdr#onecmdrprint_stack_entryr r r_cmdloopr)r]rr4 lastcmd_backrKs rr0Pdb.bp_commandss 4e , ,~~.IDN< I#I I>  " "#6 7 JJu ! MM != > MMO}}r!26R!R !!# KKM8 7  8 7s3D,B D<, D98D9< E c@UbUR[U55 gg)zkCustom displayhook for the exec in default(), which prevents assignment of the _ variable in the builtins. N)rrepr)r]objs r displayhookPdb.displayhookws ? LLc # rc#r# URnURUlSv Xlg!Xlf=f7fr-) completenamescompletedefault)r]rs r_disable_command_completionPdb._disable_command_completions8**  /!%!5!5D  !. "/ s 7,747c*^ [USS5n[SUR55(dg[U5m S0S.T S'[USS5 S U-nS [ R "US 5-S -S -S-nSS RST 55-S -S-S RST 55-S -[ R "US5-S -S-n0n[U0U5 US"5n[U 4SjUR55n[XBT US9 T SnUSRS5 URUS5 USn U b[[U 55 g![a GNf=f![a gf=f![a gf=f)zRun source code in closure so code object created within source can find variables in locals correctly returns True if the source is executed, False otherwise r+c3B# UHn[U[5v M g7fr-)r.r)r0consts rr3'Pdb._exec_in_closure..sKN5:eX..NsFN)result write_back __pdb_eval__evalz__pdb_eval__['result'] = ztry:   z finally: z' __pdb_eval__['write_back'] = locals()zdef __pdb_outer(): c3.# UH nSUS3v M g7f)rz = NoneNr r0vars rr3rs(Rks2cU'):ksz def __pdb_scope(): c3,# UH nSU3v M g7f)z nonlocal Nr rs rr3rs(V+3=)>+sz z return __pdb_scope.__code__ __pdb_outerc3n># UH*n[R"TRU55v M, g7fr-)typesCellTyperZ)r0r locals_copys rr3rs(WFVsenn[__S%9::FVs25)closurerrT)r6anyrDrfrBtextwrapindentr?r+rr co_freevarsrupdaterpr) r]sourceglobalsrr#source_with_closurercellspdb_eval eval_resultrs @r_exec_in_closurePdb._exec_in_closuresvz62KDNNKKK6l ' N#  : FJ /169F//&$/0267<< 6#yy(Rk(RR SUY Z7 8 $yy(V+(VV WZ^ ^ (vv>  ?BF  F ?  ?  $b" -- "WdFVFVWW   U ; ~. "">2  h|,-x(  " ${# $o   @    s6 E$ E5 F$ E21E25 FF FFcUSSS:XaUSSR5nURnURRnUn[R "US-SS5=nGc7UR 5 UnSn[R "USS5=ncUR(a [U5nOURRU5 URR5 UR R#5n[%U5(dFSUl URRS5 URR5 SSS5 gUR'S5nUSU-- n[R "USS5=ncMX@l SSS5 [(Rn[(R n[(R*n UR [(lUR[(l UR*[(lUR-XCU5(d [/XSU5 U[(l U[(lU [(lg![[4a SUl [S5 SSS5 gf=f!,(df  N=f!U[(l U[(lU [(lf=f! UR15 g=f) Nr)!rsinglez... r(z )rrr rcodeopcompile_commandrrinputEOFErrorrr6rprrflushrrrjrstriprqrrr+ _error_exc) r]rKrrbufferr#continue_prompt save_stdout save_stdinsave_displayhooks rdefault Pdb.defaults= 8s?48>>#3D%%--))* F..td{IxPPY557!F&.O#)#9#9&)X#VV4_,,'',_'= !KK--o> KK--/#'::#6#6#8D#&t99/1 $ 1 1$ 7 $ 1 1 3 &'87*(,{{6':$+-'$*#9#9&)X#VV4_($*L/80**KJ"  3 JJ ![[ "&"2"2,,VfEE/( & "2;%-.?#@'/1 %d &87'87D) & "2  OO sz1J411I=# I .BI= J44I= I=8J4 A"J+!J4 "I:/I=0J49I::I== J J4#J11J44Kc4SU;aU$S=p#/n[R"[R"U5R5H^nUupgpn U[ R :Xa US:XaXp2M'X:XdM.U[ R:XdMDURUSU SU45 M` U(dU$Sn /n UH"upn U RXUSU S3-5 U n M$ U RXS5 SRU 5$![Ra Us$f=f) zReplace the convenience variables in 'line' with their values. e.g. $foo is replaced by __pdb_convenience_variables["foo"]. Note: such pattern in string literals will be skipped$rxr)rz__pdb_convenience_variables["z"]Nr() r8generate_tokensr=r>rtokenOPNAMErf TokenErrorr?)r]rK dollar_start dollar_endreplace_variablest token_type token_stringr*rrlast_end line_piecesnames r_replace_convenience_variables"Pdb._replace_convenience_variables s& d?K$&&  --bkk$.?.H.HI:;7 %a)lc.A/4*(Z5::-E%,,l1os1v|-TU J!K 1 E   tU38UVZU[[]6^^ _H!2 4 ?+ww{##"" K sAC>1C>C>>DDc8UR5(dU$UR5nUSUR;aURUSn[SS5HnSU3U;aBU[ U5:aUR SUSS35 gUR SU3X#5nMNSU;dMVU[ U5:aUR S USS35 g O UR SS RUSS 55nUR5nUSUR;aMUSS :wa[URS 5nUS:aDXS-S R5nURRSU5 US UR5nURU5nU$)z*Handle alias expansion and ';;' separator.rr) %z Not enough arguments for alias ''r%*zToo many arguments for alias ' Naliasz;;)rsplitrrangerjerrorreplacer?findlstripr rrr)r]rKargsidxmarkerrCs rprecmd Pdb.precmd.szz||Kzz|1g%<<Q(DQ|se9$c$i' %Ed1gYa#PQ"<>$- -**40 0rcURU5up#nU(dgUS:XaSURUR'gUS:XagURURnU(aUR US-U-5 OUR U5 [ USU-5nURUR;aSURUR'gg![ a URnNMf=f)z8Handles one command line during command list definition.FsilentTrrdo_) rrrrrfr5AttributeErrorrr commands_resumingr)r]rKrrcmdlistfuncs rrPdb.handle_command_defes-$ (?7;D !3!3 4 E\-- 2 23  NN3s73; ' NN3  4-D ==D22 29>D " "4#5#5 6  <[TU]XX45nURH,nURU5(dMUR U5 M. U(aU$UR XX45nU(aU$UR XX45$r-)rrrrrf_complete_expressionr) r]textrKbegidxendidxrr expressionsrs rrPdb.completenamessy7(VD\\E%%&" O33DOK""''FC Crc<UR5RS5(a/$URXX45n[R"[R "U5S-5nUHn[ RRU5(aURUS-5 M=[ RRU5(dMcUR5RS5(dMURUS-5 M U$![a /nNf=f)N):,*/).pyz.pywr) rendswithrrglobr7rkrlrsrfisfilelower)r]rrKrrretglobsfns r_complete_locationPdb._complete_locations ::<  , ,I ++DGC $++d+c12Bww}}R   28$## (;(;O(L(L 28$    C sD DDc[[RR5VVs/sH6upVUcM [ U5R U5(dM+[ U5PM8 snn$s snnfr-)r@r Breakpoint bpbynumberrdr)r]rrKrrrVbps r_complete_bpnumberPdb._complete_bpnumbersZ%.cnn.G.G$H?$H51&)!f&7&7&=A$H? ??s A(A(A(cUR(d/$0URREUREnURS5(aVURRR S05nUVs/sH"owRUSS5(dMSU3PM$ sn$SU;aUR S5nXXSn USSHn [ X5n M SRUSS5S-n [U 5V s/sH!oRUS5(dMX-PM# sn $UR5V s/sHoRU5(dMU PM sn $s snf![[4a /s$f=fs sn fs sn f)Nrr r).rrx) r rrrrZrr5KeyErrorrr?dirkeys) r]rrKrrr conv_varsrdottedrpartrJns rrPdb._complete_expressions`}}IA '' @4+?+? @ ??3   //334QSUVI+4R94QR8QJavJ9R R $;ZZ_F m"1RLD!#,C)XXfSbk*S0F(+CM1LL4LJFJM M "wwy?y!LL,>Ay? ?!Sn-   N@s68E! E!<E&>E>E>;FF&E;:E;cURS5(aVURRRS05nUVs/sH"ofRUSS5(dMSU3PM$ sn$Sn/n[ URRUR -5n U R X5=n b,URU 5 US- nU R X5=n bM,U$s snf)Nrr r)r)rr rrZrrcompleterf) r]rrKrrrrstatematches completerrAs rrPdb.completedefaults ??3   //334QSUVI+4R94QR8QJavJ9R Rdmm558L8LLM !**477uD NN5 ! QJE"**477uDSs C! CctURURUR5 UR5 gr-)r8r r rar]rs rrwPdb._pdbcmd_print_frame_statuss) tzz$--89 rcU(d'[[RR5S- nO [ U5nUR U5 X l X R;a-URUURUURU4nOSn/URU'SURU'SURU'URnSUl SUlUR5 SUlXPl g! UR U5 g=f![anURSU-5 SnAgSnAff=f![ ay U(a7USURU'USURU'USURU'O'URU URU URU URS 5 Nf=f!SUlXPl f=f) aR(Pdb) commands [bpnumber] (com) ... (com) end (Pdb) Specify a list of commands for breakpoint number bpnumber. The commands themselves are entered on the following lines. Type a line containing just 'end' to terminate the commands. The commands are executed when the breakpoint is hit. To remove all commands from a breakpoint, type commands and follow it immediately with end; that is, give no commands. With no bpnumber argument, commands refers to the last breakpoint set. You can use breakpoint commands to start your program up again. Simply use the continue command, or step, or any other command that resumes execution. Specifying any command resuming execution (currently continue, step, next, return, jump, quit and their abbreviations) terminates the command list (as if that command was immediately followed by end). This is because any time you resume execution (even with a simple next or step), you may encounter another breakpoint -- which could have its own command list, leading to ambiguities about which list to execute. If you use the 'silent' command in the command list, the usual message about stopping at a breakpoint is not printed. This may be desirable for breakpoints that are to print a specific message and then continue. If none of the other commands print anything, you will see no sign that the breakpoint was reached. r)Nzcannot set commands: %sTFz(com) rrz1command definition aborted, old commands restored)rjrrrint_print_invalid_argget_bpbynumberr|rrrrrrrrNr)r]rbnumerrold_command_defs prompt_backs r do_commandsPdb.do_commandssJs~~001A5D 3x     % " == $ d 3 $ 6 6t < $ 4 4T : <  $   d'+t$%*T"kk  !% & LLN&+D "%KO '',  JJ036 7  *! L&6q&9 d#/?/B&&t,-=a-@$$T*MM$'**40((. JJJ K L&+D "%KsG C7DD:7D  D7D22D7:BF=:G<F==GGc8U(dlUR(aZURS5 [RRH+nU(dM URUR 55 M- gSnSnSnUR S5nUS:aZXS-SR5nURU5=n(aURSU<SU<35 gUSUR5nURS5n Sn U S:adUSU R5nURU5n U (dURS U-5 gU nXS-SR5n[U5nO [U5nU(dUR55nUR7XE5nU(axUR9UUX&U 5nU(aURU5 gUR;UU5S nURSUR<UR>UR@4-5 gg![a URS U-5 gf=f![a [UUR R"UR$5n O ! Un O=f['U S 5(a U R(n U R*n U R,n [/U 5nU R0nGN\! UR3U5upnU(dURS U-5 gUn [U5nGN=ff=f)a[b(reak) [ ([filename:]lineno | function) [, condition] ] Without argument, list all breaks. With a line number argument, set a break at this line in the current file. With a function name, set a break at the first executable line of that function. If a second argument is present, it is a string specifying an expression which must evaluate to true before the breakpoint is honored. The line number may be prefixed with a filename and a colon, to specify a breakpoint in another file (probably one that hasn't been loaded yet). The file is searched for on sys.path; the .py suffix may be omitted. z!Num Type Disp Enb WhereNrrr)Invalid condition rXrz%r not found from sys.pathzBad lineno: %s__func__zJThe specified object %r is not a function or was not found along sys.path.rxzBreakpoint %d at %s:%d)!breaksrrrrbpformatrr_compile_error_messagerrrfind lookupmoduler*r|rr rrr r5__code__r/r&rlineinfo defaultFile checkline set_break get_breaksnumberrrK)r]r temporaryrrEr!condcommar.colonr2r!rr#oklnrKs rdo_break Pdb.do_breakEs {{ @A..33Br R[[]34   19Qwx='')D11$77s7 sCDfu+$$&C # A:6E{))+H!!(+A 7(BCAgh-&&(C S  %S4'')H~~h/ ..4(KC 3__Xt4R8 5 ii"'':;< I  +c12  % $ 7 7 $ 4 46DD%tZ00#}}==D $||H7=F#//H%)-s);&R2 $FHK$LM!H WF1 %s[ H) IH=<H= L +I76L7I=;LA K1LL LLLcURRRnUS:XaUR(a URnU$)zProduce a reasonable default.r)r rrr)r]rEs rr=Pdb.defaultFiles3==''33 z !dooHrc(URUS5 g)ztbreak [ ([filename:]lineno | function) [, condition] ] Same arguments as break, but sets a temporary breakpoint: it is automatically deleted when first hit. r)N)rHr's r do_tbreak Pdb.do_tbreaks c1rcSnURS5n[U5S:XaUSR5nO%[U5S:XaUSR5nOU$US:XaU$URS5nUSS:XaUS [U5S:XaU$UR5n[U5S:XaUSnO"UR US5nU(aUnUSn[ XpR U55n U =(d U$) N)NNNrr)rr(rr])rrjrr=r:rNr,) r] identifierfailedidstringidpartsfnameitemr!answers rr< Pdb.lineinfos###C( x=A !""$B ]a !""$BM 8F]  8v a5zQ   " u:?8D!!%(+A8Dt\\%%89rc2[USS5nU(a UROSn[R"XU5nU(dUR S5 gUR 5nU(aUSS:XdUSSS:Xd USSS:XaUR S 5 gU$) zCheck whether specified line seems to be executable. Return `lineno` if it is, 0 if not (e.g. a docstring, comment, blank line or EOF). Warning: testing is not comprehensive. r Nz End of filerrrPz"""z'''zBlank or comment)r5rr;getlinerrr)r]rEr!rr rKs rr> Pdb.checklinesj$/#(d  59 LL 'zz|aC2Ah%D!H$5 JJ) * rcUR5nUH9nURU5nUR5 URSU-5 M; g![anUR U5 SnAM_SnAff=f)zoenable bpnumber [bpnumber ...] Enables the breakpoints given as a space separated list of breakpoint numbers. z Enabled %sN)rr,enablerr|rr]rrrVrr.s r do_enable Pdb.do_enablesi yy{A 0((+  \B./  3 A A7A22A7cUR5nUH9nURU5nUR5 URSU-5 M; g![anUR U5 SnAM_SnAff=f)adisable bpnumber [bpnumber ...] Disables the breakpoints given as a space separated list of breakpoint numbers. Disabling a breakpoint means it cannot cause the program to stop execution, but unlike clearing a breakpoint, it remains in the list of breakpoints and can be (re-)enabled. z Disabled %sN)rr,disablerr|rr_s r do_disablePdb.do_disablesiyy{A 1((+  ]R/0  3 rbc URSS5nUSnURU5=n(aURSU<SU<35 gUR USR 55nX5lU(dURSUR-5 gURSUR-5 g![a SnN|f=f![a URS 5 g[anURU5 SnAgSnAff=f) zcondition bpnumber [condition] Set a new condition for the breakpoint, an expression which must evaluate to true before the breakpoint is honored. If condition is absent, any existing condition is removed; i.e., the breakpoint is made unconditional. rr)r4rXNrz#Breakpoint %d is now unconditional.z$New condition set for breakpoint %d.Breakpoint number expected) rr8r IndexErrorr,rrCrrAr|)r]rrrCr.rs r do_conditionPdb.do_conditionsyya  7D11$77s7 sCD8 Q$$T!W]]_5B G BRYYNO CbiiOP D  5 JJ3 4  JJsOO s/6B: "C : C C  D ) D 2DD cdUR5nU(dURS5 g[U5S:XaSnO1[U5S:Xa[US5nOUR U5 gUR USR55nX4lUS:a.US:aSU-nOSnURSXTR4-5 gURS UR-5 g![a UR U5 gf=f![anURU5 SnAgSnAff=f) a_ignore bpnumber [count] Set the ignore count for the given breakpoint number. If count is omitted, the ignore count is set to 0. A breakpoint becomes active when the ignore count is zero. When non-zero, the count is decremented each time the breakpoint is reached and the breakpoint is not disabled and any associated condition evaluates to true. rhNr)rrz %d crossingsz 1 crossingz%Will ignore next %s of breakpoint %d.z-Will stop next time breakpoint %d is reached.) rrrjr*r|r+r,rignorerrA)r]rrcountrcountstrr.s r do_ignore Pdb.do_ignore9s yy{ JJ3 4  t9>E Y!^ DG   # #C (  *$$T!W]]_5BIqy19-5H+H D& 234 L!yy)*) '',   JJsOO s* C)."D )DD D/D**D/cU(d[S5nUR5R5nUS;a_[R R Vs/sH o3(dM UPM nnUR5 UHnURSU-5 M gSU;aURS5nUSUnXS-Sn[U5nURXg5SSnURXg5nU(aURU5 gWHnURSU-5 M gUR5n U H:nUR!U5nUR#U5 URSU-5 M< g![a SnGNof=fs snf![a SU-nNf=f![anURU5 SnAMSnAff=f) acl(ear) [filename:lineno | bpnumber ...] With a space separated list of breakpoint numbers, clear those breakpoints. Without argument, clear all breaks (but first ask confirmation). With a filename:lineno argument, clear all breaks at that line in that file. zClear all breaks? no)yyesz Deleted %sNrr)zInvalid line number (%s))rrrr rrrclear_all_breaksrr9r*r@ clear_breakr|rrr,clear_bpbynumber) r]rreplyrbplistrVrEr!r. numberlists rdo_clear Pdb.do_cleares 23KKM'')E $'*~~'@'@G'@B"'@G%%' BLL!23!  #: #A2AwHcd)C 9S:1=&&x8 3 !BLL!23! YY[ A 0((+%%a( \B./9  H 7036 7  3 sG E4 F"F< F 9F!4 FF FF! G+GGcVU(aURU5 gUR5 g)zw(here) Print a stack trace, with the most recent frame at the bottom. An arrow indicates the "current frame", which determines the context of most commands. 'bt' is an alias for this command. N)r+print_stack_tracer's rdo_where Pdb.do_wheres$   # #C (   rc~SUs=::a[UR5:de eXlURURSUlURRUlUR URSUR5 URURUR5 SUlg)Nrr) rjr r r rrrr8r!)r]rAs r _select_framePdb._select_framesF,S_,,,,,  4==1!4 #}}55 %%dmmXt}}M tzz$--89 rc<UR(dURS5 gU(d[UR5Hsup#X R:XaSOSn[ U5n[ U5S:aUSSS-nURUR cSOUS nURUSUSU35 Mu g[U5nS Us=::a[ UR5:aO OURUR cURS 5 gXplURSURUR 5 URURUR5 gURS 5 g![a URS 5 gf=f)a2exceptions [number] List or change current exception in an exception chain. Without arguments, list all the current exception in the exception chain. Exceptions will be numbered, with the current exception indicated with an arrow. If given an integer as argument, switch to the exception at that index. zDid not find chained exceptions. To move between exceptions, pdb/post_mortem must be given an exception object rather than a traceback.N>rPMz...z -z>3zArgument must be an integerrz;This exception does not have a traceback, cannot jump to itzNo exception with that number)rrr@rrrjrer*r|rr#r8r r )r]rixexcrrep indicatorrAs r do_exceptionsPdb.do_exceptionssy'' LL3  $T%=%=> "&C&C C3is8b=cr(U*C//3AAIr7  xq 1SE:;? SF:S!9!9::++F3AAIJJ\]06- 4!9!9&!A!O!OP&&tzz$--'@A :;  89 s9 E==FFc URS:XaURS5 g[U=(d S5nUS:aSnO[ SURU- 5nUR U5 g![a URSU-5 gf=f)zku(p) [count] Move the current frame count (default one) levels up in the stack trace (to an older frame). rz Oldest frameNr)Invalid frame count (%s))r rr*r|maxrr]rrnnewframes rdo_up Pdb.do_ups ==A  JJ~ &  qME 19H1dmme34H 8$  JJ1C7 8  sA,,B  B cURS-[UR5:XaURS5 g[ U=(d S5nUS:a[UR5S- nO/[ [UR5S- URU-5nURU5 g![ a URSU-5 gf=f)znd(own) [count] Move the current frame count (default one) levels down in the stack trace (to a newer frame). r)z Newest frameNrr)r rjr rr*r|minrrs rdo_down Pdb.do_downs ==1 DJJ / JJ~ &  qME 194::*H3tzz?Q. 0EFH 8$  JJ1C7 8  sB..CCcU(a8[U5nX RR::aURS5 gOSnUR URU5 g![a URSU-5 gf=f)aunt(il) [lineno] Without argument, continue execution until the line with a number greater than the current one is reached. With a line number, continue execution until a line with a number greater or equal to that is reached. In both cases, also stop when the current frame returns. Error in argument: %rNz7"until" line number is smaller than current line numberr))r*r|rr r. set_until)r]rr!s rdo_until Pdb.do_until s  S/// )*0 F t}}f-  2S89 s AB?BcVU(aURU5 gUR5 g)zs(tep) Execute the current line, stop at the first possible occasion (either in a function that is called or in the current function). Nr))r+rr's rdo_step Pdb.do_step"s$   # #C (  rclU(aURU5 gURUR5 g)zan(ext) Continue execution until the next line in the current function is reached or it returns. Nr))r+set_nextr r's rdo_next Pdb.do_next0s+   # #C (  dmm$rcU(aESSKn[RSSnURU5[lU[RSS&[ e![a#nUR SU<SU<35 SnAgSnAff=f)zrun [args...] Restart the debugged python program. If a string is supplied it is split with "shlex", and the result is used as the new sys.argv. History, breakpoints, actions and debugger options are preserved. "restart" is an alias for "run". rNr)z Cannot run rX)shlexrqargvrr|rr)r]rrargv0rs rdo_run Pdb.do_run=sj  HHQqME  ;;s+!CHHRaL   #q9: sA BA;;BclU(aURU5 gURUR5 g)zAr(eturn) Continue execution until the current function returns. Nr))r+ set_returnr r's r do_return Pdb.do_returnSs+   # #C (   &rc U(aURU5 gUR(d9[R"[RUR5[ lUR5 g![a Nf=f)zNc(ont(inue)) Continue execution, only stop when a breakpoint is encountered. Nr)) r+rrzr{rrryr| set_continuer's r do_continuePdb.do_continue_sk   # #C ( }} MM&--1D1DE,     s8A55 BBcURS-[UR5:waURS5 g[ U5nXR lURURSU4URUR'URURUR5 g![anURSU-5 SnAgSnAff=f![a URS5 gf=f)adj(ump) lineno Set the next line that will be executed. Only available in the bottom-most frame. This lets you jump back and execute code again, or jump forward to skip code that you don't want to run. It should be noted that not all jumps are allowed -- for instance it is not possible to jump into the middle of a for loop or out of a finally clause. r)z)You can only jump within the bottom frameNrzJump failed: %sz)The 'jump' command requires a line number) r rjr rr*r r.r8r|)r]rrs rdo_jump Pdb.do_jumpus ==1 DJJ / JJB C  2c(C 2*- &,0JJt}},Ea,H#,M 4==)&&tzz$--'@A 2 ,q011 2 D JJB C Ds* CA-B44 C>CCC=<C=c<[R"S5 URRnURn[ UR URUR5nSURR5-Ul URS5 [R"URXU45 URS5 [R"UR 5 UR"Ulg![a UR5 N_f=f)zdebug code Enter a recursive debugger that steps through the code argument (which is an arbitrary expression or statement to be executed in the current environment). Nz(%s) zENTERING RECURSIVE DEBUGGERzLEAVING RECURSIVE DEBUGGER)rqsettracer rrrrrrrrr call_tracingrrrtrace_dispatchr6)r]rrrps rdo_debug Pdb.do_debugs T--))%%   $**dkk :T[[..00 23    QUUS6$: ; 12 T(()yy   OO  s#C>>DDc2SUlUR5 g)zNq(uit) | exit Quit from the debugger. The program being executed is aborted. Tr))_user_requested_quitset_quitr's rdo_quit Pdb.do_quits %)! rcTURS5 SUlUR5 g)z.EOF Handles the receipt of EOF as a command. r(Tr))rrrr's rdo_EOF Pdb.do_EOFs$ R$(! rc U(aURU5 gURRnURnURUR -nUR [R-(aUS-nUR [R-(aUS-n[U5HXnURUnXc;a,URU<SURX6U5<35 MCURU<S35 MZ g)z9a(rgs) Print the argument list of the current function. Nr) = z = *** undefined ***)r+r rr co_argcountco_kwonlyargcountco_flagsinspect CO_VARARGSCO_VARKEYWORDSr co_varnamesrr])r]rcorfrrVrs rdo_args Pdb.do_argss   # #C (  ]] ! !## NNR11 1 ;;++ +1Q ;;// /QqSqA>>!$D| $ D0QRS ?@ rcU(aURU5 gSUR;a/URURURSS55 gUR S5 g)zBretval Print the return value for the last return of a function. Nr=retvalzNot yet returned!)r+rrr]rr's r do_retval Pdb.do_retvalsU   # #C (  4// / LL)=)=l)KXV W JJ* +rc[XRRUR5$! UR 5 e=fr-)rr rrrr's r_getval Pdb._getvals8 ]]44d6J6JK K  OO  s),?cUc*[XRRUR5$[XRUR5$![ a'n[ SURU5-5sSnA$SnAff=f)Nz** raised %s **)rr rrrrdrYrE)r]rrrs rr\Pdb._getval_exceptsm D}C!8!8$:N:NOOC%..AA D*T-=-=c-BBC C Ds",AA BA;5B;Bcn[R"5nURURU55 gr-)rq exceptionrrEr]rs rrPdb._error_excs$mmo 4##C()rcURU5nURU"U55 g! g=f! UR5 g=fr-)rrr)r]rrvals r _msg_val_funcPdb._msg_val_funcsD ,,s#C  LLc #    OO s,30Ac [U5$![a+n[SUSURU5S35sSnA$SnAff=f)Nz *** repr(z ) failed: z ***)rrrYrE)r]rr^rs rr]Pdb._safe_reprsJ P9  P9TF*T5E5Ea5H4INO O Ps A =AAc0URU[5 g)z1p expression Print the value of the expression. N)rrr's rdo_pPdb.do_ps 3%rcDURU[R5 g)z9pp expression Pretty-print the value of the expression. N)rpprintpformatr's rdo_pp Pdb.do_pps 3/rcHSUlSnU(aUS:waSU;aOURS5up2[UR55n[UR55nX#:aX2-nOo[UR55n[ SUS- 5nOFURbUS:Xa$[ SURRS- 5nOURS-nUcUS-nURRRnURS 5(a<URRRS 5n[U[ 5(aUnUR#U5n[$R&"X@RR5nUR)XsS- UX6UR5 [+U[-U55Ul[-U5U:aUR/S 5 gg![ a UR SU-5 gf=f![0a gf=f) aXl(ist) [first[, last] | .] List source code for the current file. Without arguments, list 11 lines around the current line or continue the previous listing. With . as argument, list 11 lines around the current line. With one argument, list 11 lines starting at that line. With two arguments, list the given range; if the second argument is less than the first, it is a count. The current line in the current frame is indicated by "->". If an exception is being debugged, the line where the exception was originally raised or propagated is indicated by ">>", if it differs from the current line. rQNrrr)rrzz>> N) r.rrZr@rdrjustrjrr) r]rHr*r6rcurrent_lineno exc_linenor!rKss rrPdb._print_linesvs "^^N++E26J*, ,N%e3LFF !!!$A1vzSSS'T %T  LLTDKKM1 24rcURU5nSnURRnU(aUR SUR -5 gURnU(aUR SUR -5 gUR [La.UR SUR<SUR<35 gUR [U55 g! g=f![a Nf=f![a Nf=f)z3whatis expression Print the type of the argument. Nz Method %sz Function %szClass r) rr5r;rrr/rtyper r )r]rrr#s r do_whatis Pdb.do_whatiss  LL%E >>**D  LLt||3 4  >>D  LL5 6  ??d " LL%*:*:E